繁体   English   中英

“找不到匹配的 Route53Zone”:Terraform 的 Route53 数据源无法识别托管区域名称

[英]"no matching Route53Zone found": Terraform's Route53 data source is not recognizing the hosted zone name

假设我有一个公共托管区域名称example.com. . 我使用以下 Terraform 代码片段根据文档根据名称动态获取托管区域 ID。

data "aws_route53_zone" "main" {
  name = "example.com." # Notice the dot!!!
  private_zone = false
}

terraform plan期间出现此错误:

Error refreshing state: 1 error(s) occurred:

* data.aws_route53_zone.main: no matching Route53Zone found

是否有我应该报告的错误或我遗漏了什么?

aws_route53_zone数据源将列出账户中 Terraform 有权查看的所有托管区域。

如果您尝试引用另一个帐户中的区域,则可以通过在该帐户中创建一个角色/用户来执行此操作,该区域有权列出所有区域 ( route53:ListHostedZones*,route53:GetHostedZone* ),然后拥有第二个“提供者”用于此数据源。

所以你可能有这样的事情:

provider "aws" {
    # ... access keys etc/assume role block
}

# DNS account
provider "aws" {
    alias = "dns_zones"
    # ... access keys etc/assume role block
}

data "aws_route53_zone" "main" {
  provider = "aws.dns_zones"
  name = "example.com." # Notice the dot!!!
  private_zone = false
}

resource "aws_route53_record" "www" {
  zone_id = "${data.aws_route53_zone.main.zone_id}"
  name = "www.${data.aws_route53_zone.main.name}"
  ...
}

使用zone_id而不是name为我做了。

data "aws_route53_zone" "api2" {
  # name = "example.com."
  zone_id = "REPLACEWITHYOURID"
  vpc_id = "${var.vpc_id}"
}

使用 aws 提供程序别名时出现相同的错误“错误:找不到匹配的 Route53Zone”,我们的原因是错误的 aws 访问 id/key,一旦排序正常,我们就不需要 . 作为记录 :)

检查您的区域名称是 private 还是 false 并删除名称中的最后一个点。 我遇到了第八层的问题。

从:

data "aws_route53_zone" "main" {
  name = "example.com."
  private_zone = false
}

到:

data "aws_route53_zone" "main" {
  name = "example.com"
  private_zone = true
}

当它被放置在模块中时,这似乎不起作用。 只需将其移动到在根级别调用模块的清单中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM