AWS Lambda関数にライブラリのサブディレクトリを含める方法 -- python フィールド と python-3.x フィールド と amazon-web-services フィールド と aws-lambda フィールド 関連 問題

How to include a subdirectory of libraries in an AWS Lambda function












0
vote

問題

日本語

私は2つの非標準ライブラリを必要とするラムダ関数(この例ではPython3)を書いています。これらのライブラリーは~30の追加のライブラリを必要とします。 AWS Lambdaへのプッシュにローカルにそれらの2つのディレクトリを追加するには、コマンド<コード> pip3 install <library> -t ./ を実行します。

残念ながら、私はこれらのライブラリと私のlambda_handler.pyがすべて同じディレクトリにあります。今、この技術的にはが機能しますが、見栄えがよく、ソース管理/読みやすさ/編集には困難です。ライブラリを単一のディレクトリに入れようとしましたが、Pythonスクリプトはそれらを見つけることができません。

理想的には、私の全体のラムダプロジェクトがこのように見えるようにしたいです

function.zip

<事前> <コード> lambda_handler.py config.py libraries/

この種の素晴らしい、クリーンな構造を持つようにコード/ディレクトリに何をする必要がありますか?

ありがとうございました!

英語

I'm writing a Lambda function (in Python3 for this example) that requires two non-standard libraries. Those libraries in turn require ~30 additional libraries. To add those two directories locally to push to AWS Lambda I run the command pip3 install <library> -t ./.

Unfortunately now, I have all of these libraries and my lambda_handler.py all in the same directory. Now this technically works, but doesn't look good and is difficult for source control/readability/editing. I tried putting the libraries into a single directory, but then my python script is unable to find them.

Ideally, I'd like my entire Lambda project to look like this

function.zip

lambda_handler.py config.py libraries/ 

What would I need to do to my code/directory to have this sort of nice, clean structure?

Thank you!

</div
           

回答リスト

1
 
vote
vote
ベストアンサー
 

展開パッケージのクリーナーと素晴らしい構造を確保する1つの方法は、Lambda レイヤー依存関係:

レイヤー付きでは、展開パッケージに含める必要なく、関数のライブラリを使用できます。

これはまた、再利用複数のLambda関数にわたる同じ依存関係を可能にします。これは、Lambda関数のソース管理、読みやすさ、および保守性のための有益です。

 

One way to ensure cleaner and nice structure of your deployment package, would be to use lambda layers for the dependencies:

With layers, you can use libraries in your function without needing to include them in your deployment package.

This also allows you to reuse the same dependencies across multiple lambda functions, which is beneficial for source control, readability and maintainability of your lambda functions.

</div
 
 
 
 

関連する質問

0  HTML形式でPython Boto3を使用してAWS SESを使用して動的フィールドを送信するのに役立つ  ( Need help in sending dynamic fields with aws ses using python boto3 in html form ) 
この質問は繰り返し鳴るかもしれませんが、私は動的な値を取り込むのに苦労しています。 私はEメール本文でHTML形式で動的フィールドを送信する必要があるAWS Python Lambda関数を作成しようとしていました。ただし、「名前」や「日」などのダイナミックフ...

1  AWS Lambda - メモリにCSVを生成し、それを電子メールに添付ファイルとして送信します。  ( Aws lambda generate csv in memory and send it as an attachment to an email ) 
Python 2.7を使用してAWS Lambdaサービスを作成しようとしていて、メモリ内のCSVファイルを生成し、添付ファイルとして電子メールで送ってください。私が私が学んだことに基づいてこの脚本で近づくような気がしますが、私はそこにいません。 <事前> ...

0  ラムダが失敗したときにプロセスを繰り返す方法は?  ( How to repeat the process when the lambda is failed ) 
私はAWS Lambdaを使ってキネシスからレコードを取得してからHTTPリクエストでWebサービスに送信しようとしています。 ネットワークの問題のため、HTTP要求が失敗した場合は、すべてのデータが必要です。だから私はラムダのプロセスを繰り返さなければなり...

2  PythonとAWS Lambdaを使ったスラックボットダイアログを使用する  ( Using slack bot dialogs with python and aws lambda ) 
Python 3、AWS APIゲートウェイ、およびAWS Lambdaを使用するスラックボットのダイアログを作成するための統合に取り組んできました。私は現在、私の関数の最後の目的と統合のためにスラック側に取り組んでいます。 ダイアログを削除し、チュートリ...

1  デコレータに機能を渡すときは、AWS Lambdaがタイムアウトするのですか?  ( Why does aws lambda time out when passing a function to a decorator ) 
Pydanticを利用して入力検証を実行するPython AWS Lambda関数に取り組んでいます。次のコードを実行する際のLambdaがタイムアウトしている(15秒のタイムアウトで)最近発見されました: <事前> <コード> def _stringify...

2  DynamoDBとLambdaを接続できません  ( Cannot connect dynamodb with lambda ) 
これは私のコードです <事前> <コード> var dynamodb = new AWS.DynamoDB(); dynamodb.batchGetItem(params, function(err, data) { if (err) console....

3  Aws Lambdaにストリーミングすると、Amazon CloudWatchバッチがどのようにログに記録されますか?  ( How does amazon cloudwatch batch logs when streaming to aws lambda ) 
AWS Documentation は、複数のログイベントレコードを示しますCloudWatchからログをストリーミングするときは、Lambdaに提供されます。 logevents ログイベントの配列として表される実際のログデータ 記録。...

0  PYSFTPパッケージがLambda関数の投げエラーで機能していません:「bcrypt」から「_bcrypt」をインポートできません(./lib/bcrypt/__init__.py)  ( Pysftp package is not working in lambda function throwing error cannot import ) 
PIP Install PySFTP)をダウンロードし、ZIPファイルを作成してLambda関数でアップロードします。 しかし、ラムダ機能では機能していません。誤りを投げる 応答: <事前> <コード> { "errorMessage": "Unable...

0  Javaを使用して開発された複数のAWS Lambda関数のための単一のjar  ( Single jar for multiple aws lambda functions developed using java ) 
Lambda関数のために単一のjarファイルを作りたいです。さまざまなhandlequestメソッドがイベントとして使用される多くのブログや記事を見ました。 これがPAKAGE.CLASSNAME:HandLEREQ()はAWSコンソールで定義されています。...

0  マップのリストDynamoDBクエリで未定義の返品  ( List of maps returns undefined in dynamodb query ) 
DynamoDBを照会しています。これは、次のような構造で「複数単位」という属性を持ちます。リスト[MAP {MAP {S}、S}、...] LAMBDAをローカルにテストする: <事前> <コード> module.exports.getByAddres...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有