为什么托管区域 ID 的值对于 ELB 和 Route 53 别名目标不同?

Why are the value for Hosted Zone ID different for ELB and Route 53 Alias Target?

这是我的负载均衡器 Sid-LB - 突出显示了托管区域 ID:

这是我 select 来自 Alias Target 的负载均衡器时的 Route 53(托管区域 ID 突出显示)。

我不明白为什么这两个 ID 必须不同。我尝试发送一个带有负载(包含 ELB 托管区域 ID)的 API 调用来创建它创建但不起作用的记录集。 Route 53 的这个别名托管区域 ID 是如何生成的,它与 ELB 托管区域 ID 有什么关系吗?

docs 对此有点模糊:

This value appears automatically based on the value that you selected or entered for Alias Target.

但是,别名托管区域 ID 与托管区域 ID 不同。要创建别名记录,您只需要 Hosted Zoned ID。查看提供的一些示例请求 here。它们都带有一个 HostedZoneId 参数。

所以对于你的用例,我认为你可以忽略它。您只需要知道 'Hosted Zone ID' 和别名记录的 'Alias Hosted Zone ID' 不是一回事。

我们无法使用端点提供的托管区域 ID 创建记录集,因为它不是正确的映射。我们需要别名托管区域 ID 才能正确映射。

由于它(Route53 的别名托管区域 ID)是自动生成的,并且没有 api 获取该 ID 的调用,唯一的解决方法是创建一个 CNAME 记录集,其值为 ELB 端点(或 S3 存储桶终端节点或 CloudFront 终端节点)。

您可以在此处获取 Elastic Load Balancing 的托管区域 ID:https://docs.aws.amazon.com/general/latest/gr/elb.html

在您的情况下,我可以看到托管区域 ID 是美国西部(俄勒冈)- us-west-2。

Elastic BeanStalk 使用与 Route 53 区域 ID 列表不同的托管区域 ID 列表。

使用此 link 查找您的 ELB 区域 ID:

https://docs.aws.amazon.com/pt_br/general/latest/gr/elasticbeanstalk.html