Недавно я реализовал эту функцию в 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 , который определяет все соответствующие методы (среди многих других), в частности: