我正在创建 AWS route53 区域。
这是我的代码。创建区域
resource "aws_route53_zone" "kubetest" {
name = "kubetest.com"
}
然后使用数据获取详细信息
data "aws_route53_zone" "selected" {
name = "kubetest.com"
}
output "ns" {
value = "${data.aws_route53_zone.selected.name_servers}"
但这样做时会出现错误terrafrom plan
。
Error: Error refreshing state: 1 error(s) occurred:
* data.aws_route53_zone.selected: 1 error(s) occurred:
* data.aws_route53_zone.selected: data.aws_route53_zone.selected: no matching Route53Zone found
如果我确实只创建第一个区域,然后添加工作正常的数据,在这种情况下,我必须运行terraform plan
2 次,并对部分代码进行注释和取消注释data
。我已经检查过了未找到匹配的 Route53Zone和其他人一样,但犯了同样的错误。
答案1
如果您也在同一文件中创建数据查找,则不需要在同一文件中进行数据查找。只需使用资源即可。数据源查找非常适合在 Terraform 之外或在另一个 Terraform 运行中创建的内容。例如,来自网络的一个 Terraform 运行可能会创建 VPC/子网/路由/等。您的运行可能会建立在其之上,因此您可以使用数据源查找来查找要使用的子网。
就这么做
resource "aws_route53_zone" "kubetest" {
name = "kubetest.com"
}
output "ns" {
value = "${aws_route53_zone.kubetest.name_servers}"
}