DynamoDBストリームを有効にします。
DynamoDBのメニューから「ストリームの管理」をクリックします。
今回は項目が変更された後の内容を取得したので、「新しいイメージー変更後に表示される項目全体」を選択して「有効化」ボタンをクリックします。
確認用にLambda関数を作成します。
Lambdaのメニューより「関数の作成」をクリックします。
今回はpythonで使用します。関数名を入力して、ランタイムで「python」を選択して「関数の作成」ボタンをクリックします。
関数名は「dynamo-stream-sample」としました。
関数コードを記述します。
下記コードを関数コード内にコピペして「保存」ボタンを押します。
プログラムの内容は、DynamoDBの項目に変更があれば、イベントIDをイベント名を出力します。
python以外の言語はこちら サンプル関数コード
from __future__ import print_function
def lambda_handler(event, context):
for record in event['Records']:
print(record['eventID'])
print(record['eventName'])
print('Successfully processed %s records.' % str(len(event['Records'])))
作成したLambda関数にDynamoDBStreamへのロールを付与します。
作成したLambda関数の「実行ロール」部分のロールを表示リンクをクリックします。
「ポリシーをアタッチします」ボタンをクリックします。
検索欄に”dynamo”と入力して、表示された「AWSLambdaDynamoDBExecutionRole」にチェックをいれ「ポリシーのアタッチ」をクリックします。
続いて、Lambda関数にDynaoDBのトリガーを追加します。
作成したLambda関数の 「トリガーの追加」ボタンをクリックします。
確認します。
DynamoDBの画面より上記で設定したテーブルの項目を編集します。
CloudWatch上でログが出力されておりました。