Amazon ec2 获取EC2实例Java API的状态

Amazon ec2 获取EC2实例Java API的状态,amazon-ec2,amazon-web-services,Amazon Ec2,Amazon Web Services,我正在尝试自动化AWS上的一些东西,我正在使用JavaAPI来实现这一点。我可以启动所需数量的实例,但找不到可以获取实例当前状态(如运行、停止等)的正确类或方法 我试过这个 descripbeInstanceStatusRequest descripbeInstance=new descripbeInstanceStatusRequest().withInstanceId(instances.get(i).getInstanceId()); describeInstanceStatus结果属性=

我正在尝试自动化AWS上的一些东西,我正在使用JavaAPI来实现这一点。我可以启动所需数量的实例,但找不到可以获取实例当前状态(如运行、停止等)的正确类或方法

我试过这个

descripbeInstanceStatusRequest descripbeInstance=new descripbeInstanceStatusRequest().withInstanceId(instances.get(i).getInstanceId());
describeInstanceStatus结果属性=ec2。describeInstanceStatus(describeInstance);
列表状态=attr.getInstanceStatus()

不确定实例状态为何为列表

有人能告诉我正确的API调用吗


提前谢谢

我想好了问题所在。工作代码

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();
DescribeInstanceStatusRequest describeInstanceRequest=新的DescribeInstanceStatusRequest()。带有InstanceId(i-xxxxxxxx);
DescribeInstanceStatusResult describeInstanceResult=ec2.describeInstanceStatus(describeInstanceRequest);
列表状态=describeInstanceResult.GetInstanceStatus();
而(state.size()<1){
//什么也不做,只是等待,如果需要,让线程睡眠
describeInstanceResult=ec2.describeInstanceStatus(describeInstanceRequest);
state=descripbeInstanceResult.getInstanceStatus();
}
字符串状态=state.get(0.getInstanceState().getName();

我只是在看这个问题

从文档()中

DescribeInstanceStatus仅返回处于运行状态的实例的信息

因此,如果机器停止而不是重新启动,您可能会一直等待


descripbeInstances()返回所有计算机的状态

现在,如何等待Tomcat在该EC2实例上启动?如果要获取所有实例的状态,可以执行
descripbeInstanceStatusRequest=new descripbeInstanceStatusRequest()。withIncludeAllInstances(true)。WithInstanceId(InstanceId)这是一个特定的用例,我知道这是重新启动或启动,而不是停止。这个问题是前一段时间发布的,我不确定AWS API是否发生了变化。