GetInstances
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).
Note: It’s strongly discouraged to use this data source for querying ephemeral instances (e.g. managed via autoscaling group), as the output may change at any time and you’d need to re-run
applyevery time an instance comes up or dies.
Example Usage
using System.Collections.Generic;
using System.Threading.Tasks;
using Pulumi;
using Aws = Pulumi.Aws;
class MyStack : Stack
{
public MyStack()
{
var dict = Output.Create(Initialize());
}
private async Task<IDictionary<string, Output<string>>> Initialize()
{
var testInstances = await Aws.Ec2.GetInstances.InvokeAsync(new Aws.Ec2.GetInstancesArgs
{
Filters =
{
new Aws.Ec2.Inputs.GetInstancesFilterArgs
{
Name = "instance.group-id",
Values =
{
"sg-12345678",
},
},
},
InstanceStateNames =
{
"running",
"stopped",
},
InstanceTags =
{
{ "Role", "HardWorker" },
},
});
var testEip = new List<Aws.Ec2.Eip>();
for (var rangeIndex = 0; rangeIndex < testInstances.Ids.Length; rangeIndex++)
{
var range = new { Value = rangeIndex };
testEip.Add(new Aws.Ec2.Eip($"testEip-{range.Value}", new Aws.Ec2.EipArgs
{
Instance = testInstances.Ids[range.Value],
}));
}
return new Dictionary<string, Output<string>>
{
};
}
}
Coming soon!
import pulumi
import pulumi_aws as aws
test_instances = aws.ec2.get_instances(filters=[{
"name": "instance.group-id",
"values": ["sg-12345678"],
}],
instance_state_names=[
"running",
"stopped",
],
instance_tags={
"Role": "HardWorker",
})
test_eip = []
for range in [{"value": i} for i in range(0, len(test_instances.ids))]:
test_eip.append(aws.ec2.Eip(f"testEip-{range['value']}", instance=test_instances.ids[range["value"]]))import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const testInstances = pulumi.output(aws.ec2.getInstances({
filters: [{
name: "instance.group-id",
values: ["sg-12345678"],
}],
instanceStateNames: [
"running",
"stopped",
],
instanceTags: {
Role: "HardWorker",
},
}, { async: true }));
const testEip: aws.ec2.Eip[] = [];
for (let i = 0; i < testInstances.apply(testInstances => testInstances.ids.length); i++) {
testEip.push(new aws.ec2.Eip(`test-${i}`, {
instance: testInstances.apply(testInstances => testInstances.ids[i]),
}));
}Using GetInstances
function getInstances(args: GetInstancesArgs, opts?: InvokeOptions): Promise<GetInstancesResult>function get_instances(filters=None, instance_state_names=None, instance_tags=None, opts=None)func GetInstances(ctx *Context, args *GetInstancesArgs, opts ...InvokeOption) (*GetInstancesResult, error)public static class GetInstances {
public static Task<GetInstancesResult> InvokeAsync(GetInstancesArgs args, InvokeOptions? opts = null)
}The following arguments are supported:
- Filters
List<Get
Instances Filter Args> 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][1].
- Instance
State List<string>Names A 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 isrunning.- Dictionary<string, string>
A map of tags, each pair of which must exactly match a pair on desired instances.
- Filters
[]Get
Instances Filter 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][1].
- Instance
State []stringNames A 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 isrunning.- map[string]string
A map of tags, each pair of which must exactly match a pair on desired instances.
- filters
Get
Instances Filter[] 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][1].
- instance
State string[]Names A 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 isrunning.- {[key: string]: string}
A map of tags, each pair of which must exactly match a pair on desired instances.
- filters
List[Get
Instances Filter] 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][1].
- instance_
state_ List[str]names A 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 isrunning.- Dict[str, str]
A map of tags, each pair of which must exactly match a pair on desired instances.
GetInstances Result
The following output properties are available:
- Id string
The provider-assigned unique ID for this managed resource.
- Ids List<string>
IDs of instances found through the filter
- Dictionary<string, string>
- Private
Ips List<string> Private IP addresses of instances found through the filter
- Public
Ips List<string> Public IP addresses of instances found through the filter
- Filters
List<Get
Instances Filter> - Instance
State List<string>Names
- Id string
The provider-assigned unique ID for this managed resource.
- Ids []string
IDs of instances found through the filter
- map[string]string
- Private
Ips []string Private IP addresses of instances found through the filter
- Public
Ips []string Public IP addresses of instances found through the filter
- Filters
[]Get
Instances Filter - Instance
State []stringNames
- id string
The provider-assigned unique ID for this managed resource.
- ids string[]
IDs of instances found through the filter
- {[key: string]: string}
- private
Ips string[] Private IP addresses of instances found through the filter
- public
Ips string[] Public IP addresses of instances found through the filter
- filters
Get
Instances Filter[] - instance
State string[]Names
- id str
The provider-assigned unique ID for this managed resource.
- ids List[str]
IDs of instances found through the filter
- Dict[str, str]
- private_
ips List[str] Private IP addresses of instances found through the filter
- public_
ips List[str] Public IP addresses of instances found through the filter
- filters
List[Get
Instances Filter] - instance_
state_ List[str]names
Supporting Types
GetInstancesFilter
Package Details
- Repository
- https://github.com/pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
awsTerraform Provider.