LoginSignup
2
5

More than 5 years have passed since last update.

【AWSメモ】DynamoDB StreamsのストリームデータをLambdaで読み込む

Posted at

DynamoDB StreamsのストリームデータをLambdaで読み込む方法を記載します.

1. DynamoDB Streamsについて

一言で言うと,DynamoDBテーブル内の変更を時系列順に最大24時間保存する.

DynamoDB Streamsは下記を保守する
- 変更内容はストリームに 1 回だけ出現する
- 変更された各項目について、実際の変更と同じ順序で出現する

2. ストリームの有効化

DynamoDB Streamsを有効化する前に,まずテスト用のテーブルを作成する.
- プライマリーキーはnameで,その他項目はvalueとする.

スクリーンショット 2018-07-13 21.37.19.png

DynamoDB Streamsを有効化するのは非常に簡単です.
DynamoDBコンソールのダッシュボードから、[テーブル]を選択.

スクリーンショット 2018-07-13 21.41.30.png

[概要]タブで、[ストリームの管理]を選択.

スクリーンショット 2018-07-13 21.38.15.png

[ストリームの管理]ウィンドウで、テーブルのデータが変更されるたびにストリームに書き込まれる情報を選択し,[有効化]をクリック

スクリーンショット 2018-07-13 21.38.33.png

各ストリームは,Amazonリソースネームで一意に識別されます.

arn:aws:dynamodb:ap-northeast-1:111122223333:table/height/stream/2018-07-13T12:38:41.050

3. ストリームの読み込み

読み込む方法としてLambdaからDynamoDBをトリガーとして読み込む方法がある.

3.1. Lambda関数を作成

Lambda関数を作成する.設計図を選択し,「dynamodb-process-stream-python3」を選択する.

スクリーンショット 2018-07-13 22.33.15.png

Lambda関数名やIAMなどは必要な情報を埋める.

スクリーンショット 2018-07-13 22.36.14.png

DynamoDB トリガーはトリガーの有効化を選択するとDynamoDB Streamsからデータを読み込む設定が完了する.

スクリーンショット 2018-07-13 22.35.50.png

Lambda関数を作成する.下記は既存のテンプレート.

スクリーンショット 2018-07-13 22.35.55.png

3.2. DynamoDBにデータを挿入し動作確認

実際にDynamoDBに下記の通り値を挿入してみる.

スクリーンショット 2018-07-13 22.28.08.png

下記の通りログが流れていることがわかる.

スクリーンショット 2018-07-13 22.30.41.png

下記がログの抜粋

{
    "ApproximateCreationDateTime": 1531488480,
    "Keys": {
        "name": {
            "S": "tarou"
        }
    },
    "NewImage": {
        "name": {
            "S": "tarou"
        },
        "height": {
            "N": "160"
        }
    },
    "SequenceNumber": "17700000000000480644429",
    "SizeBytes": 27,
    "StreamViewType": "NEW_AND_OLD_IMAGES"
}

4. 参考リンク

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5