如何动态获取在terraform中创建的rds实例的服务器IP



我正在使用源terraform-aws-modules/rds/aws的terraform模块来创建一个基于postgresql的terraform实例。作为这个项目的一部分,我还希望在postgresql数据库中创建具有特定权限的角色。我知道有一个postresql提供程序,我可以包括如下:

provider "postgresql" {
host            = "postgres_server_ip"
port            = 5432
database        = "postgres"
username        = "postgres_user"
password        = "postgres_password"
sslmode         = "require"
connect_timeout = 15
}

然而,对于主机,我需要以某种方式访问刚刚创建的RDS实例的服务器IP -有人知道如何在使用RDS模块与我上面提到的源时做到这一点吗?

您不需要postgres IP, DNS Name也可以。

所讨论的模块有一个名为。db_instance_endpoint

module "rds" {
source  = "terraform-aws-modules/rds/aws"
version = "5.2.3"
# Your variables
}
#You can use that variable using
locals {
the_result = module.rds.db_instance_endpoint
}

你要面对的问题是,一个提供者块不能来自动态值,如资源或模块。它们可以来自于输入变量。因此,要实现这一点,请将postgres代码放在它自己的terraform模块中。

并将主机作为允许的变量传入。

相关内容

  • 没有找到相关文章

最新更新