如何在terraform中迭代资源?
如何为参数的不同值迭代资源 例如,在我下面的地形文件中,我有一个数据块和一个资源。如果我通过了value如何在terraform中迭代资源?,terraform,Terraform,如何为参数的不同值迭代资源 例如,在我下面的地形文件中,我有一个数据块和一个资源。如果我通过了valueDB_NAME=test,那么工作正常。但是,如果我有多个DB_NAME值,并且希望它运行多次DB_NAME=test,app,该怎么办呢。如何迭代数据和资源块 data "template_file" "search-index" { template = "${file("search-index/search-index.s
DB_NAME=test
,那么工作正常。但是,如果我有多个DB_NAME值,并且希望它运行多次DB_NAME=test,app
,该怎么办呢。如何迭代数据和资源块
data "template_file" "search-index" {
template = "${file("search-index/search-index.sh")}"
vars {
DB_NAME = "${var.DB_NAME}"
}
}
resource "null_resource" "script" {
triggers = {
DB_NAME = "${var.DB_NAME}"
script_sha = "${sha256(file("search-index/search-index.sh"))}"
}
provisioner "local-exec" {
command = "${data.template_file.search-index.rendered}"
interpreter = ["/bin/bash", "-c"]
}
}
我不确定我是否完全理解您试图实现的目标,但您可以通过定义
变量来创建多个DB。tf
如下:
variable "DB_NAME" {
description = "A list of databases"
type = list(string)
default = ["db1", "db2", "db3"]
}
然后使用terraform文件中的for_每个功能:
data "template_file" "search-index" {
for_each = toset(var.DB_NAME)
template = "${file("search-index/search-index.sh")}"
vars = {
DB_NAME = each.value
}
}
resource "null_resource" "script" {
for_each = toset(var.DB_NAME)
triggers = {
DB_NAME = each.value
script_sha = "${sha256(file("search-index/search-index.sh"))}"
}
provisioner "local-exec" {
command = "${data.template_file.search-index[each.value]}"
interpreter = ["/bin/bash", "-c"]
}
}