不使用 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 触发 AWS Lambda
如何允许 API Gateway 代理与 Cognito Authorizer 集成以进行 POST 请求?
AWS API Gateway 仅在使用 SAM 时支持 CORS for OPTIONS(没有 Lambda 代理集成)