首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用无参数块的terraform变量

使用无参数块的terraform变量
EN

Stack Overflow用户
提问于 2022-11-04 13:34:02
回答 1查看 34关注 0票数 0

下面有来自terraform的示例代码,但我遇到了一些问题,试图声明一个变量,说明参数是块

代码语言:javascript
运行
复制
basic {}

转移到生产部门就像

代码语言:javascript
运行
复制
 dedicated {
    cku = 2
  }

DEV

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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?
}

局部变量

代码语言:javascript
运行
复制
locals {
  cluster_type = {
    prod = "dedicated {
              cku = 2
            }"
    dev = "basic {}"
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-04 13:53:27

您的脚本有一些问题:

不建议使用

  1. confluent_kafka_cluster,应该用confluentcloud_kafka_cluster

替换它

要使用

  1. 环境,可以创建confluentcloud_environment

资源"confluentcloud_environment“"env”{ display_name = var.environment }

  1. 要解决块的问题,可以使用动态条件,如下所示:

动态"basic“{ for_each = var.environment == "dev”?1:[] content {}动态“专用”{ for_each = var.environment == "prod“?1:[]内容{ cku =2 }

代码可以如下所示:

代码语言:javascript
运行
复制
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"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74317870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档