top of page

aws lambda PythonでBoto3を用いてDynamoDBに新しいアイテムを追加

PythonをBoto3を使って、DynamoDBにアイテムを追加してみます。

今回使った環境は

DynamoDB : 事前に「testdb」というテーブルを作成しておく

Runtime : python3.10 (lambdaで実行)


Pythonのコード

import json
import boto3

def lambda_handler(event, context):
    print(event)
    table_name = 'testdb'
    item = {
       'Artist': event['artist'],
       'Title': event['title']
    }
    dynamo = boto3.resource('dynamodb')
    table = dynamo.Table(table_name)
    response = table.put_item(Item=item)
    
    print(response)

importでboto3モジュールを呼び出します。

その後、使用するテーブル名を定義し、DBに追加する項目をpayload(event引数)から取得。

boto3を使って、dynamodbのオブジェクトを取得

put_itemを使って、DBに項目追加実行。

最後に追加された結果をprintで出力します。


テスト用payload

{
    "artist": "Michael Jackson",
    "title": "Thriller"
}

実行結果

START RequestId: ******************************** Version: $LATEST
{'artist': 'Michael Jackson', 'title': 'Thriller'}
{'ResponseMetadata': {'RequestId': '*********************', 'HTTPStatusCode': 200, 'HTTPHeaders': {'server': 'Server', 'date': 'Wed, 07 Jun 2023 05:26:26 GMT', 'content-type': 'application/x-amz-json-1.0', 'content-length': '2', 'connection': 'keep-alive', 'x-amzn-requestid': '***************************', 'x-amz-crc32': '2745614147'}, 'RetryAttempts': 0}}
END RequestId: ************************
REPORT RequestId: ****************************	Duration: 1625.71 ms	Billed Duration: 1626 ms	Memory Size: 128 MB	Max Memory Used: 70 MB	Init Duration: 253.35 ms

実行すると「ResponseMetadata」が出力されます。


DB確認

awsのコンソール画面から「DynamoDB」へアクセスし、「項目の探索」からtestdbを選択し、「返された項目」を確認すると、Boto3を使用してlambda pythonから追加したアイテムが表示されていることが確認できます。

0件のコメント

Comments


bottom of page