DynamoDB Streams と AWS Lambda トリガー - Amazon DynamoDB

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

DynamoDB Streams と AWS Lambda トリガー

Amazon DynamoDB は と統合 AWS Lambda されているため、トリガーを作成できます。トリガーとは、DynamoDB Streams のイベントに自動的に応答するコードです。トリガーを使用すると、DynamoDB テーブル内のデータ変更に対応するアプリケーションを構築できます。

テーブルで DynamoDB Streams を有効にすると、書き込む AWS Lambda 関数にストリームの Amazon リソースネーム (ARN) を関連付けることができます。その後、その DynamoDB テーブルに対するすべてのミューテーションアクションをストリーム上の項目としてキャプチャできます。例えば、テーブル内の項目が変更されたときに、そのテーブルのストリームに新しいレコードがすぐに表示されるようにトリガーを設定できます。

注記

3 つ以上の Lambda 関数をサブスクライブできますが、複数の Lambda 関数を 1 つの DynamoDB ストリームに使用すると、読み取りスロットリングが発生する可能性があります。

AWS Lambda サービスは、1 秒に 4 回、ストリームをポーリングして新しいレコードを探します。新しいストリームレコードが利用可能になると、Lambda 関数が同期的に呼び出されます。同じ DynamoDB ストリームに最大 2 つの Lambda 関数をサブスクライブできます。

Lambda 関数は、通知の送信やワークフローの開始など、指定した他の多くのアクションを実行できます。各ストリームレコードを Amazon S3 File Gateway (Amazon S3) などの永続的ストレージにコピーするだけで、書き込みアクティビティの永続的な監査追跡をテーブルに作成する Lambda 関数を記述できます。または、GameScores テーブルに書き込みを行うモバイルゲームアプリがあるとします。TopScore テーブルの GameScores 属性が更新されるたびに、対応するストリームレコードがテーブルのストリームに書き込まれます。その後、このイベントによって Lambda 関数をトリガーし、ソーシャルメディアネットワークにおめでとうメッセージを投稿できます この関数は、GameScores の更新でないストリームレコードや、TopScore 属性を変更しないストリームレコードを無視するように記述できます。

関数がエラーを返した場合、処理が正常に完了するか、データの有効期限が切れるまで Lambda はバッチを再試行します。Lambda では、より小さなバッチで再試行したり、再試行回数を制限したり、古すぎるレコードを破棄したりするよう設定できます。

パフォーマンスのベストプラクティスとして、Lambda 関数は存続期間を短くする必要があります。また、不必要な処理の遅延が発生するのを防ぐため、複雑なロジックは実行しないでください。特に高速ストリームの場合は、同期的に長時間実行する Lambda よりも、非同期的な後処理ステップ関数ワークフローをトリガーすることをお勧めします。

異なる AWS アカウント間で同じ Lambda トリガーを使用することはできません。DynamoDB テーブルと Lambda 関数の両方が同じ AWS アカウントに属している必要があります。

の詳細については AWS Lambda、「 AWS Lambda デベロッパーガイド」を参照してください。