如何为字符串的值类型映射设置terraform变量类型?

问题描述 投票:0回答:1

我当前正在将数据库选项组设置作为硬编码传递到模块代码本身中。

options = {

    TIMEZONE = {
      option_name                    = "Timezone"
      option_settings = {
        TIMEZONE = {
          name  = "TIME_ZONE"
          value = "Europe/Berlin"
        }
      }
    },
    NNE = {
      option_name                    = "NATIVE_NETWORK_ENCRYPTION"
      option_settings = {
        CRYPTO_CHECKSUM_SERVER = {
          name  = "SQLNET.CRYPTO_CHECKSUM_SERVER"
          value = "REQUIRED"
        },
        ENCRYPTION_SERVER = {
          name  = "SQLNET.ENCRYPTION_SERVER"
          value = "REQUIRED"
        },
        ENCRYPTION_CLIENT = {
          name  = "SQLNET.ENCRYPTION_CLIENT"
          value = "REQUIRED"
        },
        ALLOW_WEAK_CRYPTO = {
          name  = "SQLNET.ALLOW_WEAK_CRYPTO"
          value = "FALSE"
        },
        ALLOW_WEAK_CRYPTO_CLIENTS = {
          name  = "SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS"
          value = "FALSE"
        }
  }
}

为了参数化相同的内容,我声明了一个变量,options = var.db_options 我想了解,如何为其创建适当的变量类型。 我尝试了几种方法,但总是抛出一个错误,指出不是合适的类型。 因此,为了使其工作,我将变量类型定义为 map(any),这有效,但我仍然想知道,这样的值的适当变量类型是什么。

谢谢!

amazon-web-services terraform amazon-rds terraform-provider-aws
1个回答
0
投票

一种简单的方法是利用

any
变量类型

variable "options" {
  type        = map(any)
  description = "Map of options"
  default     = {}
}

更进一步,映射中的每个键/值都可以在变量类型定义中定义。

© www.soinside.com 2019 - 2024. All rights reserved.