在AWS控制台中,您可以查看哪些实例处于联机状态,正在关闭的实例以及关闭的实例.我正在尝试在我的应用程序中复制此功能,但EC2 api似乎没有合作.
这是我正在做的事情:
DescribeInstanceStatusRequest rr=new DescribeInstanceStatusRequest(); rr.InstanceIds=new List(new[]{instanceId}); var status = ec2.DescribeInstanceStatus(rr); List statusses = new List (); foreach (var s in status.InstanceStatuses) { if (s.InstanceId == instanceId) { statusses.Add(s); } } if (statusses.Any()) { var instanceStatus = statusses.First(); ... }
当实例在线时,这可以正常工作,但是一旦我请求关闭它,实例就会从信息中消失.
如何获取所有实例的信息,包括关闭,关闭和终止的实例?
默认情况下,DescribeInstanceStatus仅捕获正在运行的实例.您可以将IncludeAllInstances
请求中的属性设置为true以更改此设置.从文档:
IncludeAllInstances
如果为true,则包括所有实例的运行状况.如果为false,则仅包括运行实例的运行状况.
默认值:false
代码示例:
DescribeInstanceStatusRequest rr = new DescribeInstanceStatusRequest() { IncludeAllInstances = true };
参考:
AWS文档 - DescribeInstanceStatusRequest