我有一个http endpoints 名称 - HE . 该'HE' endpoints 与Lambda函数'L'连接 .
所以他 - > L
在某种情况下,'L'以这种格式返回Exception:
{“errorMessage”:“名称John Doe无效 . 发生异常......”,“errorType”:“java.lang.Exception”,“stackTrace”:[“example.Hello.handler(Hello.java:9)” ,“sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)”,“sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)”,“sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)”,“ java.lang.reflect.Method.invoke(Method.java:497)“]}
同样由'HE'返回 .
我如何在'HE'处使用集成响应(AWS API Gateway),因此它应该只显示以下内容:
{“errorMessage”:“名称John Doe无效 . 发生异常......”}
1 回答
我不确定我是否理解你的设置 . 我假设您的API网关正在调用您的Lambda函数,并且您的Lambda函数正在返回您作为错误对象提供的字符串 . 在这种情况下...
为您的方法添加新的方法响应 . 将方法响应的HTTP状态设置为您要返回的HTTP状态代码,对于这种情况可能为400 .
向您的方法添加新的集成响应 .
将积分响应的"Lambda Error Regex"设置为正则表达式,该正则表达式将唯一标识错误 . “.Name . 无效 . *”应适用于此案例 .
将“方法响应状态”设置为方法响应的HTTP状态(在我的示例中为400) .
点击保存 . 展开集成响应 . 展开“正文映射模板” . 单击“添加映射模板” . 将Content-Type设置为“application / json”(或您想要的任何内容类型) . 单击复选框 .
在映射模板编辑器框中,添加这样的映射模板......
如果我误解了您的设置并且您的API网关正在调用HTTP endpoints ,那么方法类似,但某些术语的术语会发生变化 .