在Terraform中创建现有aws_实例资源的列表

在Terraform中创建现有aws_实例资源的列表,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我目前正试图找到一种创建aws_实例类型资源列表的方法 EC2已经配置好。我使用Terraform导入了它们,但我希望将它们作为一个列表,这样我就可以同时对它们执行remote exec之类的操作 我只是不确定如何声明一个列表类型变量来包含所有现有的aws_实例资源 任何帮助都将不胜感激!干杯 编辑: 如前所述,我将添加一些盐酸: 如前所述,每个实例都是从现有aws配置导入的。 这意味着我已经有了每个ec2的aws_实例块 resource "aws_instance" &q

我目前正试图找到一种创建aws_实例类型资源列表的方法

EC2已经配置好。我使用Terraform导入了它们,但我希望将它们作为一个列表,这样我就可以同时对它们执行remote exec之类的操作

我只是不确定如何声明一个列表类型变量来包含所有现有的aws_实例资源

任何帮助都将不胜感激!干杯

编辑: 如前所述,我将添加一些盐酸:

如前所述,每个实例都是从现有aws配置导入的。 这意味着我已经有了每个ec2的aws_实例块

resource "aws_instance" "ec2_1" {
      *truncated*
}
我想知道是否有办法获取这些资源,并将它们附加到列表中

我想创建此列表,以便使用Provisioner remote exec一次对所有实例执行操作

我试着创建一个变量,但恐怕它不能这样工作:

variable "ec2_list" {
        type = list
        default = [aws_instance.ec2_1, aws_instance.ec2_2,...]
}
但是main.tf中的变量不能用于变量

我只是想知道你是否可以制作一个通用资源,在下面创建一个列表。
如果你知道什么,请告诉我。

这是一次性的吗?Terraform可能不是您想要用于这类事情的工具,因为它主要是关于定义资源的生命周期的。您最好使用Ansible(可以使用动态清单)或类似ClusterSSH的东西。如果您能扩展您的问题来解释您的用例,这将有所帮助。您应该发布您迄今为止尝试过的内容的相关部分(代码)。我已经添加了其他信息,如果您能查看,我将非常感谢。您可以使用获取符合某些条件(或所有实例)的实例列表但是如果你想对实例运行特别的操作,我会重复Terraform不是一个很好的工具。你可以从导出的属性创建一个自定义输出来聚合这些实例的列表。在您的案例中,如何具体实现这一点需要对您的问题中的实例资源进行更具体的配置。