将 Lambda 输出映射到 API 网关 header
Mapping Lambda output to API Gateway header
我正在尝试将 Lambda 函数的 JSON 输出映射到 API 网关调用的 header。作为此处的示例,我们可以考虑重定向场景。所以我想在 API 网关调用的响应中添加 Location
header。
JSON Lambda 函数的输出:
{
Location: 'http://google.com'
}
在 "Method Response"->"Response Headers" 中,我可以将 Location
header 添加到所需的 HTTP 状态代码。
然后在 "Integration Response"->"Header Mappings" 中,我可以将 Location
header 的映射添加为 某物 。
现在我的问题是这个东西应该是什么?
注意:我已尝试 integration.response.header.Location
,或使用 "Mapping Templates",但到目前为止没有成功。
目前可能不可能 (https://forums.aws.amazon.com/thread.jspa?messageID=651482),但由于 API Gateway/Lambda 目前发展如此之快,我还是会问的。
实际上,您似乎可以访问原始响应提供的所有 header(如果它包含 Content-type,那么您可以输入:integration.response.header.Content-type)。但是,我还没有找到添加新 header 的任何方法(静态除外)。
来自今天(2015 年 9 月 25 日)的 AWS 开发人员论坛,这还不可能,但将来可能会实现:
API Gateway does not currently support mapping from the integration response body to the response headers, but we are looking to add support for this in the future.
2015 年 12 月编辑:AWS 员工根据 post 在上面链接的线程中添加的功能。感谢 Peter Fox 指出这一点。
今天(2015 年 11 月 12 日),我正在寻找如何将位置 header 从我的后端 API 传递到集成响应中的位置 header。
此配置有效,我可以从后端 api:
获取位置 header
看来 Tobias 提出的解决方案目前是可行的。但是,Location header 指向后端 API,这不是我们想要的。我会尝试为此找到解决方案,post 在这里。
截至今天(2016 年 1 月),它只需在您的案例中指定 integration.response.body.Location
即可工作。
我知道有人问这个问题已经有一段时间了,但您现在可以设置:
integration.response.header.Location(注意 Location 中的大写 L)如果您在响应 headers.
中设置映射值
我正在尝试将 Lambda 函数的 JSON 输出映射到 API 网关调用的 header。作为此处的示例,我们可以考虑重定向场景。所以我想在 API 网关调用的响应中添加 Location
header。
JSON Lambda 函数的输出:
{
Location: 'http://google.com'
}
在 "Method Response"->"Response Headers" 中,我可以将 Location
header 添加到所需的 HTTP 状态代码。
然后在 "Integration Response"->"Header Mappings" 中,我可以将 Location
header 的映射添加为 某物 。
现在我的问题是这个东西应该是什么?
注意:我已尝试 integration.response.header.Location
,或使用 "Mapping Templates",但到目前为止没有成功。
目前可能不可能 (https://forums.aws.amazon.com/thread.jspa?messageID=651482),但由于 API Gateway/Lambda 目前发展如此之快,我还是会问的。
实际上,您似乎可以访问原始响应提供的所有 header(如果它包含 Content-type,那么您可以输入:integration.response.header.Content-type)。但是,我还没有找到添加新 header 的任何方法(静态除外)。
来自今天(2015 年 9 月 25 日)的 AWS 开发人员论坛,这还不可能,但将来可能会实现:
API Gateway does not currently support mapping from the integration response body to the response headers, but we are looking to add support for this in the future.
2015 年 12 月编辑:AWS 员工根据 post 在上面链接的线程中添加的功能。感谢 Peter Fox 指出这一点。
今天(2015 年 11 月 12 日),我正在寻找如何将位置 header 从我的后端 API 传递到集成响应中的位置 header。
此配置有效,我可以从后端 api:
获取位置 header看来 Tobias 提出的解决方案目前是可行的。但是,Location header 指向后端 API,这不是我们想要的。我会尝试为此找到解决方案,post 在这里。
截至今天(2016 年 1 月),它只需在您的案例中指定 integration.response.body.Location
即可工作。
我知道有人问这个问题已经有一段时间了,但您现在可以设置:
integration.response.header.Location(注意 Location 中的大写 L)如果您在响应 headers.
中设置映射值