在AWS API Gateway中,我有一个调用lambda函数的GET方法 .
当我在API网关仪表板中测试该方法时,lambda函数成功执行,但API Gateway未将context.success()调用映射到200结果,尽管默认映射设置为yes .
相反,我得到这个错误:
Execution failed due to configuration error: No match for output mapping and no default output mapping configured
这是我的集成响应设置:
这是我的方法响应设置:
基本上我希望API网关识别成功的lambda执行,然后默认将它映射到200响应,但这不会发生 .
有谁知道为什么这不起作用?
4 回答
保存已解决的默认集成响应映射时出现问题 . 该错误导致对API方法的请求被错误地保存以返回500错误,CloudWatch日志应包含:
由于'ENABLE CORS'保存了默认的集成响应,因此您的方案中也会出现此问题 .
有关更多信息,请参阅AWS论坛条目:https://forums.aws.amazon.com/thread.jspa?threadID=221197&tstart=0
最好,
尤尔根
我有类似的问题,通过添加方法响应200解决它
什么对我有用:
1.在Api Gateway Console中手动创建OPTIONS方法
2.在创建的OPTIONS方法下的Method Response部分中,添加了200 OK
3.选择Option方法并从菜单中启用CORS
我发现了问题:
亚马逊在 Headers 为“启用CORS”的API网关资源配置中添加了一个新按钮 . 我之前点击了这个,但一旦启用,似乎没有办法禁用它
使用此按钮启用CORS(而不是手动执行此操作,这是我最终做的事情),即使成功执行lambda,也会导致内部服务器错误 .
解决方案:我删除了资源并再次创建它,而没有单击“启用CORS”这一次,一切正常 .
这似乎是一个具有该功能的BUG,但也许我只是不太了解它 . 如果您有任何进一步的信息,请评论谢谢 .