AWS

【DynamoDB】AWS Lambda を使用した DynamoDB 実行の準備

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へテーブルを作成します。

© DeNnie.Lab All Rights Reserved.