簡體   English   中英

Terraform 使用 count 循環變量和 if 語句來創建資源

[英]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元參數設置為變量prods3_folders

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM