Условие Terraform IF - PullRequest
       70

Условие Terraform IF

0 голосов
/ 05 мая 2020

Я работаю над экземпляром AWS rds postgresql, и мы используем аутентификацию IAM. Я создал пару ролей, но для одной роли мне нужно дать разрешение. Я пытался использовать условие if, но получаю сообщение об ошибке, что для этого атрибута недопустимы нулевые значения. Мне нужно передать разрешения на предоставление пользователям в dev_role для доступа к базе данных с использованием учетных данных IAM.

Какие еще решения я мог бы использовать для решения этой ошибки? Мне нужно игнорировать параметр.

# Create roles/groups
resource "postgresql_role" "pgauth_roles" {
  provider = postgresql.pg1
  for_each = toset(var.role_name)
  name     = each.value
  roles    = [each.value == "dev_role" ? "rds_iam" : null ]
}


  on ../../../../tf_module_amp_rds/pg_roles.tf line 14, in resource "postgresql_role" "pgauth_roles":
  14:   roles    = [each.value == "dev_role" ? "rds_iam" : null]

Null values are not allowed for this attribute value.

Terraform v0.12.20 + provider. aws v2.60.0 + provider. postgresql v1.5.

1 Ответ

2 голосов
/ 06 мая 2020

Попробуйте с пустым массивом []
Примерно так:

resource "postgresql_role" "pgauth_roles" {
  provider = postgresql.pg1
  for_each = toset(var.role_name)
  name     = each.value
  roles    = each.value == "dev_role" ? ["rds_iam"] : []
}

...