【发布时间】:2019-10-24 12:43:28
【问题描述】:
如何从 AWS Lambda 函数中读取 Dynamodb 记录?
我正在尝试通过以下方式致电get_item:
import os
import boto3
def handler(event, context):
id = event['id']
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('mytable')
response = table.get_item(
Key={
'id': id,
}
)
print('response:', response)
item = response['Item']
return {}
但是当我通过 Lambda 测试工具运行测试时,它失败并出现错误:
{
"errorMessage": "'Item'",
"errorType": "KeyError",
"stackTrace": [
" File \"/var/task/main.py\", line 33, in handler\n item = response['Item']\n"
]
}
尽管docs 说get_item 应该返回一个包含Item 字典的对象,但它实际上返回:
{'ResponseMetadata': {'RequestId': 'DIDH3KVSPP1LU7O0TBLGP701QRVV4KQNSO5AEMVJF66Q9ASUAAJG', 'HTTPStatusCode': 200, 'HTTPHeaders': {'server': 'Server', 'date': 'Thu, 24 Oct 2019 03:15:42 GMT', 'content-type': 'application/x-amz-json-1.0', 'content-length': '2', 'connection': 'keep-alive', 'x-amzn-requestid': 'DIDH3KVSPP1LU7O0TBLGP701QRVV4KQNSO5AEMVJF66Q9ASUAAJG', 'x-amz-crc32': '2745614147'}, 'RetryAttempts': 0}}
为什么没有提供Item?如何从 Dynamo 中检索记录?
【问题讨论】:
标签: python amazon-web-services aws-lambda amazon-dynamodb boto3