AWS API Gateway 429 响应 - 没有 CORS 标头

Posted

技术标签:

【中文标题】AWS API Gateway 429 响应 - 没有 CORS 标头【英文标题】:AWS API Gateway 429 response - no CORS headers 【发布时间】:2021-04-06 15:28:19 【问题描述】:

API Gateway 发出的 429 响应(当降低并超过最大并发请求时)没有 CORS 标头,因此浏览器中的 ajax 请求只会抛出错误,而没有任何可以选择性地触发重试的信息。

除了重试客户端应用程序中的任何错误之外的任何解决方法/即让 AWS 在 429 响应中包含 CORS 标头的任何解决方法?在 API 网关中启用了 CORS,OPTIONS 方法在那里并响应标头,并且 lambda 自己响应它们(代理集成) - 除了 429 之外一切正常。

【问题讨论】:

【参考方案1】:

this answer 解决了我遇到的类似问题。您需要为 4** 和 5** 模板创建自定义响应。您可以在 AWS 控制台中手动执行此操作,如下所示: 请记住在更改后重新部署 API。

如果 API Gateway 返回 429,您可能会达到 Lambda's lambda concurrency 的限制(或者至少在我的情况下是这样)。 CORS 标头不会发送到客户端,因为 API Gateway 在访问您的 Lambda 之前会阻止请求。

【讨论】:

请简单地将问题标记为重复。

以上是关于AWS API Gateway 429 响应 - 没有 CORS 标头的主要内容,如果未能解决你的问题,请参考以下文章

响应未定义 - aws-api-gateway-client

AWS API Gateway 集成响应

AWS API Gateway 默认响应和触发 AWS Lambda

CloudFormation 中的 AWS API Gateway 方法响应

AWS API Gateway - 集成响应正文映射

AWS Lambda 和 API Gateway 响应集成问题