Terraform 资源aws_db_proxy
有一个身份验证块列表作为参数。下面是 terraform文档中的一个示例。
每个身份验证块代表一个用户,每个用户都需要 Secrets Manager 中的密钥。我们的平台有四种不同的环境(dev、qa、cert、prod),我们不会在较低的环境中使用机密来节省成本。理想情况下,我会创建两个身份验证块列表,一个用于较低环境,一个用于较高环境。然后,在资源中,我可以根据环境选择合适的资源。
有没有办法将身份验证块列表传递给 aws_db_proxy 资源?
count
我正在考虑的另一个解决方案是使用两个单独的 aws_db_proxy 配置,并使用元参数为每个环境使用适当的配置。但是,我认为这可能会有点混乱。
resource "aws_db_proxy" "example" {
name = "example"
debug_logging = false
engine_family = "MYSQL"
idle_client_timeout = 1800
require_tls = true
role_arn = aws_iam_role.example.arn
vpc_security_group_ids = [aws_security_group.example.id]
vpc_subnet_ids = [aws_subnet.example.id]
auth {
auth_scheme = "SECRETS"
description = "user1"
iam_auth = "DISABLED"
secret_arn = aws_secretsmanager_secret.example1.arn
}
auth {
auth_scheme = "SECRETS"
description = "example2"
iam_auth = "DISABLED"
secret_arn = aws_secretsmanager_secret.example2.arn
}
auth {
auth_scheme = "SECRETS"
description = "example3"
iam_auth = "DISABLED"
secret_arn = aws_secretsmanager_secret.example3.arn
}
tags = {
Name = "example"
Key = "value"
}
}