如何使用Amazon .NET库列出所有EC2实例?

时间:2014-03-06 20:32:16

标签: c# amazon-ec2 amazon ip-address

我正在尝试使用.NET library以编程方式访问我的所有EC2实例。

如何获取所有实例的列表,并获取其各自的IP地址?

3 个答案:

答案 0 :(得分:5)

使用AmazonEC2Client.DescribeInstances Method

result = client.DescribeInstances();

foreach (var instance in result.Reservations[0].Instances) {
    privateIps.add(instance.PrivateIpAddress);
}

答案 1 :(得分:3)

在AWS和EC2中说,如果您想获得某些内容的列表,或者想了解更多相关内容,那就是“描述”调用。

例如:

......以及你特别想要的那个:

DescribeInstances调用将返回一个具有每个实例的IP地址的数据结构。请注意,这是一个PAGED API,这意味着如果你有很多实例(> 1000),你需要继续调用它,提供相关的页面令牌,以获得完整的列表。

答案 2 :(得分:0)

以下是示例代码,通过该示例代码,您可以获取InstanceID列表:

_client = new AmazonEC2Client(awsAccessKeyId, awsSecretAccessKey, RegionEndpoint.USEast2);
        bool done = false;
        var InstanceIds = new List<string>();
        DescribeInstancesRequest request = new DescribeInstancesRequest();
        while (!done)
        {
            DescribeInstancesResponse response = await _client.DescribeInstancesAsync(request);

            foreach ( Reservation reservation in response.Reservations)
            {
                foreach (Instance instance in reservation.Instances)
                {
                    InstanceIds.Add(instance.InstanceId);
                }
            }

            request.NextToken= response.NextToken;

            if (response.NextToken == null)
            {
                done = true;
            }
        }

您可以将instance.InstanceId替换为instance.PublicIpAddress以获取IP地址列表。希望这会有所帮助!