【发布时间】:2015-10-10 01:18:59
【问题描述】:
在 Amazon API Gateway 中,我创建了一个简单的 API,其中包含一个名为 demo 的资源和一个与之对应的 POST 方法:
现在,我希望我的端点接受 any Content-Type 的 POST 请求,所以不一定是 application/json,还有 plain/text。然后我想获取请求的 body 并将其包装在 JSON 对象中并将其发送到 Amazon Lambda 函数 ( Lambda 函数只能接受 JSON 对象作为参数)。
为此,我编辑了与我的方法相对应的集成请求,以使用自定义模板映射:
我使用了亚马逊文档中的参考资料,可以在这里找到:http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
我的 Lambda 函数如下所示:
exports.handler = function(event, context) {
context.succeed(event);
};
测试时,无论我发送什么,我都会得到预期的输出:
但是,当我部署时,转换不再起作用,它需要 JSON
- 发送任何内容都会导致:
- 发送 JSON 会产生这样的结果:
这个过程中是否有任何部分执行错误?部署时我错过了什么吗?对我来说,这看起来像是一个非常烦人的亚马逊错误,有人可以确认吗?
【问题讨论】:
-
“测试”按钮是否有效?
-
是的,但重要的是要了解,在测试请求的内容类型时强制为 application/json。这将反过来匹配我的模板。
-
而且不能删除需要的
Content-Type或者替换成'*'? -
好像不行。也许还有其他通配符?
-
感谢这个写得很好的问题,它帮助我解决了我的问题
标签: amazon-web-services aws-lambda