Я публикую простую структуру JSON в Amazon Gateway API из Python.
Вот структура JSON:
payload = {
'ping': '1.967',
'download': '570.01',
'upload': '697.85',
'timestamp': '1527845073'
}
А вот код Python:
headers = {'content-type':'application/json'}
r = requests.post("https:xxx.execute-api.us-east-1.amazonaws.com/beta/device", data = payload ,headers=headers)
print(r.status_code, r.reason)
print(r.text)
- r.status_code возвращается как '200'
- r.reason возвращается как 'Ok'
- r.text возвращается как {"__ type": "com.amazon.coral.validate # ValidationException "," message ":" Одно или несколько значений параметров недопустимы: AttributeValue может не содержать пустую строку "}
Параметры явно не пусты, поэтому я 'Я не уверен, почему я получаю эту ошибку.У меня есть шаблон отображения тела в запросе на интеграцию, который выглядит следующим образом:
{
"TableName": "device",
"Item": {
"id": {
"S": "$context.requestId"
},
"ping": {
"S": "$input.path('$.ping')"
},
"download": {
"S": "$input.path('$.download')"
},
"upload": {
"S": "$input.path('$.upload')"
},
"timestamp": {
"S": "$input.path('$.timestamp')"
}
}
}
И когда я запускаю тест из AWS Gateway API Console, данные вводятся в DynamoDB просто отлично.Тем не менее, это не будет работать с Python.Есть идеи, что я могу делать не так?Держу пари, это глупая ошибка.Спасибо.