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"] : []
}
我正在处理 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"] : []
}