Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

ベストプラクティス

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

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

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

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

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

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

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

詳細については、AWS Lambda Developer Guideの「AWS Lambda 関数を使用する際のベストプラクティス」を参照してください。