簡體   English   中英

如何重用 terraform 資源?

[英]How to reuse a terraform resource?

我是 terraform 的新手。我想知道有沒有辦法重用資源? 下面是我的代碼。 下面是 main.tf,我在其中聲明了一個模塊。

module "deployments" {
  source = "./modules/odo_deployments"
  artifact_versions = local.artifact_versions
}

在 modules/odo_deployments 文件夾中,我有兩個資源,除了不同的廣告外,它們的功能完全相同。 有沒有一種方法可以只使用一個資源並將 arguments (ad) 像 function 一樣傳遞給該資源?

variable "artifact_versions" {
  description = "What gets injected by terraform at the ET level"
}

resource "odo_deployment" "incident-management-service-dev" {
    count = var.artifact_versions["incident-management-service"].version == "skip" ? 0 : 1
    ad = "phx-ad-1"
    alias = "cloud-incident-management-application"
    artifact {
        url = var.artifact_versions["incident-management-service"].uri
        build_tag = var.artifact_versions["incident-management-service"].version
        type = var.artifact_versions["incident-management-service"].type
    }

    flags = ["SKIP_UP_TO_DATE_NODES"]
}

resource "odo_deployment" "incident-management-service-dev-ad3" {
    count = var.artifact_versions["incident-management-service"].version == "skip" ? 0 : 1
    ad = "phx-ad-3"
    alias = "cloud-incident-management-application"
    artifact {
        url = var.artifact_versions["incident-management-service"].uri
        build_tag = var.artifact_versions["incident-management-service"].version
        type = var.artifact_versions["incident-management-service"].type
    }

    flags = ["SKIP_UP_TO_DATE_NODES"]
}

我為解決這個問題所做的是,我在 main.tf 中添加了一個局部變量,並在模塊中傳遞局部變量,如下所示

locals {
  ad = ["phx-ad-1", "phx-ad3"]
}
module "deployments" {
  source = "./modules/odo_deployments"
  artifact_versions = local.artifact_versions
  ad = local.ad

在資源中,我沒有對廣告價值進行硬編碼,而是像下面這樣使用它

count = length(var.ad)
ad    = var.ad[count.index]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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