AWS API Gateway:由于配置错误导致执行失败:输出映射不匹配且未配置默认输出映射

Zig*_*rth 13 amazon-web-services aws-sdk aws-lambda aws-api-gateway

在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
Run Code Online (Sandbox Code Playgroud)

这是我的集成响应设置: 在此输入图像描述

这是我的方法响应设置: 在此输入图像描述

基本上我希望API网关识别成功的lambda执行,然后默认将它映射到200响应,但这不会发生.

有谁知道为什么这不起作用?

小智 9

我在使用无服务器框架上传 api 时遇到同样的问题。您可以简单地按照以下步骤解决我的问题。

1- 导航到 aws api 网关
2- 找到您的 api 并单击方法(发布、获取、任何等)
3- 单击方法响应
4- 添加具有 200 响应的方法。
5-保存并测试


Jur*_*gen 6

保存已解决的默认集成响应映射时出现问题。该错误导致对API方法的请求被错误地保存以返回500错误,CloudWatch日志应包含:

Execution failed due to configuration error: 
No match for output mapping and no default output mapping configured. 
Run Code Online (Sandbox Code Playgroud)

由于“ ENABLE CORS”保存了默认的集成响应,因此在您的方案中也会出现此问题。

有关更多信息,请参阅AWS论坛条目:https : //forums.aws.amazon.com/thread.jspa? threadID = 221197 & tstart =0

最好,

于尔根

  • 这个问题仍然存在(正如在论坛中提到的)如何解决? (4认同)

KJH*_*KJH 6

这是一种“检查基础”类型的答案。在我的场景中,CORS 和上面提到的错误不是问题。但是,标题中给出的错误消息正是我所看到的,也是导致我进入此线程的原因。

相反,(一个 API 网关新手)我未能重新部署部署。一旦我这样做了,一切都奏效了。

作为奖励,对于 Terraform 0.12 用户,您需要并且应该使用的魔法是triggers您的aws_api_gateway_deployment资源的参数。当其他相关的 APIGW 资源发生变化时,这将自动为您重新部署。有关详细信息,请参阅TF 文档

  • Terraform:注意到了!另请记住使用资源“aws_api_gateway_method_response”和“aws_api_gateway_integration_response”。将这些添加到“触发器” (2认同)

小智 5

对我
有用的是:1. 在 Api 网关控制台中手动创建了 OPTIONS 方法
2. 在创建的 OPTIONS 方法下的方法响应部分中添加了 200 OK
3. 选择了选项方法并从菜单中启用了 CORS


raa*_*ne7 5

我有类似的问题,通过添加方法响应200解决了