В моем модуле я хочу включить или отключить gcp bucket lifecycle_rule в зависимости от того, установлена ли переменная, поэтому в основном я хочу, чтобы в некоторых корзинах было включено правило, а в других - игнорировать настройку правила. Но terraform не поддерживает enabled
для GCP lifecycle_rule, который мог бы легко это сделать (см. Ссылку AWS ниже).
AWS: https://www.terraform.io/docs/providers/aws/r/s3_bucket.html#enabled-1
GCP:
https://www.terraform.io/docs/providers/google/r/storage_bucket.html#lifecycle_rule
Я попытался условно установить тип действия правила и storage_class равным ""
resource "google_storage_bucket" "bucket_ageoff" {
count = "${var.enable_ageoff}"
name = "${local.bucket_name}"
project = "${local.project_id}"
location = "${var.region}"
storage_class = "${local.bucket_storage_class}"
encryption {
default_kms_key_name = "${google_kms_crypto_key.bucket_key.self_link}"
}
logging {
log_bucket = "${google_storage_bucket.log_bucket.name}"
}
labels {
"environment" = "${var.env}"
}
lifecycle_rule {
action {
type = "Delete"
}
condition {
age = "${var.ageoff_days}"
}
}
lifecycle_rule {
action {
type = "${var.coldline_days != "" ? "SetStorageClass" : ""}"
storage_class = "${var.coldline_days != "" ? "COLDLINE" : ""}"
}
condition {
age = "${var.coldline_days != "" ? var.coldline_days : "0"}"
}
}
}
}
но gcp api выдает эту ошибку:
Произошла 1 ошибка (и):
module.log_archive_bucket.google_storage_bucket.bucket_ageoff: 1 произошла ошибка:
google_storage_bucket.bucket_ageoff: googleapi: Ошибка 400: неверный аргумент, неверный
Ниже показано, что на самом деле пытается сделать код:
...
lifecycle_rule {
//enabled is supported by TF for AWS but not GCP
//enabled = "${var.coldline_days != "" ? true : false }"
action {
type = "SetStorageClass"
storage_class = "COLDLINE"
}
condition {
age = "${var.coldline_days != "" ? var.coldline_days : "0" }"
}
}
}
Ошибка: module.log_archive_bucket.google_storage_bucket.bucket_ageoff: lifecycle_rule.1: неверный или неизвестный ключ: включен
Любая идея для реализации вышеуказанного требования приветствуется.