Ho recentemente implementato questa funzionalità all'interno di Bamboo AWS Plugin; è Open Source e lo code is available on Bitbucket, puoi trovare un esempio completo su come avviare/fermare/riavviare un'istanza entro EC2Task.java (dovrebbe essere una classe separata in realtà, ahimè ...).
Per fortuna questo non è per nulla complesso, ad esempio, un'istanza può essere avviato in questo modo:
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 è bambù specifico e waitForTransitionCompletion() è un aiutante specifica implementazione di riferire sul processo/risultato. Il parametro AmazonEC2 ec2
passa il riferimento a un oggetto AmazonEC2Client mediante l'interfaccia AmazonEC2, che definisce tutti i metodi pertinenti (tra molti altri), in particolare:
fonte
2012-01-21 10:51:54
Ecco come crearne uno; http://stackoverflow.com/a/6504009/477878 –
non siamo interessati alla creazione, ma per avviare/fermare un'istanza già esistente. quindi c'è una differenza – diya