TerraForm变量和计数=0 [英] Terraform variables and count = 0

查看:12
本文介绍了TerraForm变量和计数=0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们在所有环境中使用相同的地形定义。到目前为止一切都很顺利,但是现在我面临着一个我还不能解决的问题。我有一个服务的RDS和ElastiCache,这在我现在设置的演示环境中是不需要的,所以我将count设置为0。对于其他环境,我需要通过输出var:

公开它们
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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆