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