从Lambda函数中的API Gateway调用获取响应正文

时间:2016-12-12 01:01:13

标签: amazon-web-services aws-lambda aws-api-gateway

我知道如何设置API网关并将其链接到Lambda函数。我不知道的是,我上帝搜索过的是如何从Lambda的API网关获取响应主体。

我如何得到它?我在AWS控制台中测试API时看到了它。

1 个答案:

答案 0 :(得分:4)

我认为你必须设置身体映射模板。 Goto Gateway API - >您创建的API - >资源 - >方法(获取/发布..) - >整合请求 - >身体映射模板 - >添加映射模板 内容类型:application / json

{
  "body" : $input.json('$'),
  "headers": {
    #foreach($header in $input.params().header.keySet())
    "$header": "$util.escapeJavaScript($input.params().header.get($header))" #if($foreach.hasNext),#end

    #end
  },
  "method": "$context.httpMethod",
  "params": {
    #foreach($param in $input.params().path.keySet())
    "$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end

    #end
  },
  "query": {
    #foreach($queryParam in $input.params().querystring.keySet())
    "$queryParam": "$util.escapeJavaScript($input.params().querystring.get($queryParam))" #if($foreach.hasNext),#end
    #end
  }  
} 

您应该能够访问Lambda中的变量

params.Item = event.query;访问查询参数

查看这些链接以获取更多信息 http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

https://kennbrodhagen.net/2015/12/06/how-to-create-a-request-object-for-your-lambda-event-from-api-gateway/

如果有帮助,请告诉我。