首页 > 解决方案 > Terraform 是否会公开 ECS 启动类型中使用的 EC2 实例的实例 ID?

问题描述

我正在使用 EC2 启动类型将应用程序部署到 ECS 集群。我在这里取得了一些成功,并且在集群前面架起了一个负载均衡器,并且实例接收和响应流量很好。

对于一个单独的任务,我还希望能够单独寻址实例,如果我有实例 ID,Terraform 可以让我这样做,但我没有看到实例 ID 是aws_launch_configuration.

有没有办法提取 ECS 集群中使用的 EC2 实例的实例 ID?

标签: amazon-ec2terraformamazon-ecs

解决方案


您可以使用aws_instance数据源来执行此操作

在其中,您可以指定一些过滤器来检索任何 EC2 实例。

例如,假设您的启动配置(顺便说一句,您应该使用启动模板,它基本上是具有更多功能的“启动配置 v2”)为您的 ECS 容器实例分配了一些标签,其中一个是Name:ECSClusterX. 知道这一点后,您可以通过以下方式检索所述 EC2 实例:

data "aws_instance" "ecs-instance" {
  filter {
    name   = "tag:Name"
    values = ["ECSClusterX"]
  }
}

然后您可以通过以下方式检索找到的实例的 id aws_instance.ecs-instance.id:。

就是这样,你们都准备好了!


推荐阅读