0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】LambdaからDynamoDBへのデータ書き込み

Posted at

はじめに

AWS初心者です。AWSの基本知識をキャッチアップすべく、色々触りながら学習中です。
データベースも触ってみようと思い、LambdaからDynamoDBにデータを書き込む超シンプルな実装をしてみました。初心者向けの内容となっておりますので、温かい目で見て頂ければ幸いです。

想定読者

AWS初心者で、基本機能を色々触ってみたい方

概要

本ページでは、LambdaからDynamoDBにデータを書き込むための手順を一から記載しています。私も10分ほどで確認することができた手順となっておりますので、手っ取り早く確認したい方はぜひお試しください。

チュートリアル

DynamoDBのテーブル作成

AWSコンソールでDynamoDBにアクセスし、テーブルを作成します。
image.png

テーブル名とパーティションキーには「id」を入力し、テーブル作成を完了します。
それ以外の設定はデフォルトのままでOKです。
image.png

以下の通り、テーブルが作成されたことを確認します。
image.png

これでDynamoDBの設定は完了です。

Lambda関数の作成

AWSコンソールでLambdaにアクセスし、関数を作成します。
今回はPythonでプログラムを書くため、ランタイムは「python 3.13」を選択します。
image.png

コードエディタを開き、以下のサンプルコードを貼り付けてデプロイします。今回は、ユニークなIDと3つのパラメータをDynamoDBに書き込む処理を実装しています。

サンプルコード

lambda_function.py
import json
import boto3
import uuid  # UUIDを生成するために使用

# DynamoDBクライアントの作成
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('your-table')  # DynamoDBテーブル名を指定

def lambda_handler(event, context):
    try:
        # リクエストボディを取得
        body = event

        # 必要なデータを取得
        name = body.get("name")
        gender = body.get("gender")
        age = body.get("age")


        # DynamoDBに書き込むデータを構築
        item = {
            "id": str(uuid.uuid4()),  # ユニークなIDを生成
            "name": name,
            "gender": gender,
            "age": age
        }

        # DynamoDBにデータを書き込む
        table.put_item(Item=item)

        # 成功レスポンスを返す
        return {
            "statusCode": 200,
            "body": json.dumps({
                "message": "Data successfully saved to DynamoDB.",
                "item": item  # 保存したデータを返す
            })
        }

    except Exception as e:
        # エラー時のレスポンス
        return {
            "statusCode": 500,
            "body": json.dumps({
                "error": "Internal server error.",
                "details": str(e)
            })
        }

ロールの設定

AWSコンソールでIAMにアクセスし、IAMロールを作成します。
image.png

今回はDynamoDBにアクセスするため、ポリシーから「AmazonDynamoDBFullAccess」を選択し、ロールを作成します。
image.png

Lambda関数に戻って、設定から作成したロールをアタッチします。
image.png

Lambda関数の実行

テストタブでイベントJsonを入力し、テストを実行します。
image.png

実行結果

DynamoDBへ移動し、テーブル内のレコードを確認します。
image.png

おわりに

初歩的ですが、DynamoDBへの書き込みまでの処理を確認することができました。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?