AWS Api网关:

时间:2015-12-24 18:22:16

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

基于我在此处和其他地方发布的内容,似乎几天前添加自定义响应标头现在是可行的。不幸的是,我似乎无法找到任何例子。

我正在使用lambda(python)来启动API,我似乎无法获得映射的响应头。

任何人都可以提供2个基本示例:(1)如何映射到自定义标题,如“X-API-VER:xyz”,其中xyz来自lambda的响应(2)如何映射Set-Cookie标头与来自lambda的cookie字符串?

我在lambda中试过这个回应:

{
  "X-API-VER": "xyz",
}

然后作为响应映射:

{

    "method.response.header.X-API-VER" : "integration.response.header.X-API-VER",

}

但这只会改变对同一事物的反应:

{

"method.response.header.X-API-VER" : "integration.response.header.X-API-VER",

}

我似乎无法弄清楚如何从lambda响应中提取数据以设置标头,同时将lambda响应的其余部分输出为正常passthrough。

如果重要,我们将使用API​​网关的Web界面。

有人想出来了吗?

参考:http://docs.aws.amazon.com/apigateway/latest/developerguide/request-response-data-mappings.html#mapping-response-parameters

2 个答案:

答案 0 :(得分:2)

尝试"身体"而不是"标题"在集成响应映射表达式中:

function fffFunction(nnn)
  List = List or {print, type, type}
  table.insert(List, table.remove(List, 1))
  List[1](nnn)
end

请参阅此文档以将映射集成响应映射到API网关方法响应:https://docs.aws.amazon.com/apigateway/latest/developerguide/request-response-data-mappings.html#mapping-response-parameters

答案 1 :(得分:1)

想出来!看起来我试图在Response Mapping中执行此操作,而实际上我应该按照此处所述进行Header映射:

https://stackoverflow.com/a/33676951/545447