如何获取使用 terraform 制作的 ELB、RDS 的端点

neg*_*aro 4 terraform

我正在尝试通过获取使用 terraform 制作的 ELB、RDS 的端点来创建要在应用程序中使用的环境变量。

目前我正在尝试使用 aws cli 获取端点,如下所示,但有更简单的方法吗?

aws rds describe-db-instances --db-instance-identifier xxxx | jq '.DBInstances[].Endpoint.Address'
aws elb describe-tags --load-balancer-name xxxx | jq '.TagDescriptions[].LoadBalancerName'
Run Code Online (Sandbox Code Playgroud)

比如如何获取在terraform上创建的AWS stack的endpoint

BMW*_*BMW 5

请查看您所针对的资源的 terraform 文档。

aws_db_instance

aws_elb

在每个文档中,有一个部分叫做Attributes Reference,我个人称它们为available output variables

因此,如果您需要 terraform 的 rds 端点作为输出

resource "aws_db_instance" "default" {
  allocated_storage    = 10
  storage_type         = "gp2"
  engine               = "mysql"
  engine_version       = "5.6.17"
  instance_class       = "db.t1.micro"
  name                 = "mydb"
  username             = "foo"
  password             = "bar"
  db_subnet_group_name = "my_database_subnet_group"
  parameter_group_name = "default.mysql5.6"
}

output "rds_endpoint" {
  value = "${aws_db_instance.default.endpoint}"
}
Run Code Online (Sandbox Code Playgroud)

你应该对 ELB 做同样的事情。

有时,并非所有属性都在 terraform 文档中更新,您可以按照以下答案找到正确的输出变量

如何通过 terraform 获取现有 ec2 实例的实例 ID/arn?