Как вы читаете запись Dynamodb из функции AWS Lambda?
Я пытаюсь вызвать 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 {}
, но когда я запускаю тест черезинструмент лямбда-тестирования завершается с ошибкой:
{
"errorMessage": "'Item'",
"errorType": "KeyError",
"stackTrace": [
" File \"/var/task/main.py\", line 33, in handler\n item = response['Item']\n"
]
}
Даже если docs say 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
не предоставляется? Как получить запись из «Динамо»?