[英]Terraform: how can I check if another resource is available
我有一个 Terraform 设置,基本上如下所示:
Project
├──common
│ └─── cloudfront.tf
│ └─── lambda1.tf
│ └─── lambda2.tf
│
├──staging
│ └─── main.tf
│ └─── symlink to ../common/cloudfront.tf
│ └─── symlink to ../common/lambda2.tf
│
└──prod
└─── main.tf
└─── symlink to ../common/cloudfront.tf
└─── symlink to ../common/lambda1.tf
└─── symlink to ../common/lambda2.tf
因此,为了能够重用不同的文件进行暂存和/或生产。
我现在遇到的问题是,在此示例中,暂存只有 lambda2.tf 而没有 lambda1.tf,但 cloudfront.tf 必须根据 lambda1.tf 中的资源是否“可用”有条件地创建动态块.
我试过这样的事情(有和没有try()
):
dynamic "blockname" {
for_each = try( aws_lambda_function.myname, null ) != null ? [1] : []
# ...
}
但正如文档中所说:
try function 不会捕获与可能在动态表达式评估之前无效的构造相关的错误,例如格式错误的引用或对尚未声明的顶级 object 的引用
我不想添加额外的变量来切换动态块的创建。
有没有办法实现我正在尝试的目标?
您必须创建自定义数据源来查询资源的预先存在状态。 否则,你不能在 TF 中这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.