当您拥有同名的托管区域时,对流层创建别名 A 记录

troposphere to create alias A record when you have hosted zones with same name

funsetgroup = template.add_resource(RecordSet(
        'funsetgroup',
        HostedZoneName=Join('', [Ref(hostedzone), "."]),
        Comment='Hosted Zone Name',
        Type="A",
        Name=Join('fun.', [Ref(hostedzone), "."]),
        AliasTarget=AliasTarget(
            HostedZoneId=GetAtt(myelb, "CanonicalHostedZoneNameID"),
            DNSName=GetAtt(myelb, "DNSName"),
        )))

在这个对流层代码中,我试图为我的托管区域创建一个别名 A 记录,比如 example.com。但我有 2 个具有相同名称的托管区域(托管区域 ID 将不同)。尽管我明确提到托管区域 ID 云形成不会创建堆栈说 "duplicate hosted zone found"。我还尝试只提及托管区域 ID 而没有提及失败的托管区域名称。

您是否也尝试过在 RecordSet 中使用 HostedZoneId 而不是 HostedZoneName?这应该可行——我们一直在 Empire 的不同区域创建同名的 Alias 记录,我们在那里的代码也使用 Cloudformation(带有类似于对流层的垫片——如此之多,我们称之为对流层)。你可以在这里看到:

https://github.com/remind101/empire/blob/ac27a91f3a5131b18700c350ca510d1befed7a51/scheduler/cloudformation/template.go#L647

在对流层做类似的事情应该没问题 - 只需在 RecordSet 和 AliasTarget 对象中使用 HostedZoneId。