繁体   English   中英

如何加入terraform su.net变量

[英]How to join terraform subnet variable

变量.tf

variable  "private_subnets" {
    type    = list
    default = ["subnet-abc1,subnet-abc2"]
}

主程序

resource "aws_db_subnet_group" "rds_subnet_group" {
    name       = var.cluster_name
    subnet_ids = "${var.private_subnets}"

    tags = {
        Name        = var.cluster_name,
        environment = var.environment
    }
}

这是我想为 su.net 使用 varable.tf 的当前代码,这是我想要像这样的 su.net-abc1、su.net-abc2 实现的方式

考虑到您的变量有一个错误定义的默认值,首先要解决的是:

variable  "private_subnets" {
    type    = list(string)
    default = ["subnet-abc1", "subnet-abc2"]
}

您当前定义默认值的方式,即["su.net-abc1,su.net-abc2"] ,是一个列表,但是,它是一个包含一个元素的列表。 字符串列表中的每个元素都需要以双引号开头和结尾,即“某个值”。 您可以在 [1] 中阅读有关列表的更多信息。

然后,您只需要将main.tf中的代码修改为如下所示:

resource "aws_db_subnet_group" "rds_subnet_group" {
    name       = var.cluster_name
    subnet_ids = var.private_subnets

    tags = {
        Name        = var.cluster_name,
        environment = var.environment
    }
}

main.tf文件中 su.nets 的语法是旧的 terraform 语法,因此无需双引号和${}即可使用。


[1] https://developer.hashicorp.com/terraform/language/expressions/types#list

我对拆分有一些疑问,这就是答案

variable.tf

variable  "private_subnets" {
    default = "subnet-abc1,subnet-abc2"
}
main.tf
resource "aws_db_subnet_group" "rds_subnet_group" {
    name       = var.cluster_name
    subnet_ids = "${split(",", var.private_subnets)}"

    tags = {
        Name        = var.cluster_name,
        environment = var.environment
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM