はじめに
AWS初心者です。AWSの基本知識をキャッチアップすべく、色々触りながら学習中です。
データベースも触ってみようと思い、LambdaからDynamoDBにデータを書き込む超シンプルな実装をしてみました。初心者向けの内容となっておりますので、温かい目で見て頂ければ幸いです。
想定読者
AWS初心者で、基本機能を色々触ってみたい方
概要
本ページでは、LambdaからDynamoDBにデータを書き込むための手順を一から記載しています。私も10分ほどで確認することができた手順となっておりますので、手っ取り早く確認したい方はぜひお試しください。
チュートリアル
DynamoDBのテーブル作成
AWSコンソールでDynamoDBにアクセスし、テーブルを作成します。
テーブル名とパーティションキーには「id」を入力し、テーブル作成を完了します。
それ以外の設定はデフォルトのままでOKです。
これでDynamoDBの設定は完了です。
Lambda関数の作成
AWSコンソールでLambdaにアクセスし、関数を作成します。
今回はPythonでプログラムを書くため、ランタイムは「python 3.13」を選択します。
コードエディタを開き、以下のサンプルコードを貼り付けてデプロイします。今回は、ユニークなIDと3つのパラメータをDynamoDBに書き込む処理を実装しています。
サンプルコード
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ロールを作成します。
今回はDynamoDBにアクセスするため、ポリシーから「AmazonDynamoDBFullAccess」を選択し、ロールを作成します。
Lambda関数に戻って、設定から作成したロールをアタッチします。
Lambda関数の実行
実行結果
DynamoDBへ移動し、テーブル内のレコードを確認します。
おわりに
初歩的ですが、DynamoDBへの書き込みまでの処理を確認することができました。