[英]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.