gpt4 book ai didi

amazon-s3 - 如何在 Terraform 变量中连接 S3 存储桶名称并将其传递给主 tf 文件

转载 作者:行者123 更新时间:2023-12-04 13:41:24 25 4
gpt4 key购买 nike

我正在编写 terraform 模板来创建两个 S3 存储桶,但是,我的要求是将它们的名称连接到 vars.tf 中,然后将其传递给主 tf 文件。下面是 vars.tf 和主要的 s3.tf 文件。

变量.tf:

variable TENANT_NAME {
default = "Mansing"
}

variable BUCKET_NAME {
type = "list"
default = ["bh.${var.TENANT_NAME}.o365.attachments", "bh.${var.TENANT_NAME}.o365.eml"]

}


s3.tf:
resource "aws_s3_bucket" "b" {
bucket = "${element(var.BUCKET_NAME, 2)}"
acl = "private"
}


什么时候做 terraform plan 我收到一个错误,表明 var 在这里可能不起作用。
Error: Variables not allowed

on vars.tf line 10, in variable "BUCKET_NAME":
10: default = ["bh.${var.TENANT_NAME}.o365.attachments", "bh.${var.TENANT_NAME}.o365.eml"]

Variables may not be used here.


Error: Variables not allowed

on vars.tf line 10, in variable "BUCKET_NAME":
10: default = ["bh.${var.TENANT_NAME}.o365.attachments", "bh.${var.TENANT_NAME}.o365.eml"]

Variables may not be used here.


我尝试用语言环境替换 vars 文件中的 var 但没有用。

最佳答案

您可以使用 Terraform locals块连接 s3.tf 中的变量值文件:

locals {
BUCKET_NAME = [
"bh.${var.TENANT_NAME}.o365.attachments",
"bh.${var.TENANT_NAME}.o365.eml"
]
}

resource "aws_s3_bucket" "b" {
bucket = "${element(local.BUCKET_NAME, 2)}"
acl = "private"
}

关于amazon-s3 - 如何在 Terraform 变量中连接 S3 存储桶名称并将其传递给主 tf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56651118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com