gpt4 book ai didi

Terraform 变量和计数 = 0

转载 作者:行者123 更新时间:2023-12-02 23:08:09 24 4
gpt4 key购买 nike

我们在所有环境中使用相同的地形定义。到目前为止,效果很好,但现在我面临着一个尚未解决的问题。我现在设置的演示环境中不需要 RDS 和 ElastiCache 服务,因此我将 count 设置为 0。对于其他环境,我需要通过输出变量公开它们:

resource "aws_elasticache_cluster" "cc_redis" {
cluster_id = "cc-${var.env}"
engine = "redis"
node_type = "cache.t2.small"
security_group_ids = ["..."]
count = "${var.env == "demo" ? 0 : 1}"
}

output "cc_redis_host" {
value = "${aws_elasticache_cluster.cc_redis.cache_nodes.0.address}"
}

现在我收到此错误:

output.cc_redis_host: Resource 'aws_elasticache_cluster.cc_redis' not found
for variable 'aws_elasticache_cluster.cc_redis.cache_nodes.0.address'

我不太介意设置一个无用的变量,但我一开始就无法让它工作。简单的条件并不能解决这个问题,因为 terraform 会评估条件的错误一面,即使它没有被使用。我发现this hack但也无法让它工作。

最佳答案

试试这个:

output "cc_redis" {
value = "${element(concat(aws_elasticache_cluster.cc_redis.*.cache_nodes.0.address, list("")), 0)}"
}

TF 似乎并不关心如果您在链的更高位置使用通配符,计数可能为 0。

这可能会输出超出您想要的内容,但您可以从中解析出您需要的内容。

关于Terraform 变量和计数 = 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51654863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com