【发布时间】:2018-03-12 19:06:51
【问题描述】:
我有一个名为子网的远程状态属性,它存储在:data.terraform_remote_state.alb.subnets
根据我正在部署的内容,此属性要么存在,要么不存在。
当我尝试创建 ECS 集群时,需要输入我想在其中使用的子网组:
data.terraform_remote_state.alb.subnets 或者 var.vpc_subnets(VPC 的子网)
不幸的是,由于插值的工作方式,需要一起破解:
"${split(",", length(var.vpc_subnets) == 0 ? join(",",data.terraform_remote_state.alb.subnets) : join(",",var.vpc_subnets))}"
(参考:https://github.com/hashicorp/terraform/issues/12453)
但是,由于 Terraform 似乎不会“懒惰地”评估三元运算符,因此即使 var.vpc_subnets 不为零,它也会向我抛出以下错误:
Resource 'data.terraform_remote_state.alb' does not have attribute 'subnets' for variable 'data.terraform_remote_state.alb.subnets'
如何正确处理可能未定义的远程状态资源?
编辑:错字:子网->子网
【问题讨论】:
-
为什么不直接使用
aws_subnet_ids数据源来获取子网ID?
标签: terraform