Получение состояния Java API экземпляра EC2 - PullRequest
6 голосов
/ 12 января 2012

Я пытаюсь автоматизировать некоторые вещи в AWS, и я использую Java API для этого. Я могу запустить нужное количество экземпляров, но не могу найти правильный класс или метод, который может получить мне текущее состояние экземпляра (например, запущен, остановлен и т. Д.).

Я пробовал это

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

не уверен, почему статусом экземпляра является список

Может кто-нибудь указать мне правильный вызов API.

Заранее спасибо

Ответы [ 2 ]

6 голосов
/ 12 января 2012

Я понял проблему.рабочий код

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();
3 голосов
/ 16 мая 2012

Я только что посмотрел на эту проблему

Из документации (http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstanceStatus.html),

DescribeInstanceStatus возвращает информацию только для экземпляров в состоянии выполнения.

Таким образом, вы можете ждать вечно, если машина остановлена, а не перезапускается.

DescribeInstances (http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeInstances.html) возвращает состояние всех машин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...