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 Lambda