#terraform #terraform-provider-aws
#terraform #terraform-поставщик-aws
Вопрос:
есть ли способ добавить условие if для выбора самого ресурса
Я хочу, чтобы приведенный ниже ресурс, если env = dev
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" {
}
остальное ниже reource
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»
есть ли какой-либо другой способ отключить сам ресурс?
Комментарии:
1. Какая версия Terraform?
2. привет, terraform-12
Ответ №1:
Может быть, что-то подобное также должно работать с помощью 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"
}
Комментарии:
1. Количество, которое я не могу добавить, так как все ресурсы terraform могут не иметь количества
2. Почему вы не хотите использовать count по какой-либо конкретной причине? Пока я думаю о другом решении.
3. @kcoder В чем проблема
count
? Это один из его основных вариантов использования.4. мое имя ресурса такое же «myDB», потому что этот ресурс используется в других местах. хотите сохранить то же имя ресурса
5. Ну, я, возможно, не знаю другого варианта ответа на вопрос. Но вы можете манипулировать myDB как локальной переменной и ссылаться на нее везде.