amazon-web-services - AWS RDS 连接字符串

标签 amazon-web-services shell terraform amazon-rds

我有一个问题。

因此,我尝试使用 terraform 自动执行 RDS 连接字符串,但数据库标识符是在每个 AWS 账户中的每个区域随机生成的。

是否可以事先知道数据库标识符?如果是这样,我有办法自动化它吗?

下面是我当前的脚本:

sudo socat TCP-LISTEN:5432,reuseaddr,fork TCP4:env0.**cvhjdfmcu7ed**.us-east-1.rds.amazonaws.com:5432

我目前正在使用下面的脚本将变量输入到我的 userdata tpl 文件中的 terraform

sudo nohup socat TCP-LISTEN:${port},reuseaddr,forkTCP4:${name}.${connection}.${aws_region}.rds.amazonaws.com:${port}

如果这里有人可以建议我可以用来自动化 ${connection} 变量的方法,以便我可以将其部署在任何 aws 帐户和区域中,而不必担心可能会发生什么标识符将是。

最佳答案

您可以使用 aws_db_instance 中可用的 endpoint 属性。或aws_rds_cluster用于访问 Terraform 中的 hostname:port RDS 端点的 Terraform 资源。

如果您不在需要访问端点地址的同一个 Terraform 中创建/管理 RDS 实例,那么您将使用适当的 Terraform datasource 而不是 Terraform resource,它将查找 RDS 信息并使端点值在 Terraform 模板的其余部分中可用。

关于amazon-web-services - AWS RDS 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70188692/

相关文章:

linux - 如何忽略脚本中的标准输入

linux - Bash 多变量赋值

terraform - 从模块访问 list(object) 类型的 for_each 变量

python-3.x - AWS lambda 使用 Python 获取 http 方法

postgresql - AWS postgres 数据库实例未监听 5432 端口

amazon-web-services - 请求超时(HTTP 408): loadbalancer backed by ecs-fargate with nginx image

amazon-web-services - AWS SQS 可以发布到 SNS 还是需要轮询 SQS?

linux - shell脚本中的文本处理

amazon-web-services - 如何使用现有VPC创建aws_instance?

google-cloud-platform - 如何分配 READER 角色 - storage.objects.get