https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_object_lock_configuration
所以基本上我只想在宣告變數的情況下才創建一個可選的資源object_lock_enabled。它是一個可選變數,如果它存在,則強制重新創建存盤桶,我不希望它與其他環境一起使用,僅用于生產。
prod.tfvars
object_lock_enabled = true
主程式
module "voucher_s3_bucket" {
source = "terraform-aws-modules/s3-bucket/aws"
version = "3.4.0"
bucket = local.voucher_bucket_name
object_lock_enabled = var.object_lock_enabled
}
.
.
.
resource "aws_s3_bucket_object_lock_configuration" "example" {
bucket = 'mybucket'
rule {
default_retention {
mode = "COMPLIANCE"
days = 5
}
}
}
變數.tf
variable "object_lock_enabled" {
description = "Enable object lock on bucket"
type = bool
default = null
}
但TF_VAR_env=platform terragrunt plan回傳Error during operation: argument must not be null
我嘗試將此行添加到配置資源塊
count = var.object_lock_enabled == null ? 0 : 1
但我仍然遇到同樣的錯誤。
uj5u.com熱心網友回復:
您可以只使用false而不是null作為默認值:
variable "object_lock_enabled" {
description = "Enable object lock on bucket"
type = bool
default = false # <----
}
并保持:
object_lock_enabled = var.object_lock_enabled
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535939.html
