Lambda関数からDynamoDBを操作する為の準備を行います。
Lambda関数の説明は行いません。Lambda関数の基本が分かっている前提とします。
プログラミング言語はNode.jsを使用します。
Lambda関数作成
AWS Lambda へ任意の関数を新しく作成して下さい。
今回は “DynamoDbFunction” という名前の関数を作成します。
ディレクトリ構成
Lambda関数のディレクトリ構成は以下とします。
DynamoDbFunction
-- index.js
-- DynamoDbSetter.js
-- DynamoDbOperator.js
DynamoDBセットアップ
今回はAWS SDKを使用してDynamoDBを操作します。
Lambda関数にはデフォルトで AWS SDKがインストールされているのでデフォルトで AWS SDK を使用できます。
今回作成した DynamoDbSetter は AWS SDK を使用して DynamoDB へアクセスする為の設定を行うクラスとします。
const AWS = require("aws-sdk");
module.exports = class DynamoDbSetter {
constructor() {
// dynamoDBセットアップ
this.dynamodb = new AWS.DynamoDB();
}
}
AWS SDKを使用したDynamoDBへのアクセスには、Lambda関数へ設定した実行権限ロールが使用されます。
従って、実行権限ロールにDynamoDBを操作する権限がない場合、権限を与える必要があることに注意して下さい。
実行関数
index.jsはLambdaを実行すると初めに呼び出されるjsファイルになります。
内容は以下の通りです。
const DynamoDbOperator = require('./DynamoDbOperator');
exports.handler = async (event, context) => {
let dynamoDbOperator = new DynamoDbOperator();
let result = await dynamoDbOperator.exec(event);
context.succeed({
statusCode: 200,
body: result,
});
};
DynamoDBを操作するクラス DynamoDbOperator のインスタンスを作成し、実行メソットの呼び出しを行います。
DynamoDBへの操作
DynamoDbOperator は DynamoDBの設定を行うDynamoDbSetterを継承しています。故に、DynamoDBの設定は親クラスのDynamoDbSetterが行います。
このクラスはDynamoDBの操作を行うクラスになります。
以後 exec メソットにDynamoDBの操作を記載します。
今は内容は記載しません。
const DynamoDbSetter = require("./DynamoDbSetter");
module.exports = class DynamoDbOperator extends DynamoDbSetter{
async exec(event) {
// 実行内容
// 実行
}
}
これらをzipファイルにし AWS Lambda の DynamoDbFunction へデプロイして下さい。
最後に
以降、DynamoDbOperator を使用してDynamoDBの操作を行います。
次回はDynamoDBへテーブルを作成します。