概要
LambdaからDynamoDBのレコードを主キー以外で取得する方法を紹介します。
前提条件
- DynamoDBにテーブルが作成されており、データも登録されていること
- 必要なIAM権限が付与されていること
環境
- ランタイム:Python3.9
- リージョン:ap-northeast-1
コード
import boto3
from boto3.dynamodb.conditions import Attr
dynamoDB = boto3.resource("dynamodb")
table_name = <DynamoDBのテーブル名>
table = dynamoDB.Table(table_name)
def lambda_handler(event, context):
column = <検索に使うカラム名>
data = <検索に使う値>
responce = table.scan(
FilterExpression = Attr(column).eq(data)
)
return responce
説明
scan関数内の FilterExpression で Attr を指定することで、主キー以外でのレコード取得が実現できます。
2行目の import に Key を加え、scan関数内の FilterExpression で Key を指定すると、主キーでのレコード取得になります。
また、.eq() は .ne() にすると、指定した値以外のレコードを取得可能です。