2012-01-12 10 views
6

Estoy tratando de automatizar algunas cosas en AWS y estoy usando API de Java para hacer esto. Puedo iniciar el número de instancias que deseo, pero no puedo encontrar la clase o el método correctos que puedan buscarme el estado actual de la instancia (como ejecutar, detener etc.).Obteniendo el estado de la instancia de EC2 API de Java

yo probamos este

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

no está seguro de por qué el estado de instancia es una lista

por favor alguien puede apuntar a la derecha llamada a la API.

Gracias de antemano

Respuesta

6

Me pareció el problema. código

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

Ahora, ¿cómo espero hasta que se haya iniciado Tomcat en esa instancia de EC2? . –

+1

Y si desea obtener el estado de todas las instancias que puede hacer 'DescribeInstanceStatusRequest petición = new DescribeInstanceStatusRequest() withIncludeAllInstances (true) \t \t \t \t .withInstanceIds (instanceIds);' –

3

que solo estaba buscando trabajo en este tema

De la documentación (http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstanceStatus.html),

DescribeInstanceStatus devuelve información sólo para los casos en el estado de ejecución.

Por lo que puede estar esperando por siempre si la máquina se detiene en lugar de reiniciarse.

DescribirInstancias (http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html) devuelve el estado de todas las máquinas.

+0

este es un caso de uso específico y que sabía que esto se reinicia o inicia y no se detiene. Esta pregunta se publicó hace un tiempo y no estoy seguro de si las API de AWS han cambiado. – tazo

Cuestiones relacionadas