Как запустить и остановить экземпляр Amazon EC2 программно в Java - PullRequest
14 голосов
/ 21 января 2012

Как мне запустить и остановить экземпляр amazon EC2 программным способом, используя aws-sdk в Java?

Любая помощь очень ценится, поскольку я потратил день, пытаясь разобраться в этом.

Ответы [ 2 ]

9 голосов
/ 21 января 2012

Недавно я реализовал эту функцию в Bamboo AWS Plugin ;это открытый исходный код и код доступен в Bitbucket , вы можете найти полный пример того, как запустить / остановить / перезагрузить экземпляр в EC2Task.java (на самом деле это должен быть отдельный класс,увы ...).

К счастью, это совсем не сложно, например, экземпляр можно запустить так:

private String startInstance(final String instanceId, AmazonEC2 ec2, final BuildLogger buildLogger)
        throws AmazonServiceException, AmazonClientException, InterruptedException
{
    StartInstancesRequest startRequest = new StartInstancesRequest().withInstanceIds(instanceId);
    StartInstancesResult startResult = ec2.startInstances(startRequest);
    List<InstanceStateChange> stateChangeList = startResult.getStartingInstances();
    buildLogger.addBuildLogEntry("Starting instance '" + instanceId + "':");

    // Wait for the instance to be started
    return waitForTransitionCompletion(stateChangeList, "running", ec2, instanceId, buildLogger); }

BuildLogger зависит от Bamboo и waitForTransitionCompletion () - это специфический для реализации помощник, который сообщает о процессе / результате.Параметр AmazonEC2 ec2 передает ссылку на объект AmazonEC2Client посредством интерфейса AmazonEC2 , который определяет все соответствующие методы (среди многих других), в частности:

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

Если вы уже использовали AWS API , это просто вызов AmazonEC2Client объекта. Используйте следующие методы

Кроме того, вы, возможно, знаете, что механизм запуска / остановки работает только для изображений с корневым устройством, поддерживаемым EBS.

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