【问题标题】:Terraform "Create R53 Alias for VPC Interface Endpoint Failing on Zone Match" -- But Zone is correctTerraform“为区域匹配失败的 VPC 接口端点创建 R53 别名”——但区域是正确的
【发布时间】:2022-01-19 00:44:25
【问题描述】:

我正在尝试使用 Terraform v0.13.6 在私有托管区域中创建 Route53 别名记录并指向 VPC 端点 (vpce),但遇到了自然故障:

Error building changeset: InvalidChangeBatch: [Tried to create an alias that targets ssm.us-west-2.amazonaws.com., type A in zone [XXXX], but the alias target name does not lie within the target zone] status code: 400

我正在寻址的区域 [XXXX] 确实是 VPCe 的区域,而不是 DNS 的区域,所以我希望避免这种常见错误。

当我通过控制台或命令行查看 VPCe 时,我在结果中看到 正确 区域(与 [XXXX] 匹配),因此 Terraform 返回字面上告诉我 VPCe 是不在控制台和 CLI 所说的区域中。

当我使用控制台创建别名记录时,它工作正常!

VPCe 位于两个子网中,因此 VPCe 控制台记录中列出了三 (3) 个 DNS 名称(显然是通用记录,每个指定子网都有一个)但 DNS 区域都相同,因此应该不成问题。在代码中,我追踪第 0 条记录,并使用通用端点的名称,因为我希望在失败的情况下跨两个子网进行解析。

相关代码如下。有人对可能发生的事情有任何见解吗?

resource "aws_route53_record" "endpoint_record" {
        for_each = var.vpce
        provider = aws.someprovider
        zone_id  = aws_route53_zone.private[each.key].zone_id
        name    = ""
        type    = "A"

         alias {
             name = each.value.url
             zone_id = aws_vpc_endpoint.ssm_endpoint[each.key].dns_entry[0].hosted_zone_id
    evaluate_target_health = true
  }
        depends_on = [
    aws_route53_zone.private,
  ]
}

别名调用中的 url 是 ssm.us-west-2.amazonaws.com 类型,如您在错误消息中所见。

有什么想法吗?

【问题讨论】:

    标签: amazon-web-services terraform terraform-provider-aws amazon-route53 amazon-vpc


    【解决方案1】:

    对于alias 中的name,我想你会想要使用aws_vpc_endpoint 提供的那个,所以:

    alias {
      name = aws_vpc_endpoint.ssm_endpoint[each.key].dns_entry[0].dns_name
      zone_id = aws_vpc_endpoint.ssm_endpoint[each.key].dns_entry[0].hosted_zone_id
      evaluate_target_health = true
    }
    

    我不知道each.value.url 的值是多少,但我认为它不正确。

    【讨论】:

    • 谢谢,欧文……你说得对。我专注于区域 ID,但问题实际上出在端点的名称上,正如您所指出的,它必须是它的 dns_name。 FWIW each.value.url 是变量映射中的一个条目,因为我认为 name 属性是端点服务的 DNS 名称,但正如您指出的那样,它不是,它是端点本身的 DNS 名称!
    猜你喜欢
    • 2020-06-05
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    相关资源
    最近更新 更多