我最近刚将我的域名从托管服务提供商转移到亚马逊。我想使用S3存储桶托管我的网站,我最初尝试将我的存储桶设置为domain.com
和www.domain.com
,但我认为我之前的托管服务提供商采用了这些存储桶名称,因为我无法创建它们。 / p>
所以我现在正在研究一项工作......
- 创建了一个具有唯一名称的新存储桶,并将我的网站文件放入其中
- 我设置Cloud Front从该存储桶中提取文件
- 最后是一个Route 53托管区域,其中domain.com
和www.domain.com
的CNAMES指向该云端。
以下是我的问题所在。我无法将www.domain.com
添加到Cloud Front中的CNAME中。我收到以下错误:
com.amazonaws.services.cloudfront.model.CNAMEAlreadyExistsException: One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists; Request ID: 19a9a141-8b15-11e6-aa8f-87e12f4b3abf)
但是,它接受domain.com
...所以当我访问domain.com
时,我会获得正确的网站,但当我访问www.domain.com
时,我会收到旧网站。
我认为这是因为我无法在我的Cloud Front中添加该CNAME。我该如何解决这个错误?
谢谢
答案 0 :(得分:2)
如果备用域名已存在于另一个CloudFront分配中,则无法将备用域名添加到CloudFront分配,即使您的AWS账户拥有其他分配。
这是导致您看到的错误的条件。如果您已经使用此配置了另一个CloudFront分配,那么显然需要将其删除,然后这将有效。
否则,旧的提供商可能仍然在他们的 CloudFront发行版之一上配置了您的域 - 因此您需要说服他们删除它,或者您需要获得AWS支持协助你。如果已在另一个帐户的CloudFront中配置了域,则无法通过您的操作修复此问题。
AWS Support有一个特殊的流程来处理这种情况:https://aws.amazon.com/premiumsupport/knowledge-center/resolve-cnamealreadyexists-error/
答案 1 :(得分:1)
如果你们中的任何人在发生CNAMEAlreadyExistsException之前一直在使用Zappa和/或AWS API Gateway,那么
只需通过AWS CLI确保想要使用的域不再在AWS API Gateway中列出,如下所示:
aws apigateway get-domain-names
如果您在此处找到它:
aws apigateway delete-domain-name --domain-name <your-domain>
这为我解决了这个问题。一块!
顺便说一句,我没有找到通过Web列出或删除它的方法,只是随处可见AWS API Gateway的欢迎屏幕。
答案 2 :(得分:0)
就我而言,我忘记了过去使用我想使用的CNAME使用AWS Amplify部署应用程序。
这就是为什么我在Cloudfront
控制台上找不到Cloudfront发行版的原因。检查是否有使用所需名称的AWS Amplify应用。