You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform如何过滤locals指定key以跳过对应Google存储桶资源创建

你可以通过在for_each参数中加入过滤逻辑实现需求,无需修改原有locals.buckets的定义:

实现原理

使用Terraform的for表达式遍历原始桶配置,过滤掉不需要创建的develop、production两个key对应的条目后再传给for_each使用即可。

完整代码示例

locals {
  buckets = {
    sandbox1    = "sandbox1-bucket",
    sandbox2    = "sandbox2-bucket",
    develop     = "develop-bucket",
    production  = "production-bucket"
  }
  # 可自定义需要跳过创建的桶key,后续调整直接修改该列表即可
  skipped_bucket_keys = ["develop", "production"]
}

resource "google_storage_bucket" "gcs_buckets" {    
  for_each = { for bucket_key, bucket_name in local.buckets : bucket_key => bucket_name if !contains(local.skipped_bucket_keys, bucket_key) }
  name          = each.value
  location      = "US"
  force_destroy = true

  lifecycle_rule {
    condition {
      age = 30
    }
    action {
      type = "Delete"
    }
  }
}

简化写法(不需要单独定义跳过列表时可以用)

如果不需要后续灵活调整跳过的桶,也可以直接把判断条件写死在for_each里:

for_each = { for k, v in local.buckets : k => v if k != "develop" && k != "production" }

内容的提问来源于stack exchange,提问作者jagannath shetagar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:18:00