AWS Terraform的PostgreSQL提供程序:服务器上未启用SSL

4

我正在尝试使用postgresql提供程序在AWS中创建一个已创建的postgres RDS中的数据库。我创建的terraform脚本如下:

    resource "aws_db_instance" "test_rds" {
  allocated_storage        = "" # gigabytes
  backup_retention_period  = 7   # in days
  engine                   = ""
  engine_version           = ""
  identifier               = ""
  instance_class           = ""
  multi_az                 = ""
  name                     = ""
  username                 = ""
  password                 = ""
  port                     = ""
  publicly_accessible      = "false"
  storage_encrypted        = "false"
  storage_type             = ""
  vpc_security_group_ids   = ["${aws_security_group.test_sg.id}"]
  db_subnet_group_name     = "${aws_db_subnet_group.rds_subnet_group.name}"
}
postgresql提供者如下所示:
# Create databases in rds
provider "postgresql" {

  alias           = "alias"
  host            = "${aws_db_instance.test_rds.address}"
  port            =  5432
  username        = 
  password        = 
  database        = 
  sslmode         = "disable"

}

# Create user in rds
resource "postgresql_role" "test_role" {
  name             = 
  replication      = true
  login            = true
  password         = 
}

# Create database rds
resource "postgresql_database" "test_db" {
  name              = testdb
  owner             = "${postgresql_role.test_role.name}"
  lc_collate        = "C"
  allow_connections = true
  provider          = "postgresql.alias"
}

无论如何,我一直在检索错误:初始化PostgreSQL客户端时出错:检测功能时出错:PostgreSQL版本错误:pq:服务器上未启用SSL

注意:空字段已经填好,RDS已成功创建,在尝试使用postgresql提供程序在rds中创建数据库时出现问题。


好的,找到了问题,与SSL启用无关。我还需要在postgresql_role上设置提供程序,如下所示: provider = "postgresql.alias" - Mr 123
在我的情况下,我的“host”变量是错误的,它是一个空字符串。 - Guillermo Garcia
2个回答

8
我们也遇到了这个问题,问题出在密码没有被定义。当连接有问题时,似乎会出现 SSL 未启用的错误。当 db 主机名缺失时,我们也遇到了同样的问题。您需要确保在 Terraform 中定义所有连接所需的字段(可能还包括数据库和用户名)。

这有点像我遇到的情况。在列表中添加检查,确保您还在资源上指定了提供程序。 - ryuzakyl

1

确保为postgres用户设置了密码并禁用了sslmode,这对我有帮助

sslmode = "disable"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接