首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用AWS Lambda响应体映射AWS API网关中的多个http响应头

用AWS Lambda响应体映射AWS API网关中的多个http响应头
EN

Stack Overflow用户
提问于 2016-08-09 10:39:39
回答 2查看 1.5K关注 0票数 9

我可以通过api网关集成响应头映射来设置单个http响应头。

在这种情况下,我给出了来自aws 响应,并使用regex (“.http”)。以标识响应,并最终将其映射到我的头上,如下所示

Location: integration.response.body.errorMessage

当我试图一次映射一个头时,这是可行的。

,但是我想在一个响应中同时设置位置和Cookie头。为此,我从aws lambda返回一个json,类似

代码语言:javascript
运行
复制
context.fail(JSON.stringify({Location:"http://www.google.com",Cookie: vid="233kwer34343"})) 

但我无法通过integration.response.body.errorMessage.Locationintegration.response.body.errorMessage.Cookie映射头

可以通过使用context.succeed()而不是context.fail()来实现这一点。但这不是检查regex。我想检查regex的分类反应。

从lambda响应体映射多个响应头的最佳方法是什么?

EN

Stack Overflow用户

发布于 2016-08-28 01:44:37

我不认为您可以使用context.fail使其工作。问题是传递给context.fail的参数是一个简单的字符串。然后将该字符串编码为json字符串,然后将其作为名为"errorMessage“的属性中的sting值传递给API。

来自Lambda的响应体看起来如下所示:{"errorMessage":"{\"Location\":\"http://www.google.com\",\"Cookie\":\“vid=‘233 kwer34343’\}”}

注意,errorMessage的值是带有转义特殊字符的字符串,而不是json对象。无法告诉头映射查看integration.response.body.errorMessage,将该字符串解析为json,并获取结果json对象的位置属性。

如果将值作为响应体而不是头返回,则可以使用速度解析errorMessage的内容,并将它们转换为您喜欢的任何响应体。不幸的是,头映射没有速度模板的完全处理能力/灵活性。

为什么在这种情况下需要调用context.fail?

如果调用context.done,可以返回json作为正文,例如:{“位置”:“http://www.google.com”,"Cookie":"vid='233kwer34343'"}

那么头映射就是integration.response.body.Location和integration.response.body.Cookie。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38848487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档