我正在编写代码以使用适用于 AWS 的 .net SDK 列出实例 ID 和实例类型。我知道我需要使用 DescribeInstancesRequest 类。我还认为我需要使用一个 ArrayList 来存储字符串输出和一个 foreach 循环来获取所有实例。我只是很难把它放在一起!像在控制台中列出实例 ID 这样简单的事情对我来说会很有帮助。
有没有人做过类似的事情?
更新 10/13/2012
我正在朝着我需要去的地方迈出很小的一步。我是 .net AWS SDK 的新手,所以这是一个非常缓慢的过程。下面的代码计算我拥有的实例数并返回它。现在我只需要弄清楚如何让它列出实际的实例 ID。
有任何想法吗?
AmazonEC2 ec2 = new AmazonEC2Client();
DescribeInstancesRequest request = new DescribeInstancesRequest();
DescribeInstancesResponse res = ec2.DescribeInstances(request);
Console.WriteLine(res.DescribeInstancesResult.Reservation.Count);
Console.Read();
最佳答案
不是为了打败死马,而是为了我的任务,我必须在 HTML 表中打印出实例 ID 和实例类型。如果您想在网站上托管它,这可能很有用。您需要做的就是更改 StreamWriter
的路径.这是我草率但成品。
AmazonEC2 ec2 = new AmazonEC2Client();
DescribeInstancesRequest req = new DescribeInstancesRequest();
List<Amazon.EC2.Model.Reservation> result = ec2.DescribeInstances(req).DescribeInstancesResult.Reservation;
using (StreamWriter writer = new StreamWriter(@"C:\Users\Ethan\Desktop\InstanceOutput.html")) //change this output to a local address if testing the code
{
writer.Write("<table border=1><tbody><tr><th>Instance ID</th><th>Instance Type</th></tr>");
foreach (Amazon.EC2.Model.Reservation reservation in result)
{
foreach (Amazon.EC2.Model.RunningInstance runningInstance in reservation.RunningInstance)
{
writer.WriteLine("<tr><td>" + runningInstance.InstanceId + "</td><td>" + runningInstance.InstanceType + "</td></tr>");
}
}
writer.Write("</tbody></table>");
}
所以请记住,我对此很陌生,有人可能会想出一个更干净、更高效、更好的答案。这就是我如何在控制台中打印实例 ID 和实例类型。
AmazonEC2 ec2 = new AmazonEC2Client();
DescribeInstancesRequest req = new DescribeInstancesRequest();
List<Amazon.EC2.Model.Reservation> result = ec2.DescribeInstances(req).DescribeInstancesResult.Reservation;
foreach (Amazon.EC2.Model.Reservation reservation in result)
{
foreach (Amazon.EC2.Model.RunningInstance runningInstance in reservation.RunningInstance)
{
Console.WriteLine(runningInstance.InstanceId);
Console.WriteLine(runningInstance.InstanceType);
}
}
关于.net - 在 AWS .NET SDK 中列出实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12871033/