Terraform IF 条件

Terraform IF condition

我正在处理 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.

尝试使用空数组[]
像这样:

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