将API部署到Amazon API Gateway

时间:2015-07-20 19:18:29

标签: amazon-web-services aws-lambda

Amazon API网关中,我创建了一个简单的API,其中包含一个名为 demo 的资源和一个与之对应的 POST 方法:< / p>

enter image description here

现在,我希望我的端点接受任何 Content-Type POST 请求,因此不一定 application / json < / em>,还有 plain / text 。然后我想获取请求的 body 并将其包装在 JSON 对象中并将其发送到 Amazon Lambda函数 Lambda 函数只能接受 JSON 对象作为参数)。

为此,我编辑了与我的方法相对应的 Integration Request ,以使用自定义模板映射:

enter image description here

我使用了亚马逊文档中的参考资料,可在此处找到:http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

我的 Lambda函数如下所示:

exports.handler = function(event, context) {
    context.succeed(event);
};

测试时,无论发送什么,我都会得到预期的输出:

enter image description here

然而,当我部署时,转换不再起作用,它需要 JSON

  • 发送任何东西:

enter image description here

  • 发送JSON会产生以下结果:

enter image description here

此过程的任何部分是否执行错误?我在部署时遗漏了什么?对我来说,它看起来像一个非常讨厌的亚马逊bug,任何人都可以确认吗?

2 个答案:

答案 0 :(得分:3)

使用内容类型“application / json”。

https://gist.github.com/maruks/e036168263cd412146e6

答案 1 :(得分:1)

您是否尝试过在curl请求中设置Accept和Content-Type标头?下面我假设您发送“text / plain”并且可以在响应中接受json

-H "Content-Type: text/plain" -H "Accept: application/json"