不使用 API Gateway 代理集成无法调用后端服务

Posted

技术标签:

【中文标题】不使用 API Gateway 代理集成无法调用后端服务【英文标题】:unable to call backend service without using API Gateway Proxy Integration 【发布时间】:2021-06-29 00:34:49 【问题描述】:

我的 API 网关中有一个 PATCH 方法/资源,当我选择使用代理集成时需要调用后端服务,我能够得到正确的响应,但如果我禁用代理集成,我会从后端收到 406 错误PATCH /error 下面是我的 API 设置

我需要在映射模板下添加任何额外的配置吗?

【问题讨论】:

如果代理集成正常工作,您为什么要禁用它? @Marcin 如果我使用代理,将来可能会产生 CORS 问题,所以想禁用代理 没有代理,你必须使用custom integration。你设置好了吗? @Marcin 我有点新 API 网关,正确设置自定义集成是什么意思,我可以看到请求正在访问后端服务,但问题是我认为身体和URL 没有以正确的方式转换。这就是我难以解决问题的地方 【参考方案1】:

@patrick 我不确定这是否会有所帮助,但这可能会让您对实际的错误消息有所了解。在 APIGW 控制台中,选择左侧菜单上的“网关响应”项。找到 Default 4XX 并添加 application/json 的响应模板。将响应模板正文设置为"message":$context.error.messageString。这应该会提供更具体的错误消息来说明问题所在。

【讨论】:

以上是关于不使用 API Gateway 代理集成无法调用后端服务的主要内容,如果未能解决你的问题,请参考以下文章

API Gateway Lambda 端点代理与非代理集成

使用代理集成通过 API Gateway 触发 AWS Lambda

未调用 AWS API Gateway 自定义授权方

如何允许 API Gateway 代理与 Cognito Authorizer 集成以进行 POST 请求?

AWS API Gateway 仅在使用 SAM 时支持 CORS for OPTIONS(没有 Lambda 代理集成)

AWS API Gateway - Lambda 代理(集成请求) - 内部服务器错误