Lambda を使用する際のベストプラクティス - Amazon DynamoDB

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Lambda を使用する際のベストプラクティス

関数は、他の関数から分離された実行環境であるAWS Lambdaコンテナ内で実行されます。—この関数を初めて実行すると、AWS Lambda は新しいコンテナを作成し、関数のコードを実行し始めます。

関数には、呼び出しごとに 1 回実行されるLambdaハンドラがあります。ハンドラには、関数用の主要なビジネスロジックが含まれます。たとえば、「ステップ 4: 関数の作成とテストLambda」に示す Lambda 関数には、DynamoDB ストリームのレコードを処理できるハンドラがあります。

コンテナが作成された後で、— がハンドラを初めて実行する前のみ、1 回のみ実行される初期化コードを指定することもできます。AWS Lambda「ステップ 4: 関数の作成とテストLambda」に示す Lambda 関数には、Node.js 内の SDK for JavaScript をインポートし、Amazon SNS 用のクライアントを作成する初期化コードがあります。これらのオブジェクトはハンドラの外部で 1 回のみ定義します。

関数の実行後、AWS Lambda は関数のそれ以降の呼び出しにコンテナを再利用する場合があります。この場合、関数ハンドラは、初期化コードで定義したリソースを再利用できる可能性があります (AWS Lambda がコンテナを保持する期間や、コンテナを再利用するかどうかを制御することはできません)。

AWS Lambda を使用した DynamoDB トリガーの場合は、次のことをお勧めします。

  • AWS のサービスのクライアントは、ハンドラではなく初期化コードでインスタンス化する必要があります。これにより、AWS Lambda コンテナは、コンテナの有効期間中は既存の接続を再利用することができます。

  • 通常、お客様が明示的に接続を管理したり、接続プールを実装したりする必要はありません。これは AWS Lambda によって自動的に管理されます。

詳細については、https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html の「AWS Lambda 関数を使用する際のベストプラクティスAWS Lambda Developer Guide」を参照してください。