【发布时间】:2020-11-10 03:05:51
【问题描述】:
我正在为services 字符串变量的给定值中的每个服务创建一个 route53 健康检查。
当我传递服务变量的值时,我的 tfvars 文件如下所示
services = "servicea serviceb serviced"
如果var.env == prod,我只需要进行这些健康检查。
有经过试验和测试的方法可以使用,那就是使用count = var.env == prod ? 1:0,但由于我已经在使用 count 来计算和迭代服务字符串,我无法在同一个资源块中再次使用 count ,因为如果我尝试这样做,terraform 0.12 会给我以下错误消息。
在同一资源块中使用多个计数时出错
Error: Attribute redefined
on <stdin> line 514: (source code not available)
The argument "count" was already set at <stdin>:513,2-7. Each argument may be set only once.
地形配置
variable "services" {
default = ""
}
resource aws_route53_health_check "app_healthcheck" {
count = length(split(",", replace(var.services, "/\\s/", ",")))
fqdn = "${var.super_cluster}-${var.region}.domainname.com"
port = 443
type = "HTTPS"
resource_path = "/canSchedule?appName=${element(split(",", replace(var.services, "/\\s/", ",")), count.index)}"
request_interval = "10"
failure_threshold = "1"
enable_sni = true
tags = local.common_tags
}
在资源块中使用count 后,如何创建条件资源?
【问题讨论】:
标签: terraform amazon-route53 terraform0.12+