Amazon web services 自动设置实例以连接到数据库群集终结点

Amazon web services 自动设置实例以连接到数据库群集终结点,amazon-web-services,terraform,terraform-provider-aws,Amazon Web Services,Terraform,Terraform Provider Aws,我正在寻找一种方法,使用terraform为实例提供一个配置文件,该文件包含自动连接到数据库集群的端点。我正在使用一个aws\u rds\u cluster资源,从中可以使用表达式aws\u rds\u cluster.my cluster.endpoint获取端点。然后,我想设置用aws\u实例资源实例化的机器,以便将该表达式的值存储在文件/DBConfig.sh中 DBConfig.sh文件的内容如下所示: #!/bin/bash ENDPOINT=<$aws_rds_cluster

我正在寻找一种方法,使用terraform为实例提供一个配置文件,该文件包含自动连接到数据库集群的端点。我正在使用一个
aws\u rds\u cluster
资源,从中可以使用表达式
aws\u rds\u cluster.my cluster.endpoint
获取端点。然后,我想设置用
aws\u实例
资源实例化的机器,以便将该表达式的值存储在文件
/DBConfig.sh

DBConfig.sh
文件的内容如下所示:

#!/bin/bash

ENDPOINT=<$aws_rds_cluster.my-cluster.endpoint$>
READER_ENDPOINT=<$aws_rds_cluster.my-cluster.reader_endpoint$>
#/bin/bash
端点=
读卡器终端=
说实话,一旦我成功地达到这一点,我希望能够对由
aws\u launch\u配置创建的机器执行相同的操作


这是用terraform可以做到的吗?如果没有,我可以使用哪些其他工具来实现这种自动化?谢谢你的帮助

实现这一目标的方法很少。我想所有这些都会涉及

例如,您可以有
aws\u实例
,其中包含
user\u数据
,如下所示:

resource "aws_instance" "web" {

  # other atrributes
  
  user_data = <<-EOL
  #!/bin/bash
  
  cat >./DBConfig.sh <<-EOL2
  #!/bin/bash
  ENDPOINT=${aws_rds_cluster.my-cluster.endpoint}
  READER_ENDPOINT=${aws_rds_cluster.my-cluster.reader_endpoint}
  EOL2
  
  chmod +x ./DBConfig.sh
  
  EOL
}
资源“aws\u实例”“web”{
#其他分布

user\u data=谢谢。我逐渐意识到,在
aws\u launch\u配置
aws\u launch\u模板
资源上还有一个
user\u data
属性。这意味着不需要复杂的ami派生。@Dalzhim是的。并不总是需要ami。但是自定义ami仍然很有用,尤其是在您有大量de的情况下安装在用户_数据中的待定项。在这种情况下,使用自定义AMI,您可以节省大量配置实例的时间。