【发布时间】:2019-10-26 07:12:52
【问题描述】:
与 DynamoDB 进行简单的 Lambda POST 集成。在执行时将一条记录插入 Dynamo。在 AWS Lambda 中进行测试时效果很好。
响应输出为:
{
"isBase64Encoded": false,
"statusCode": 204,
"headers": {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": true
},
"body": "{}"
}
根据the spec(afaict),此响应以编程方式定义为 Lambda 响应处理的一部分。
但是,当通过 API Gateway 中的测试运行时,我收到 502 内部服务器错误。我正在使用 Lambda-Proxy 集成,如下所示:
Cloudwatch 日志显示:
{ ValidationException: Supplied AttributeValue is empty, must contain exactly one of the supported datatypes
at Request.extractError
使用有限的堆栈跟踪(webpack 已经很好地散列了代码)。上述错误表明 DynamoDB 没有正确接收有效负载,或者没有以它想要的格式接收所需属性。但是,我从 lambda 中采用了用于(成功)测试(调整 ID 在运行之间唯一)的相同 JSON,并且相信我的请求标头(Content-Type:application/json)是明智的。
对缩小问题范围有任何想法/帮助吗?如果有帮助,我可以按要求发布更多信息。
【问题讨论】: