Terraform 地形根据条件选择资源
有没有办法为选择资源本身添加if条件 如果env=dev,我需要下面的资源Terraform 地形根据条件选择资源,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,有没有办法为选择资源本身添加if条件 如果env=dev,我需要下面的资源 resource "aws_rds_cluster" "myDB" { cluster_identifier = "aurora-cluster-demo" engine = "aurora-mysql" engine_version = "5.7.mysql
resource "aws_rds_cluster" "myDB" {
cluster_identifier = "aurora-cluster-demo"
engine = "aurora-mysql"
engine_version = "5.7.mysql_aurora.2.03.2"
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
database_name = "mydb"
master_username = "foo"
master_password = "bar"
backup_retention_period = 5
preferred_backup_window = "07:00-09:00"
}
resource "route53" "dns" {
}
其他低于资源
resource "aws_rds_cluster" "myDB" {
cluster_identifier = "aurora-cluster-demo"
engine = "aurora-postgres"
engine_version = "5.7.mysql_aurora.2.03.2"
database_name = "mydb"
master_username = "foo"
master_password = "bar"
preferred_backup_window = "07:00-09:00"
}
一种方法是,我可以开始添加以下所有变量,或者创建一个局部变量。
engine=var.env=dev?“aurora mysql”:“aurora postgres”
有没有其他方法可以禁用资源本身?也许类似的方法也可以在
count
resource "aws_rds_cluster" "myDB-mysql" {
count = var.env == dev ? 1 : 0
cluster_identifier = "aurora-cluster-demo"
engine = "aurora-mysql"
engine_version = "5.7.mysql_aurora.2.03.2"
availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"]
database_name = "mydb"
master_username = "foo"
master_password = "bar"
backup_retention_period = 5
preferred_backup_window = "07:00-09:00"
}
resource "aws_rds_cluster" "myDB-postgres" {
count = var.env != dev ? 1 : 0
cluster_identifier = "aurora-cluster-demo"
engine = "aurora-postgres"
engine_version = "5.7.mysql_aurora.2.03.2"
database_name = "mydb"
master_username = "foo"
master_password = "bar"
preferred_backup_window = "07:00-09:00"
}
Count我无法添加,因为所有的地形资源可能都没有Count。为什么不使用Count?有什么具体原因吗?当我考虑另一个解决方案时。@kcoder
count
有什么问题吗?这是它的主要用例之一。我的资源名称与“myDB”相同,因为此资源正在其他地方使用。想要保持相同的资源名称好吧,我可能不知道这个问题的另一个选项。但是你可以将myDB作为局部变量来操作,并在任何地方引用它。Terraform的哪个版本?嗨,Terraform-12