如何使用EC2 api来告知实例状态

本文关键字:实例 状态 何使用 EC2 api | 更新日期: 2023-09-27 18:28:53

在AWS控制台中,您可以看到哪些实例处于联机状态,哪些实例正在关闭,哪些实例已关闭。我试图在我的应用程序中复制这个功能,但EC2api似乎不配合。

我在做什么:

            DescribeInstanceStatusRequest rr=new DescribeInstanceStatusRequest();
            rr.InstanceIds=new List<string>(new[]{instanceId});
            var status = ec2.DescribeInstanceStatus(rr);
            List<InstanceStatus> statusses = new List<InstanceStatus>();
            foreach (var s in status.InstanceStatuses)
            {
                if (s.InstanceId == instanceId)
                {
                    statusses.Add(s);
                }
            }
            if (statusses.Any())
            {
                var instanceStatus = statusses.First();
                ...
            }

当实例处于联机状态时,这很好,但一旦我请求关闭它,实例就会从信息中消失。

如何获取所有实例的信息,包括关闭、关闭和终止的实例?

如何使用EC2 api来告知实例状态

默认情况下,DescribeInstanceStatus只捕获正在运行的实例。您可以将请求中的属性IncludeAllInstances设置为true来更改此属性。来自文件:

IncludeAllInstances

如果为true,则包括所有实例的运行状况。当为假时,仅包括正在运行的实例的运行状况。

默认值:错误

代码示例:

DescribeInstanceStatusRequest rr = new DescribeInstanceStatusRequest()
{
    IncludeAllInstances = true
};

参考:

  • AWS文档-描述实例状态请求