API 网关的自定义域名与具有自定义域的 CloudFront 实例有什么区别?

What is the difference between a Custom Domain Name at the API Gateway and a CloudFront Instance with a Custom Domain?

我目前广泛使用 API 网关作为 CloudFront 的来源。我的 CloudFront 还提供其他服务,例如来自 S3 的普通文件。

我最近一直在研究改进当前设置,并注意到 API 网关中的 "Custom Domain Names" 选项。

据我了解,使用它会创建一个不可配置的 CloudFront 实例。除此之外,我找不到太多信息。

与使用自我管理的 CloudFront 实例相比,使用 API 网关的自定义域名有什么优势吗?

当您使用 AWS CloudFront 时,您可以为分配配置不同的来源,例如 S3、API 网关等,从而允许通过同一域提供不同的服务。例如,您可以在 S3 和 mydomain 中将 mydomain.com 指向 index.html。com/api/* 指向 API 网关。这允许前端 JavaScript 访问 API 而无需 API 网关的跨源请求支持,从而避免发送选项预检(如果您有 headers,如 Cookie、授权等。 ) 浏览器请求。

另一方面,您可以将自定义域名配置为 API 网关。这允许使用 AWS Certificate Manager 定义自定义域和自定义 SSL 证书。主要区别在于,如果您有前端应用程序,则需要为从 S3 和 API 提供的前端定义两个域(或不同的子域)。从不同的域访问 API 时,需要在 API 网关配置 CORS,并且会根据延迟影响性能。