AWS DynamoDBからLambdaを呼び出す


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上でログが出力されておりました。

, ,

コメントを残す

メールアドレスが公開されることはありません。