我是 AWS CDK TypeScript 新手。
我的问题是:
[Tried to create resource record set [name='xxxxx', type='CNAME'] but it already exists]"}
使用 AWS CDK TypeScript 我正在 eu-west1 和 eu-central 区域创建堆栈。那么有没有什么机制可以检查cname是否未创建然后只创建?
我的代码当前代码:
const cName = new route53.CnameRecord(this, "cName", {
zone: route53.HostedZone.fromLookup(this, "lowerHostedZone3", {
domainName: topDomain,
}),
recordName: topFQDN,
domainName: lowerFQDN
});
在多个区域部署堆栈可能会创建相同的条目两次(一个用于
eu-west-1
,另一个用于 eu-central-1
)。由于 route53
是一项全球服务,这可能是导致您看到的错误的原因。
您可以简单地选择将 1 个区域引导至 DNS,或者在 DNS 条目中包含区域名称 (
my-service.eu-west-1.my-domain.com
),而不是进行查找,然后在其前面使用 cloudfront 或全局加速器之类的东西来执行全局路由到最近的地区。
我遇到了这个问题,并希望避免其他人花 24 小时处理这个问题。我的答案是针对一般性问题:“名称”已经存在。
摆脱它们。删除对于被调用的类来说可选的所有名称实例。让他们为您生成它。不要使用 try 块,如果存在则不要尝试检索它们(在撰写本文时,这种方法不起作用)。
不要每次都删除堆栈来解决这个问题,只需不要使用名称即可。