Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 云前端-重叠的备用域名_Amazon Web Services_Dns_Amazon Cloudfront_Aws Api Gateway - Fatal编程技术网

Amazon web services 云前端-重叠的备用域名

Amazon web services 云前端-重叠的备用域名,amazon-web-services,dns,amazon-cloudfront,aws-api-gateway,Amazon Web Services,Dns,Amazon Cloudfront,Aws Api Gateway,在Api网关中,我创建了一个自定义域,foo.example.com,它使用该CNAME创建了一个云前端发行版 我还想创建一个通配符域,*.example.com,但在尝试创建它时,CloudFront会抛出一个错误: CNAMEAReadyExistsException:您提供的一个或多个CNAME 已与其他资源关联 AWS在其文件中声明: 但是,您可以添加通配符备用域名,例如 *.example.com,包括(与之重叠的)非通配符备用域名,如www.example.com。重叠域 名称可以与

在Api网关中,我创建了一个自定义域,
foo.example.com
,它使用该
CNAME
创建了一个云前端发行版

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

CNAMEAReadyExistsException:您提供的一个或多个CNAME 已与其他资源关联

AWS在其文件中声明:

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


所以我可能误解了这一点,有可能实现我所描述的吗?

是的。但请记住,CloudFront发行版的CNAMEs集经过验证是全局唯一的,包括API网关发行版。这意味着您(或任何其他帐户)已经设置了该CNAME。目前无法查找冲突所在的位置,如果您自己找不到,您可能需要向AWS支持部门提出问题。

这很可能是API网关端点配置为边缘优化而不是区域优化的副作用,因为使用边缘优化的API,有一个隐藏的CloudFront分发版已自动配置。。。但是,与API关联的CloudFront发行版不属于您的帐户,而是属于与API网关关联的帐户

边缘优化API是通过API网关创建和管理的CloudFront分发版访问的端点

-

这会导致冲突,从而阻止创建通配符分发

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


可能的解决方案是将API重新部署为区域而不是边缘优化。如果仍然需要边缘优化行为,则可以使用该特定子域创建另一个CloudFront发行版,以便与API一起使用。这是允许的,因为您将拥有发行版。区域API仍然可以全局访问。

在这种特定情况下,错误实际上应该表明另一个AWS帐户已经有
{some other subdomain}.example.com
,而不是
*.example.com
,因为如果另一个帐户已经有
*.example.com
,那么该帐户将无法为
foo.example.com
创建现有发行版。屏蔽通配符的子域不能跨越AWS帐户边界,因为这可能会通过创建更具体的备用域名(您可以在自己的帐户内执行)来劫持通配符分发的匹配域的流量。哦。。。我想我刚刚确定了“其他帐户”的身份。在API网关之前创建cloudfront分发的相关解决方案:我认为使用区域API gw端点解决不了任何问题,因为我得到了相同的错误,尽管我的API gw是区域性的。我认为可能发生的情况是,由于您有一个自定义API gw域(foo.example.co),同时希望从CF发行版提供*.example.com服务,AWS不知道是向CF发行版发送请求到foo.example.com还是向API gw发送请求,因此决定阻止您向CF添加通配符子域CNAME