获取EC2实例Java API的状态

taz*_*azo 6 amazon-ec2 amazon-web-services

我正在尝试在AWS上自动化一些东西,我正在使用Java API来执行此操作.我能够启动我想要的实例数,但是我无法找到能够获取实例当前状态的正确类或方法(如运行,停止等).

我试过这个

DescribeInstanceStatusRequest describeInstance = new DescribeInstanceStatusRequest().withInstanceIds(instances.get(i).getInstanceId()); DescribeInstanceStatusResult attr = ec2.describeInstanceStatus(describeInstance); List<InstanceStatus> state = attr.getInstanceStatuses();

不确定为什么实例状态是一个列表

有人可以指点我正确的API调用.

提前致谢

taz*_*azo 6

我想到了这个问题.工作代码

DescribeInstanceStatusRequest describeInstanceRequest = new DescribeInstanceStatusRequest().withInstanceIds(i-xxxxxxxx);
DescribeInstanceStatusResult describeInstanceResult = ec2.describeInstanceStatus(describeInstanceRequest);
List<InstanceStatus> state = describeInstanceResult.getInstanceStatuses();
while (state.size() < 1) { 
    // Do nothing, just wait, have thread sleep if needed
    describeInstanceResult = ec2.describeInstanceStatus(describeInstanceRequest);
    state = describeInstanceResult.getInstanceStatuses();
}
String status = state.get(0).getInstanceState().getName();
Run Code Online (Sandbox Code Playgroud)