[英]Terraform using count for both looping a variable and if statement to create the resource
我有一個資源,我只需要根據變量的值創建(如果環境 ==“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"
}
但我顯然不能兩次使用計數,我也嘗試過每次使用,但這也是不允許的,還有另一種方法可以做到這一點嗎?
是的,您可以只更新三元表達式來執行此操作:
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"
}
通過這種方式,您可以檢查環境是否為生產環境,如果是,則將count
元參數設置為變量prod
的s3_folders
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.