top of page

aws lambda PythonでBoto3を用いてDynamoDBからデータ取得

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
	}
}

実行すると条件に合致した値が取得できました。



0件のコメント

Comments


bottom of page