我有一个只需要根据变量的值创建的资源(如果环境== "prod"),同样的资源也在s3上创建多个文件夹。获取另一个变量(列表)并遍历它以创建文件夹。
这些都是资源:
variable "s3_folders" {
type = list
description = "The list of S3 folders to create"
default = ["ron", "al", "ted"]
}
resource "aws_s3_object" "smcupdater-folder-new-out" {
count = "${length(var.s3_folders)}"
count = var.environment == "prod" ? 1 : 0
bucket = var.bucketname-smc-updater-upgrades
acl = "private"
key = "UpdaterActions/${var.s3_folders[count.index]}/NewActionsFiles/out-smcupdater/"
source = "/dev/null"
server_side_encryption = "AES256"
}
但是我显然不能用两次计数,我也试着为每一个,但这也是不允许的,有其他方法做它,我错过了吗?
发布于 2022-11-29 13:37:32
是的,您只需更新三元表达式即可:
resource "aws_s3_object" "smcupdater-folder-new-out" {
count = var.environment == "prod" ? length(var.s3_folders) : 0
bucket = var.bucketname-smc-updater-upgrades
acl = "private"
key = "UpdaterActions/${var.s3_folders[count.index]}/NewActionsFiles/out-smcupdater/"
source = "/dev/null"
server_side_encryption = "AES256"
}
这样,您将检查环境是否为prod
,如果是,则将count
元参数设置为变量s3_folders
的长度。
https://stackoverflow.com/questions/74614952
复制相似问题