下面有来自terraform的示例代码,但我遇到了一些问题,试图声明一个变量,说明参数是块
basic {}
转移到生产部门就像
dedicated {
cku = 2
}
DEV
resource "confluent_kafka_cluster" "basic" {
display_name = "basic_kafka_cluster"
availability = "SINGLE_ZONE"
cloud = "GCP"
region = "us-central1"
basic {} <<<< # I want this block to be declared as variable
# Calling the variable
local.cluster_type["dev"] <<<< # this approach is not supported. how can I call the variable directly if there is no argument?
}
PROD
resource "confluent_kafka_cluster" "dedicated" {
display_name = "dedicated_kafka_cluster"
availability = "MULTI_ZONE"
cloud = "GCP"
region = "us-central1"
# For Production it is using a different block
dedicated {
cku = 2
}
# Calling the variable
local.cluster_type["prod"] <<<<< # this approach is not supported. how can I call the variable directly if there is no argument?
}
局部变量
locals {
cluster_type = {
prod = "dedicated {
cku = 2
}"
dev = "basic {}"
}
}
发布于 2022-11-04 13:53:27
您的脚本有一些问题:
不建议使用
confluent_kafka_cluster
,应该用confluentcloud_kafka_cluster
替换它
要使用
confluentcloud_environment
:资源"confluentcloud_environment“"env”{ display_name = var.environment }
动态"basic“{ for_each = var.environment == "dev”?1:[] content {}动态“专用”{ for_each = var.environment == "prod“?1:[]内容{ cku =2 }
代码可以如下所示:
resource "confluentcloud_environment" "env" {
display_name = var.environment
}
resource "confluentcloud_kafka_cluster" "basic" {
display_name = "basic_kafka_cluster"
availability = "SINGLE_ZONE"
cloud = "GCP"
region = "us-central1"
dynamic "basic" {
for_each = var.environment == "dev" ? [1] : []
content {}
}
dynamic "dedicated" {
for_each = var.environment == "prod" ? [1] : []
content {
cku = 2
}
}
environment {
id = confluentcloud_environment.env.id
}
}
variable "environment" {
default = "dev"
}
https://stackoverflow.com/questions/74317870
复制相似问题