DynamoDB にはトリガーがありますか?
はい。DynamoDB のトリガーは DynamoDB Streams と AWS Lambda で構成されます。ストリームがアイテムレベルの変更をすべてキャプチャし、そのストリームをサブスクライブした Lambda 関数がそれに応じて自動的に実行されます。CREATE TRIGGER 文はありません。トリガーのコードはデータベースの外部にある Lambda に存在します。
トリガーの仕組み
テーブルで DynamoDB Streams を有効にし、ストリームの ARN を Lambda 関数に関連付けます。作成、更新、削除はすべてストリームレコードとしてキャプチャされます。Lambda サービスは1秒間に4回ストリームをポーリングし、新しいレコードのバッチで関数を同期的に呼び出します。イベントをフィルターして、関心のある変更に対してのみ関数が実行されるようにもできます。
トリガーの用途
代表的な用途は、値の変更時に通知を送る、ワークフローを起動する、集計やカウンターを維持する、そして永続的な監査証跡のために各変更を耐久性のあるストレージ(S3 など)にコピーする、といったものです。関数がエラーになった場合、Lambda は成功するかレコードが期限切れになるまでバッチを再試行し、再試行とバッチ処理の動作は設定可能です。
知っておくべき制限
AWS は1つのストリームにサブスクライブする Lambda 関数は最大2つにすることを推奨しています。それ以上だと読み取りのスロットリングを引き起こす可能性があります。トリガー関数は短命であるべきで、重い処理はインラインで長いロジックを実行するのではなく、非同期ワークフローに引き渡しましょう。
さらに詳しく
まずはストリームモデルそのものについて DynamoDB Streams ガイドから始め、トリガーが反応する書き込みを Expression Builder で組み立て、ストリームに供給されるアイテムの変更を見るには DynoTable をダウンロードしてください。
参考資料
- DynamoDB Streams and AWS Lambda triggers — Amazon DynamoDB Developer Guide
- Change data capture for DynamoDB Streams — Amazon DynamoDB Developer Guide
- Quotas in Amazon DynamoDB — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。