我对terraform还是个新手。我想知道有没有重用资源的方法?下面是我的代码。下面是main.tf,我在其中声明了一个模块。
module "deployments" {
source = "./modules/odo_deployments"
artifact_versions = local.artifact_versions
}在modules/odo_deployments文件夹中,我有两个资源,除了一个不同的ad之外,它们的功能完全相同。有没有一种方法,我可以只使用一个资源,并像函数一样传递参数(ad)给这个资源?
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"]
}发布于 2020-10-08 01:46:50
为了解决这个问题,我在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]https://stackoverflow.com/questions/64238028
复制相似问题