Use this data source to get IDs or IPs of Amazon EC2 instances to be referenced elsewhere, e.g., to allow easier migration from another management solution or to make it easier for an operator to connect through bastion host(s).
data "aws_instances" "test" {
instance_tags = {
Role = "HardWorker"
}
filter {
name = "instance.group-id"
values = ["sg-12345678"]
}
instance_state_names = ["running", "stopped"]
}
resource "aws_eip" "test" {
count = length(data.aws_instances.test.ids)
instance = data.aws_instances.test.ids[count.index]
}
instance_tags
- (Optional) Map of tags, each pair of which must
exactly match a pair on desired instances.
instance_state_names
- (Optional) List of instance states that should be applicable to the desired instances. The permitted values are: pending, running, shutting-down, stopped, stopping, terminated
. The default value is running
.
filter
- (Optional) One or more name/value pairs to use as filters. There are
several valid keys, for a full reference, check out
describe-instances in the AWS CLI reference.
This data source exports the following attributes in addition to the arguments above:
id
- AWS Region.ids
- IDs of instances found through the filterprivate_ips
- Private IP addresses of instances found through the filterpublic_ips
- Public IP addresses of instances found through the filteripv6_addresses
- IPv6 addresses of instances found through the filterread
- (Default 20m
)