簡體   English   中英

Terraform:如何檢查另一個資源是否可用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM