18

我正在尝试将来自 Lambda 函数的 JSON 输出映射到 API Gateway 调用的标头。作为此处的示例,我们可以考虑重定向场景。所以我想Location在我的 API Gateway 调用的响应中添加一个标头。

来自 Lambda 函数的 JSON 输出:

{
    Location: 'http://google.com'
}

在“方法响应”->“响应标头”中,我可以将Location标头添加到所需的 HTTP 状态代码。

然后在“Integration Response”->“Header Mappings”中,我可以将标头的映射添加Locationsomething

现在我的问题是这应该是什么

注意:我已经尝试过integration.response.header.Location,或使用“映射模板”,但到目前为止还没有运气。

目前可能无法实现(https://forums.aws.amazon.com/thread.jspa?messageID=651482),但由于 API Gateway/Lambda 目前发展如此之快,我会无论如何问。

4

5 回答 5

10

截至今天(2016 年 1 月),只需integration.response.body.Location在您的情况下指定即可。

于 2016-01-18T11:46:44.573 回答
5

今天(2015 年 11 月 12 日),我正在寻找如何将 Location 标头从我的后端 API 传递到集成响应中的 Location 标头。

此配置有效,我可以从后端 api 获取 Location 标头:

在此处输入图像描述

看起来 Tobias 提出的解决方案目前是可能的。但是,Location 标头指向后端 API,这不是我们想要的。我将尝试为此找到解决方案并将其发布在这里。

于 2015-11-12T16:53:17.530 回答
3

从今天的 AWS 开发人员论坛(2015 年 9 月 25 日)来看,这还不可能,但将来可能会出现:

API Gateway 当前不支持从集成响应主体到响应标头的映射,但我们希望在未来添加对此的支持。

论坛帖子在这里

2015 年 12 月编辑:根据 AWS 员工在上面链接的线程中的帖子添加的功能。感谢Peter Fox指出这一点。

于 2015-09-25T09:37:49.253 回答
1

实际上,您似乎可以访问原始响应提供的所有标头(如果它包含Content-type,那么您可以键入:integration.response.header.Content-type)。但是,我还没有找到添加新标头的任何方法(静态除外)。

于 2015-07-30T20:28:28.783 回答
0

我知道这已经有一段时间了,但你现在可以设置:

映射值中的integration.response.header.Location(注意位置中的大写 L)如果您在响应标头中设置它。

例子

于 2020-10-20T23:35:26.480 回答