我是 terraform 的新手,我需要一些幫助。
我有如下的復制配置,我想根據特定條件應用特定規則。
resource "aws_s3_bucket" "bucket" {
replication_configuration {
rules {
id = "rule1"
}
rules {
id = "rule2"
}
rules {
id = "rule3"
}
}
}
我希望僅將規則 1 考慮用于開發環境,將規則 2 用于階段,將規則 3 用于生產,并且我已經有一個環境變數,它將指示該腳本正在從哪個環境運行。我怎樣才能做到這一點?
編輯:我不希望 terraform 在開發環境的情況下執行 rule2 和 rule3,同樣地,對于其他 2 個環境。是否有類似 if 條件的東西,我可以在 replication_configuration 中的每個規則之前提到來實作這一點。
uj5u.com熱心網友回復:
首先,請注意 AWS 提供商版本 4 的資源有變化!!!
自 Terraform AWS 提供程式 4.0 版起,該replication_configuration引數是只讀的。開始使用單獨的資源aws_s3_bucket_replication_configuration來獲取配置詳細資訊。
來到您的問題..在規則內,您可以根據您的環境啟用/禁用規則。
variable "env" {
description = "Env type"
type = string
default = "dev"
}
resource "aws_s3_bucket" "bucket" {
replication_configuration {
rules {
id = "rule1"
status = var.env == "dev" ? "Enabled" : "Disabled"
}
rules {
id = "rule2"
status = var.env == "stage" ? "Enabled" : "Disabled"
}
rules {
id = "rule3"
status = var.env == "prod" ? "Enabled" : "Disabled"
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/434235.html
標籤:亚马逊-s3 地形 terraform-provider-aws
