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

上次更新时间:2019 年 7 月 16 日

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

“状态代码:409;错误代码:CNAMEAlreadyExists;请求 ID:a123456b-c78d-90e1-23f4-gh5i67890jkl” 

简短描述

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

解决方法

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

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

1.    指示您的 DNS 提供商以下列格式创建 TXT 记录:

<CNAME alias> TXT <CloudFront distribution name>

例如,如果您要为名为 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 错误消息的副本。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?