AWS Lambda で Amazon DynamoDB グローバルテーブルストリームイベントをキャプチャするにはどうすればよいですか?

所要時間1分
0

Amazon DynamoDB グローバルテーブルからのストリームを処理する AWS Lambda トリガーを作成したいと考えています。

解決方法

DynamoDB グローバルテーブルは、複数のリージョンにまたがる単一アカウントのレプリカのコレクションです。グローバルテーブルは、DynamoDB Streams を使用して異なるリージョン間でデータをレプリケートします。グローバルテーブルのレプリカを作成すると、ストリームがデフォルトで作成されます。レプリカに対する変更は、DynamoDB Streams を使用して 1 秒以内に同じグローバルテーブル内の他のすべてのレプリカにレプリケートされます。

注: 任意の 1 つのリージョンのいずれかのグローバルテーブルレプリカに 1 つのコンシューマーがあるだけで、すべての項目の変更レコードを取得できます。

次の手順を実行して、グローバルテーブルレプリカからのストリームを処理するように AWS Lambda トリガーを設定できます。

  1. AWSLambdaDynamoDBExecutionRole に必要な AWS Identity and Access Management (IAM) の許可があることを確認してください。
    注: デフォルトでは、AWSLambdaDynamoDBExecutionRole IAM ポリシーには、Lambda が Amazon Simple Notification Service (Amazon SNS) などの他のサービスと通信するための許可がありません。これは、Lambda ターゲットに基づいて、必要な追加の許可を追加する必要があることを意味します。
  2. ブループリント dynamodb-process-stream を使用して Lambda 関数を作成します。ストリームデータを処理する要件に応じて Lambda コードを変更できます。
  3. Lambda 関数を正常に作成したら、DynamoDB コンソールを開き、グローバルテーブルレプリカを選択します。[Exports and streams] (エクスポートとストリーム) タブで、[Create trigger] (トリガーを作成) を選択します。その後、前のステップで作成した Lambda 関数を選択します。トリガーの作成後にトリガーがアクティブ化されるように、必ず [Enable trigger] (トリガーを有効にする) を選択してください。

これで、Lambda 関数がグローバルテーブルレプリカのトリガーとして設定されました。レプリカに対するすべての変更はストリームによってキャプチャされ、トリガーが呼び出されます。


関連情報

DynamoDB Streams と AWS Lambda のトリガー

AWS公式
AWS公式更新しました 2年前