从数据 ec2_instance/'s?
Make a list from data ec2_instance/'s?
我有一个服务器列表存储为本地列表
locals {
my_list = [
"server1",
"server2",
"server3",
"server4"
]
}
我可以使用上面的本地变量为每个服务器获取数据吗?没有为每个服务器定义单独的数据块。
然后我可以将这些属性放在列表中吗?最后,对于下面仅针对一台服务器的示例,我将如何使用它。 (下面的例子是一个云手表报警维度)
dimensions = {
instanceid = data.aws_instance.server1.instance_id
}
您可以使用 my_list
提供过滤器 instance-id
(假设 server1
是实例 ID):
data "aws_instances" "my_instances" {
filter {
name = "instance-id"
values = local.my_list
}
}
如果 my_list
包含 实例名称 ,那么您可以使用:
data "aws_instance" "my_instances" {
for_each = toset(local.my_list)
instance_tags = {
Name = each.key
}
}
并获取实例 ID 的 list
:
values(data.aws_instance.my_instances)[*].id
我有一个服务器列表存储为本地列表
locals {
my_list = [
"server1",
"server2",
"server3",
"server4"
]
}
我可以使用上面的本地变量为每个服务器获取数据吗?没有为每个服务器定义单独的数据块。
然后我可以将这些属性放在列表中吗?最后,对于下面仅针对一台服务器的示例,我将如何使用它。 (下面的例子是一个云手表报警维度)
dimensions = {
instanceid = data.aws_instance.server1.instance_id
}
您可以使用 my_list
提供过滤器 instance-id
(假设 server1
是实例 ID):
data "aws_instances" "my_instances" {
filter {
name = "instance-id"
values = local.my_list
}
}
如果 my_list
包含 实例名称 ,那么您可以使用:
data "aws_instance" "my_instances" {
for_each = toset(local.my_list)
instance_tags = {
Name = each.key
}
}
并获取实例 ID 的 list
:
values(data.aws_instance.my_instances)[*].id