【AWS Lambdaの基本コードその6】 DynamoDBからデータを読み取り

こんにちは、Michaelです。
今回は、AWS LambdaでDynamoDBのテーブルからデータを読み取ります。

今回の構成

Lambdaが起動されると、入力されたデータの「client_id」を基にDynamoDBのテーブル「device_properties」に登録されたデータを参照します。

IAMロールの設定

LambdaからDynamoDBにデータを登録するため、以下のポリシーを作成し、Lambdaに適用するIAMロールにアタッチします。このポリシーでは、テーブルの「読み取り」、「書き込み」、「更新」の最小限のポリシーのみ許可しています。

コード

コードは以下のようになります。

コードの説明

コードの内容は以下の通りです。

項番 項目 内容
ライブラリのimport 処理に必要なライブラリを指定してインポートします。
Functionのロードをログに出力 Lambdaのコードがロードされたことが分かるようにログにメッセージを出力します。
DynamoDBオブジェクトを取得 DynamoDBと接続できるようにインスタンスを生成します。
Lambdaのメイン関数 トリガーにより実行される関数。
テーブル名を指定 データを参照するテーブル名を設定します。
参照データのキーの設定 読み取るデータのキーを設定します。
DynamoDBテーブルのオブジェクトを取得 DynamoDBのテーブルを操作できるようにインスタンスを生成します。
データの読み取り DynamoDBのテーブルからデータを読み取ります。レスポンスのデータには、メタデータが含まれるため、「Item」のキーを指定してデータを抽出します。

実行結果

テスト実行にあたり、テストイベントとして以下のJSONデータを登録しておきます。

DynamoDBの「device_properties」テーブルには以下のようなデータが入っています。参照する「device012」には千葉県庁の所在地が格納されています。


Lambdaのコードエディタの上部にある[テスト]をクリックすると、テスト実行されます。
テストを実行すると、テストイベントのデータに対応するデータを読み取れていることが確認できました。

まとめ

DynamoDBはKVSのため、テーブルとキーを指定するだけで簡単にデータを読み込みこむことができます。RDSのようにコネクションの確立やSELECT文のようなクエリが必要ないため、データストアとの連携がとてもシンプルに構成できます。
今回は以上となります。次回もお楽しみに!