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

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

DynamoDB Streams とトリガー AWS Lambda

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

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

注記

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

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 よりも、非同期的な後処理ステップ関数ワークフローをトリガーすることをお勧めします。

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

詳細については AWS Lambda、『開発者ガイド』を参照してください。AWS Lambda