🐈
AWS DynamoDBとAWS Lambdaを使用したシンプルなハンズオン
AWS DynamoDBとAWS Lambdaを使用したシンプルなハンズオンガイドです。このガイドでは、Lambda関数を使ってDynamoDBにデータを追加し、読み取る方法を学びます。
1. 前提条件
- AWSアカウントが必要です。
- AWS Management Consoleにアクセスできること。
2. DynamoDBテーブルの作成
まず、DynamoDBテーブルを作成します。
ステップ1: DynamoDBに移動
- AWS Management Consoleにログインします。
- サービスから「DynamoDB」を選択します。
ステップ2: 新しいテーブルの作成
- 「テーブルを作成」をクリックします。
- 以下の設定でテーブルを作成します。
- テーブル名:
Users
- パーティションキー:
UserID
(文字列)
- テーブル名:
- 「作成」をクリックします。
3. Lambda関数の作成
次に、Lambda関数を作成し、DynamoDBにデータを追加および読み取るロジックを実装します。
ステップ1: Lambdaに移動
- AWS Management Consoleに戻り、サービスから「Lambda」を選択します。
ステップ2: 新しい関数の作成
- 「関数の作成」をクリックします。
- 以下の設定で関数を作成します。
- 関数名:
UserFunction
- ランタイム:
Python 3.12
- 実行ロール: 「デフォルトの実行ロール」->「AWSポリシーテンプレートから新しいロールを作成」->「シンプルなマイクロサービスパーミッション」
- 関数名:
ステップ3: コードの追加
作成したLambda関数に以下のコードを追加します。
import json
import boto3
from boto3.dynamodb.conditions import Key
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Users')
def lambda_handler(event, context):
operation = event.get('operation')
if operation == 'create':
user_id = event.get('UserID')
name = event.get('Name')
table.put_item(
Item={
'UserID': user_id,
'Name': name
}
)
return {
'statusCode': 200,
'body': json.dumps('User created successfully!')
}
elif operation == 'read':
user_id = event.get('UserID')
response = table.get_item(
Key={
'UserID': user_id
}
)
item = response.get('Item', {})
return {
'statusCode': 200,
'body': json.dumps(item)
}
else:
return {
'statusCode': 400,
'body': json.dumps('Unsupported operation')
}
4. テストの実行
ステップ1: データの追加
- Lambda関数のテストイベントを設定します。
- 以下のJSONを入力してテストを実行します。
{
"operation": "create",
"UserID": "1",
"Name": "John"
}
ステップ2: データの読み取り
- 新しいテストイベントを設定します。
- 以下のJSONを入力してテストを実行します。
{
"operation": "read",
"UserID": "1"
}
5. まとめ
このハンズオンでは、AWS Lambda関数を使ってDynamoDBにデータを追加および読み取る方法を学びました。Lambda関数を拡張して、より複雑な操作を実装することも可能です。
Discussion