Cover Image for AWS Lambda から DynamoDB にデータを書き込み操作する方法
AWS Lambda から DynamoDB にデータを書き込み操作する方法

概要

今回の記事では、AWS Lambda から DynamoDB にデータを書き込み操作する方法を丁寧に解説します。

とにかくやってみる!ことで、AWSに関連することを学んでいきましょう。

Lambda(node.js)のスクリプト(javascript)をつかって、DynamoDBにデータを書き込む方法 について学ぶことができます。

前提条件

  • AWSアカウントを持っていること

目的

今回の記事では、

  1. DynamoDBのテーブル作成手順を学ぶ
  2. Lambda(node.js)でjavascriptスクリプトを実装する手順を学ぶ
  3. Lambda(node.js)を動かす手順を学ぶ

の流れで、AWS Lambda から DynamoDB にデータを書き込み操作する方法を学ぶことを目的としています。

目次

内容

完成イメージ(これから作成するもの)を確認して、具体的な手順を説明します。

完成イメージ

完成イメージ

DynamoDBを作成する

  1. AWS コンソールにログインして、DynamoDBサービスの画面を開きます。

AWS コンソールの検索でDynamoDBを探しましょう
AWS コンソール検索

  1. DynamoDBの画面にある「テーブル作成」ボタンを押します。
  2. 「テーブル作成」画面で各種設定し、DynamoDBのテーブルを作成します。
入力項目
テーブル名 person
パーティションキー mynumber
ソートキー name
具体的な作成手順(画面キャプチャ)
  1. テーブル作成
    テーブル作成
  2. テーブル設定
    テーブル作成
  3. 読み込み/書き込みキャパシティーの設定
    読み込み/書き込みキャパシティーの設定
  4. テーブルを作成
    テーブルを作成

Lyambdaを作成する

  1. AWS コンソールにログインして、Lamdbaサービスの画面を開きます。

AWS コンソールの検索でLamdbaを探しましょう
AWS コンソール検索

  1. Lamdbaの画面にある「関数の作成」ボタンを押します。
  2. 「テーブル作成」画面で各種設定し、Lambda関数を作成します。
入力項目
関数名 insert_person
ロール名 person_access_role
具体的な作成手順(画面キャプチャ)
  1. 関数の作成
    関数の作成

関数の作成

右下の「設定」ボタンを押下する。

  1. 基本的な情報
    基本的な情報
  2. 関数の作成
    関数の作成
  1. Lambda関数のソースコード(javascript)を修正し、デプロイします。
具体的な作成手順(画面キャプチャ)

関数の概要

下記のソースコードをコピペします。

ソースコード(javascript)
var aws = require('aws-sdk');
var dynamo = new aws.DynamoDB();

exports.handler = async (event) => {

    let Item_row = {
        mynumber:{S:"777455348514"},    // ★適当な値
        name:{S:"さいとう たかお"}       // ★適当な値 
    };
    let prm={
        "TableName":"person",          // ★テーブル名
        "Item":Item_row//書き込みアイテム
    };

    let res= await dynamoPutItem(prm);
    
    return res;
};

function dynamoPutItem(obj){
    return new Promise((resolve, reject) => {
        let params = obj;
        dynamo.putItem(params,function(err, data) {
            if (err) {
                reject(err, err);
            } else {
                resolve("updated");
            }
        });
    });
}

デプロイ

「デプロイ」ボタンを押します。

動かしてみる

1.「テスト」ボタンを押します。
テスト

  1. 正常に動作すると"成功"と表示されます。
    成功
「ResourceNotFoundException」が発生した場合、DynamoDBのテーブル名が間違っていないことを確認しましょう。

エラー
また、下記のエラーの場合も、原因はテーブル名を確認しましょう。
エラー

  1. DynamoDBのテーブル確認
    「テーブルアイテムの探索」ボタンを押します。
    エラー

挿入されたレコードがあることを確認します。
エラー

まとめ

LamdbdaからDynamoDBにデータを書き込むことはできたでしょうか?

ソースコードをコピーして、動かしてみるだけなら簡単にできると思いますので、このソースコードをベースにLambda実行時にインサートするデータを変数として渡すCSVファイルからデータを読み込む など、機能を拡張してみると楽しいと思います。

本記事を読んでいただきありがとうございまいた。
少しでもみなさまのお役に立てばうれしいです。

© 2022 k69

本サイトを通じて、たくさんの人がプログラミングに興味を持ち、 これがキッカケでモノづくりの楽しさに触れることができれば幸せです!