🐈

AWS DynamoDBとAWS Lambdaを使用したシンプルなハンズオン

2024/06/01に公開

AWS DynamoDBとAWS Lambdaを使用したシンプルなハンズオンガイドです。このガイドでは、Lambda関数を使ってDynamoDBにデータを追加し、読み取る方法を学びます。

1. 前提条件

  • AWSアカウントが必要です。
  • AWS Management Consoleにアクセスできること。

2. DynamoDBテーブルの作成

まず、DynamoDBテーブルを作成します。

ステップ1: DynamoDBに移動

  1. AWS Management Consoleにログインします。
  2. サービスから「DynamoDB」を選択します。

ステップ2: 新しいテーブルの作成

  1. 「テーブルを作成」をクリックします。
  2. 以下の設定でテーブルを作成します。
    • テーブル名: Users
    • パーティションキー: UserID(文字列)
  3. 「作成」をクリックします。

3. Lambda関数の作成

次に、Lambda関数を作成し、DynamoDBにデータを追加および読み取るロジックを実装します。

ステップ1: Lambdaに移動

  1. AWS Management Consoleに戻り、サービスから「Lambda」を選択します。

ステップ2: 新しい関数の作成

  1. 「関数の作成」をクリックします。
  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: データの追加

  1. Lambda関数のテストイベントを設定します。
  2. 以下のJSONを入力してテストを実行します。
{
    "operation": "create",
    "UserID": "1",
    "Name": "John"
}

ステップ2: データの読み取り

  1. 新しいテストイベントを設定します。
  2. 以下のJSONを入力してテストを実行します。
{
    "operation": "read",
    "UserID": "1"
}

5. まとめ

このハンズオンでは、AWS Lambda関数を使ってDynamoDBにデータを追加および読み取る方法を学びました。Lambda関数を拡張して、より複雑な操作を実装することも可能です。

Discussion