首页 > 解决方案 > 默认响应标头:带代理集成的 AWS API Gateway

问题描述

我们有一个 Angular SPA 前端,它通过 AWS API 网关与托管在 Lambda 函数中的 .Net Web API 进行通信。此配置要求我们的 API 网关使用与 Lambda 的代理集成。

一般来说,这很好用。我们在 API 中启用了 CORS,正常的请求和响应按预期流动。

但是,当发生破坏 API 网关或 .Net Lambda Wrapper 的事情时,例如超过网关的(不可配置的)30 秒超时,或超过 Lambda 的最大响应大小,来自 API 网关的响应消息不包含 CORS标题。结果,无论实际错误如何,我们的前端都会记录一个 CORS 错误。

是否有某种方法可以将 API 网关配置为始终返回默认的 CORS 标头?

请注意,这发生在我们的代码之外——在 C# lambda 函数内部我无能为力,因为这与发生在该级别之上的错误有关。

标签: amazon-web-servicesaws-lambdaaws-api-gateway

解决方案


是的,您可以在 AWS API Gateway 级别进行设置

  1. 登录 AWS 控制台,打开 API Gateway 服务,选择您想要的网关。
  2. 在左侧面板上,选择“网关响应”(这将出现在您选择的网关下)
  3. 现在在右侧,选择“默认 5XX”
  4. 为 Cors 添加默认标头,例如 Access-Control-Allow-Headers、Access-Control-Allow-Methods、Access-Control-Allow-Origin
  5. 保存更改并重新部署网关。

请参考此图像以导航到所需部分

希望能帮助到你。


推荐阅读