[英]Terraform resource with count 0 and a variable depending on the resource
我正在嘗試使用Terraform在aws上創建s3存儲桶,在所有環境(dev,qa和prod)中都存在很少的存儲桶,而大多數存儲桶僅存在於1或2個環境中。 我正在使用count來有選擇地定義資源
所以在下面的代碼中,我只在環境是dev或qa時使用count和conditionals在S3中創建一個存儲桶。 但是當我運行prod環境的代碼時,我得到Error: module 's3-bucket-example': unknown variable referenced: 'lifecycle_rule_s3_bucket_example'; define it with a 'variable' block
Error: module 's3-bucket-example': unknown variable referenced: 'lifecycle_rule_s3_bucket_example'; define it with a 'variable' block
每個存儲桶的lifecycle_rule在每個環境的相應var文件中定義,例如lifecycle_rule_s3_bucket_example
在var-file.dev和var-file.qa中定義,但不在var-file.prod中定義,因為存儲桶存在於dev和qa中。 但由於prod中不存在桶,為什么我得到定義lifecycle_rule變量的錯誤? 我的猜測是,因為prod的count = 0,所以剩余的變量都不應該在模塊中。
module "s3-bucket-example" {
source = "./modules/s3"
count = "${var.aws-account == "dev"|| var.aws-account == "qa" ? 1 :0}"
bucketname = "${local.this_env_prefix}-s3-bucket-example"
versioning-enabled = "true"
lifecycle_rule = "${var.lifecycle_rule_s3_bucket_example}"
aws_account = "${var.aws-account}"
}
在AWS(或任何其他提供商)實際創建任何資源之前,Terraform會執行驗證以檢查所有變量等是否已定義。
這樣,減少了在資源創建期間遇到錯誤的可能性。
猜猜你必須為你的prod env定義變量以及虛擬值......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.