PythonをBoto3を使って、DynamoDBからデータを取得してみます。
今回使った環境は
DynamoDB : 事前に「testdb」というテーブルを作成しておく
Runtime : python3.10 (lambdaで実行)
Pythonのコード
import json
import boto3
from boto3.dynamodb.conditions import Key, Attr
def lambda_handler(event, context):
print(event)
table_name = 'testdb'
dynamo = boto3.resource('dynamodb')
table = dynamo.Table(table_name)
response = table.query(KeyConditionExpression=Key('Artist').eq(event['artist']))
return(response)
importでboto3モジュールを呼び出します。
その後、使用するテーブル名を定義。
boto3を使って、dynamodbのオブジェクトを取得
queryを使って、DBから値を取得。今回は、payloadから取得した値が、DBのArtistのKeyに一致するデータを取得する条件を設定。
最後に追加された結果をreturnして終わり。
テスト用payload
{
"artist": "Michael Jackson"
}
実行結果
{
"Items": [
{
"Title": "Thriller",
"Artist": "Michael Jackson"
}
],
"Count": 1,
"ScannedCount": 1,
"ResponseMetadata": {
"RequestId": "***************",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"server": "Server",
"date": "Wed, 07 Jun 2023 09:03:16 GMT",
"content-type": "application/x-amz-json-1.0",
"content-length": "98",
"connection": "keep-alive",
"x-amzn-requestid": "***************",
"x-amz-crc32": "4290830663"
},
"RetryAttempts": 0
}
}
実行すると条件に合致した値が取得できました。
Comments