的EC2实例的Java API获取状态实例、状态、API、Java

2023-09-11 08:43:52 作者:半面妆

我想自动在AWS上的一些东西,我使用的Java API来做到这一点。我能够启动实例我想要的数字,但我无法找到正确的类或方法,可以给我拿实例的当前状态(如运行,停止等)。

I am trying to automate some stuff on AWS and I am using Java API to do this. I am able to launch number of instances I want, but I am unable to find the right class or method that can fetch me the current state of the instance (like running, stopped etc).

我想这

DescribeInstanceStatusRequest describeInstance =新DescribeInstanceStatusRequest()withInstanceIds(instances.get(我).getInstanceId())。 DescribeInstanceStatusResult ATTR = ec2.describeInstanceStatus(describeInstance); 名单< InstanceStatus>状态= attr.getInstanceStatuses();

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

不知道为什么实例状态是一个列表

not sure why the instance status is a list

有人可以请点我到正确的API调用。

Can someone please point me to right API call.

在此先感谢

推荐答案

我想这个问题。工作code

I figured the issue. working code

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