【问题标题】:How can I list all EC2 instances using Amazon .NET library?如何使用 Amazon .NET 库列出所有 EC2 实例?
【发布时间】:2014-04-09 17:28:09
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

使用AmazonEC2Client.DescribeInstances Method

result = client.DescribeInstances();

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

【讨论】:

  • 链接已失效
【解决方案2】:

在 AWS 和 EC2 Speak 中,当您想要获取某物的列表或了解有关它的更多信息时,这是一个“描述”调用。

例如:

...以及您正在寻找的那个:

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

【讨论】:

    【解决方案3】:

    下面是示例代码,您可以通过它获取 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 地址列表。希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 2013-02-20
      • 2023-03-04
      相关资源
      最近更新 更多