当我通过AWS Gateway测试我的Lambda时,我可以看到这些行被记录:
Wed Jul 19 20:06:11 UTC 2017 : Method response body after transformations: {"errorCode":0,"headers":{},"statusCode":567,"base64Encoded":false}
如您所见,我将567作为状态代码返回。但我总是看到200:
然后,这是我在Integration Response中的配置:
我正在使用reg exp 。*“statusCode”:567。* ,但它与 {“errorCode”:0,“headers”:{}不匹配, “的StatusCode”:567, “base64Encoded”:假}
这些是我在“方法响应”部分中的http状态代码:
除了200以外我无法返回。我尝试将默认设置更改为567而不是200.这样它返回567.所以看起来我的设置使我的API返回始终默认值响应。
有没有人知道我做错了什么?
答案 0 :(得分:1)
尝试使用lambda-proxy而不是lambda-integration。
这样,您可以在lambda函数中构建响应,而不是在API网关模板中构建响应。
在我看来,在代码中操作响应比使用API网关模板更容易。
答案 1 :(得分:1)
在这种情况下,我认为是您的正则表达式有问题:.*"statusCode":567.*
它与内部JSON消息匹配,因此需要将其更改为.*\"statusCode\":567.*
才能匹配-无论如何在我的情况下
我用this answer做我的事,比您要寻找的要简单一些。