如何解决为 Amazon CloudFront 分配设置 CNAME 别名时出现的错误 CNAMEAlreadyExists?

上次更新时间:2020 年 8 月 6 日

当我尝试将 CNAME 别名添加到单个 Amazon CloudFront 分配或多个分配时,我遇到与以下类似的错误:

您提供的一个或多个 CNAME 已与其他资源关联。服务:AmazonCloudFront;状态代码:409;错误代码:CNAMEAlreadyExists;请求 ID:a123456b-c78d-90e1-23f4-gh5i67890jkl

简短描述

您不能将相同的 CNAME 别名用于多个 CloudFront 分配。当您尝试添加的 CNAME 别名已与另一个 CloudFront 分配关联时,会发生 CNAMEAlreadyExists 错误。

解决方法

如果您收到的错误代码是“CNAMEAlreadyExists”,并且您想将 CNAME 移动到另一个分配,请按照下列步骤操作:

注意:AWS Support 不能将同一个 CNAME 关联到多个分配。他们只能帮您在两个分配之间移动 CNAME 或从分配中删除 CNAME。

1.    指示您的 DNS 提供商为您要将 CNAME 移至的分配创建 TXT 记录。此 TXT 记录采用以下格式:

<CNAME alias> TXT <Name of CloudFront distribution that you want to move the CNAME to>

例如,如果您要为名为 d123.cloudfront.net 的 CloudFront 分配添加 CNAME 别名 example.com,请指示您的 DNS 提供商创建以下 TXT 记录:

example.com TXT d123.cloudfront.net

如果您的 DNS 提供商不允许相同的 TXT 和 CNAME 记录,请考虑在 TXT 记录中的 CNAME 别名之前添加下划线。例如,以下 TXT 和 CNAME 记录完全相同: 

cname.example.com.   900   IN   TXT     "dexample123456.cloudfront.net"
cname.example.com.   900   IN   CNAME   "dexample123456.cloudfront.net"

这两个 TXT 和 CNAME 记录不同,因为第一个条目有一条下划线: 

_cname.example.com.   900   IN   TXT     "dexample123456.cloudfront.net"
cname.example.com.   900   IN   CNAME   "dexample123456.cloudfront.net"

注意:DNS 提供商创建的 CNAME 记录可能需要一些时间才能得到传播。在 DNS 记录通过您的 DNS 提供商完全传播并且生存时间 (TTL) 已在已提供服务的 DNS 请求上过期之前,您可能看不到更改。

2.    将有效的 SSL 证书添加到涵盖您要移动的 CNAME 的 CloudFront 分配。SSL 证书还必须涵盖您要与分配关联的任何其他新 CNAME。

3.    创建 TXT 记录并向分配添加 SSL 证书后,请联系 AWS Support。要求 AWS 验证 DNS 域名的所有权,并确认您可以将 CNAME 别名添加到分配中。请确保在您的案例中向 AWS Support 提供 CNAMEAlreadyExists 错误消息的副本。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?