云前端 - 重叠的备用域名

nac*_*oab 2 dns amazon-web-services amazon-cloudfront aws-api-gateway

在Api Gateway中,我创建了一个自定义域foo.example.com,用它创建了一个Cloud Front发行版CNAME.

我还想创建一个通配符域,*.example.com但在尝试创建它时,CloudFront会抛出一个错误:

CNAMEAlreadyExistsException:您提供的一个或多个CNAME已与不同的资源相关联

AWS在其文档中指出:

但是,您可以添加通配符备用域名,例如*.example.com,其中包含(与其重叠)非通配符备用域名,例如www.example.com.只要两个分发都是使用相同的AWS账户创建的,重叠域名可以位于同一分布中,也可以位于不同的分布中.

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-wildcard

所以我可能误解了这一点,是否有可能完成我所描述的内容?

Mic*_*bot 5

这很可能是您的API网关端点被配置为边缘优化而非区域的副作用,因为使用边缘优化的API,会自动配置隐藏的CloudFront分配...但是,与之关联的CloudFront分配您的API不属于您的帐户,而是属于与API网关关联的帐户.

边缘优化的API是通过由API Gateway创建和管理的CloudFront分发访问的端点.

- Amazon API Gateway支持区域API端点

这会产生冲突,阻止创建通配符分发.

不允许屏蔽通配符的子域跨越AWS账户边界,因为这可能会通过创建更具体的备用域名来允许通配符分配的匹配域的流量被劫持 - 但是,正如您在文档中指出的那样,您可以在你自己的帐户内做.

将API重新部署为区域而非Edge Optimized是可能的解决方案.如果您仍需要边缘优化行为,则可以使用该特定子域创建另一个CloudFront分配以与API一起使用.这是允许的,因为您将拥有该分发.区域API仍可在全球范围内访问.