具有自定义域和 CORS 的 AWS API Gateway

ikk*_*kjo 5 amazon-web-services cors amazon-cloudfront aws-api-gateway

我有一个启用了 CORS 和自定义域设置的 AWS API Gateway API。通过execute-api端点的直接 API 访问正在运行,我在浏览器中没有遇到 CORS 问题。通过api.example.com我也配置的自定义域进行访问,原则上是有效的,但不是在浏览器中,我在那里获得 CORS:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Run Code Online (Sandbox Code Playgroud)

在设置自定义域时,API Gateway 会配置它自己的 CloudFront 分配,这在某种程度上是内部的,我不知道如何配置它,或者如果可能的话,它不会出现在我的 CloudFront 分配列表中,这是预期的。从 AWS文档

API Gateway 创建的 CloudFront 分配由隶属于 API Gateway 的区域特定帐户所有

我发现这些答案/sf/answers/3670493361//sf/answers/3602477581/描述了如何使用正常的 CloudFront 分发解决问题。不过,我想知道:

  1. 我是否在配置自定义域及其关联的 CloudFront 分配时遗漏了什么?
  2. 在什么情况下,我会选择带有内部 CloudFront 分配的自定义域,而不是运行我自己可以配置的 CloudFront 分配?(我已经有一个用于应用程序其他部分的 CloudFront 分配。)是否有定价影响?

Bra*_*050 1

您从我的新自定义域中删除阶段或“/dev”的建议非常有效。

api.example.com/dev/some_endpoint错误
api.example.com/some_endpoint正确

希望这个答案可以帮助任何其他尝试将自定义域添加到 AWS API Gateway 的人。