module "buckets" {
for_each = var.buckets
source = "source pasted below"
version = "3.2.0"
bucket_name = each.key
project = var.project_id
location = each.value["location"]
storage_class = each.value["storage_class"]
versioning = each.value["versioning"]
create_generic_storage_object_admin_sa = each.value["create_generic_storage_object_admin_sa"]
storage_object_viewers = each.value["storage_object_viewers"]
storage_object_users = each.value["storage_object_users"]
lifecycle_rules = each.value["lifecycle_rules"]
depends_on = [google_service_account.service_accounts]
enforced_labels = each.value["enforced_labels"]
}
inputs = {
...
...
buckets = {
"some-name-${local.environment}" = {
project = local.project_id
location = "europe-west2"
storage_class = "STANDARD"
versioning = false
storage_object_viewers = [..]
storage_object_users = [..]
create_generic_storage_object_admin_sa = false
lifecycle_rules = [{
condition = {
age = 0 # immediately
num_newer_versions = null # Max number of versions to keep per object
days_since_noncurrent_time = null # Expire non-current versions after x days
}
action = {
type = "SetStorageClass"
storage_class = "STANDARD"
}
}]
enforced_labels = {
owner = "some-team"
environment = local.environment
}
}
}
欢迎任何线索!
我尝试更改存储桶名称,更改服务帐户名称,删除Lifecycles规则通过将生命周期规则修改为:
来固定以下
module "gcs_bucket" {
source = "terraform-google-modules/cloud-storage/google//modules/simple_bucket"
version = "9.1.0"
project_id = var.project
name = var.bucket_name
location = var.location
storage_class = var.storage_class
versioning = var.versioning
retention_policy = var.retention_policy
lifecycle_rules = var.lifecycle_rules
labels = merge(var.enforced_labels, var.optional_labels)
}