【问题标题】:How to use EC2 api to tell instance status?如何使用 EC2 api 告诉实例状态?
【发布时间】:2016-01-04 05:16:22
【问题描述】:

在 AWS 控制台中,您可以查看哪些实例在线、哪些实例正在关闭以及哪些实例已关闭。我正在尝试在我的应用程序中复制此功能,但 EC2 api 似乎不配合。

这就是我正在做的事情:

            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();
                ...
            }

当实例在线时,这可以正常工作,但一旦我请求关闭它,该实例就会从信息中消失。

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

【问题讨论】:

    标签: c# amazon-web-services amazon-ec2 aws-sdk


    【解决方案1】:

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

    包括所有实例

    当为 true 时,包括所有实例的运行状况。假的时候, 仅包含正在运行的实例的健康状况。

    默认值:假

    代码示例:

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

    参考:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      相关资源
      最近更新 更多