2012-01-21 13 views
14

Jak uruchomić i zatrzymać instancję amazon EC2 programowo używając aws-sdk w java?Jak programowo uruchomić i zatrzymać wystąpienie Amazon EC2 w java

Każda pomoc jest bardzo ceniona, ponieważ spędziłem dzień, próbując to rozwiązać.

+0

Oto jak go stworzyć; http://stackoverflow.com/a/6504009/477878 –

+0

nie jesteśmy zainteresowani tworzeniem, ale uruchamianiem/zatrzymywaniem istniejącej instancji. więc jest różnica – diya

Odpowiedz

8

Niedawno zaimplementowałem tę funkcję w ramach Bamboo AWS Plugin; to Open Source i code is available on Bitbucket, można znaleźć pełny przykład jak uruchomić/zatrzymać/zrestartować instancję w EC2Task.java (powinna to być osobna klasa, niestety ...).

Na szczęście nie jest to skomplikowane w ogóle, na przykład wystąpienie można uruchomić tak:

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 jest Bamboo specyficzne i waitForTransitionCompletion() jest specyficzny pomocnik wdrożenie do sprawozdania z procesu/rezultatu. Parametr AmazonEC2 ec2 przechodzi przez odniesienie do obiektu AmazonEC2Client za pomocą interfejsu AmazonEC2, co odnosi się do wszystkich odpowiednich sposobów (wśród wielu innych), w szczególności:

Powiązane problemy