Terraform 将多个属性块合二为一
Terraform combine multiple attribute blocks into one
我正在尝试使用 terraform 在 DataBricks 工作区中自动化和配置 DataBricks 集群。
我们有需要在集群创建时安装的预定义库,我们大约有 20 个库
variable"libraries"{
default = ["pypi","jar"]
}
variable"pythonpackages"{
default = ["conda","pymongo"]
}
variable"jarpackages"{
default = ["etc1","etc1"]
}
variable"repositories"{
default = ["internal1","internal2"]
}
resource "databricks_cluster" "shared_autoscaling" {
cluster_name = "Shared Autoscaling"
spark_version = data.databricks_spark_version.latest_lts.id
node_type_id = data.databricks_node_type.smallest.id
autotermination_minutes = 20
autoscale {
min_workers = 1
max_workers = 50
}
library {
pypi {
package = "dnspython"
}
}
library {
pypi {
package = "condo"
}
}
library {
pypi {
package = "kedro"
repo = "artifactory-url"
}
}
}
我正在尝试删除库属性重复项。我在库属性中使用 for_each
进行了尝试,但结果不正确。
我想要达到的目标
variable"libraries"{
default = ["pypi","jar"]
}
variable"pythonpackages"{
default = ["conda","pymongo"]
}
variable"jarpackages"{
default = ["etc1","etc1"]
}
variable"repositories"{
default = ["internal1","internal2"]
}
resource "databricks_cluster" "shared_autoscaling" {
cluster_name = "Shared Autoscaling"
spark_version = data.databricks_spark_version.latest_lts.id
node_type_id = data.databricks_node_type.smallest.id
autotermination_minutes = 20
autoscale {
min_workers = 1
max_workers = 50
}
library {
pypi {
package = ["condo","pymongo","listofpackages"]
}
}
}
您可以使用 dynamic blocks 重复嵌套块。
例如要重复库块,您可以这样写:
resource "databricks_cluster" "shared_autoscaling" {
cluster_name = "Shared Autoscaling"
spark_version = data.databricks_spark_version.latest_lts.id
node_type_id = data.databricks_node_type.smallest.id
autotermination_minutes = 20
autoscale {
min_workers = 1
max_workers = 50
}
dynamic "library" {
for_each = ["condo","pymongo","listofpackages"]
content {
pypi {
package = library.value
}
}
}
}
我正在尝试使用 terraform 在 DataBricks 工作区中自动化和配置 DataBricks 集群。
我们有需要在集群创建时安装的预定义库,我们大约有 20 个库
variable"libraries"{
default = ["pypi","jar"]
}
variable"pythonpackages"{
default = ["conda","pymongo"]
}
variable"jarpackages"{
default = ["etc1","etc1"]
}
variable"repositories"{
default = ["internal1","internal2"]
}
resource "databricks_cluster" "shared_autoscaling" {
cluster_name = "Shared Autoscaling"
spark_version = data.databricks_spark_version.latest_lts.id
node_type_id = data.databricks_node_type.smallest.id
autotermination_minutes = 20
autoscale {
min_workers = 1
max_workers = 50
}
library {
pypi {
package = "dnspython"
}
}
library {
pypi {
package = "condo"
}
}
library {
pypi {
package = "kedro"
repo = "artifactory-url"
}
}
}
我正在尝试删除库属性重复项。我在库属性中使用 for_each
进行了尝试,但结果不正确。
我想要达到的目标
variable"libraries"{
default = ["pypi","jar"]
}
variable"pythonpackages"{
default = ["conda","pymongo"]
}
variable"jarpackages"{
default = ["etc1","etc1"]
}
variable"repositories"{
default = ["internal1","internal2"]
}
resource "databricks_cluster" "shared_autoscaling" {
cluster_name = "Shared Autoscaling"
spark_version = data.databricks_spark_version.latest_lts.id
node_type_id = data.databricks_node_type.smallest.id
autotermination_minutes = 20
autoscale {
min_workers = 1
max_workers = 50
}
library {
pypi {
package = ["condo","pymongo","listofpackages"]
}
}
}
您可以使用 dynamic blocks 重复嵌套块。
例如要重复库块,您可以这样写:
resource "databricks_cluster" "shared_autoscaling" {
cluster_name = "Shared Autoscaling"
spark_version = data.databricks_spark_version.latest_lts.id
node_type_id = data.databricks_node_type.smallest.id
autotermination_minutes = 20
autoscale {
min_workers = 1
max_workers = 50
}
dynamic "library" {
for_each = ["condo","pymongo","listofpackages"]
content {
pypi {
package = library.value
}
}
}
}