Dns Terraform仍在尝试解决计数为零的资源中的插值问题
我正在尝试为服务器部署创建PTR记录。下面的服务器需要在应用了一组依赖的服务器后进行部署,因此我们目前通过运行一个应用程序部署这些服务器模块,然后运行第二个部署,在第二个部署中,我们将这些资源的数量从0更改为我们希望部署的数量。我添加了一个新的资源来为这些服务器创建一个PTR记录,即使计数设置为0,Terraform也会尝试解析插值。它不会对A记录资源执行此操作,只会对PTR记录资源执行此操作 这是代码,我甚至将计数硬编码为0,以查看变量是否存在问题。计数为0时,列表应为空。我希望Terraform不会试图解决插值问题Dns Terraform仍在尝试解决计数为零的资源中的插值问题,dns,terraform,Dns,Terraform,我正在尝试为服务器部署创建PTR记录。下面的服务器需要在应用了一组依赖的服务器后进行部署,因此我们目前通过运行一个应用程序部署这些服务器模块,然后运行第二个部署,在第二个部署中,我们将这些资源的数量从0更改为我们希望部署的数量。我添加了一个新的资源来为这些服务器创建一个PTR记录,即使计数设置为0,Terraform也会尝试解析插值。它不会对A记录资源执行此操作,只会对PTR记录资源执行此操作 这是代码,我甚至将计数硬编码为0,以查看变量是否存在问题。计数为0时,列表应为空。我希望Terrafo
resource "aws_route53_record" "ds_sync_A_records" {
// same number of records as instances
provider = "aws.dns"
count = 0
// count = "${var.ping_sync_cluster_count}"
zone_id = "${data.aws_route53_zone.zone_company_io.zone_id}"
name = "ping-sync-0${count.index}.${var.domain_name}"
type = "A"
ttl = "10"
// matches up record N to instance N
records = ["${element(module.ping_sync_hot_server.private_server_ips, count.index)}"]
}
resource "aws_route53_record" "ds_sync_PTR_records" {
// same number of records as instances
provider = "aws.dns"
count = 0
// count = "${var.ping_sync_cluster_count}"
zone_id = "${data.aws_route53_zone.zone_company_io.zone_id}"
name = "${format(
"%s.%s.%s.$s.in-appr.arpa",
element(split(".", element(module.ping_sync_hot_server.private_server_ips, count.index)), 3),
element(split(".", element(module.ping_sync_hot_server.private_server_ips, count.index)), 2),
element(split(".", element(module.ping_sync_hot_server.private_server_ips, count.index)), 1),
element(split(".", element(module.ping_sync_hot_server.private_server_ips, count.index)), 0)
)}"
type = "PTR"
ttl = "10"
// matches up record N to instance N
records = ["${element(module.ping_sync_hot_server.private_server_ips, count.index)}"]
}
应用时出现错误消息:
Error running plan: 3 error(s) occurred:
* element: element() may not be used with an empty list in:
${element(module.ping_sync_hot_server.private_server_ips, count.index)}
* element: element() may not be used with an empty list in:
${element(module.ping_sync_hot_server.private_server_ips, count.index)}
* element: element() may not be used with an empty list in:
${element(module.ping_sync_hot_server.private_server_ips, count.index)}
当返回的记录是列表时,使用splat语法(*
)
records = [
"${element(module.ping_sync_hot_server.*.private_server_ips, count.index)}",
]
当返回的记录是列表时,使用splat语法(*
)
records = [
"${element(module.ping_sync_hot_server.*.private_server_ips, count.index)}",
]