如何使用 Amazon .NET 库列出所有 EC2 实例?
Posted
技术标签:
【中文标题】如何使用 Amazon .NET 库列出所有 EC2 实例?【英文标题】:How can I list all EC2 instances using Amazon .NET library? 【发布时间】:2014-04-09 17:28:09 【问题描述】:我正在尝试使用 .NET library 以编程方式访问我的所有 EC2 实例。
如何获取所有实例的列表,并获取它们各自的 IP 地址?
【问题讨论】:
Listing Instances in AWS .NET SDK的可能重复 【参考方案1】:使用AmazonEC2Client.DescribeInstances Method
result = client.DescribeInstances();
foreach (var instance in result.Reservations[0].Instances)
privateIps.add(instance.PrivateIpAddress);
【讨论】:
链接已失效【参考方案2】:在 AWS 和 EC2 Speak 中,当您想要获取某物的列表或了解有关它的更多信息时,这是一个“描述”调用。
例如:
DescribeImages DescribeVolumes DescribeSnapshots...以及您正在寻找的那个:
DescribeInstancesDescribeInstances 调用将返回一个数据结构,其中包含每个实例的 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 地址列表。希望这会有所帮助!
【讨论】:
以上是关于如何使用 Amazon .NET 库列出所有 EC2 实例?的主要内容,如果未能解决你的问题,请参考以下文章
如何包含适用于 Node.js 的 Amazon EC2 库?
如何在 .NET 中以编程方式启动 Amazon EC2 实例
如何在 Amazon EC2 上获取所有公共 IP 及其实例名称的列表
如何在 Amazon Web Services EC2 中安装 Tomcat