2012-01-21 9 views
14

Come si avvia e si arresta un'istanza amazon EC2 a livello di codice utilizzando aws-sdk in java?Come avviare e interrompere un'istanza Amazon EC2 a livello di codice in java

Qualsiasi aiuto è molto apprezzato poiché ho trascorso un giorno mentre cercavo di risolvere questo problema.

+0

Ecco come crearne uno; http://stackoverflow.com/a/6504009/477878 –

+0

non siamo interessati alla creazione, ma per avviare/fermare un'istanza già esistente. quindi c'è una differenza – diya

risposta

8

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:

6

Se è già stato utilizzato AWS API, è semplice chiamare l'oggetto AmazonEC2Client. Utilizzare i seguenti metodi

Inoltre, si potrebbe essere conoscendo la start/stop meccanismo funziona solo per le immagini con dispositivo di root sostenuta da EBS.

Problemi correlati