2012-01-21 155 views
14

如何在java中使用aws-sdk以編程方式啓動和停止亞馬遜EC2實例?如何在java中以編程方式啓動和停止Amazon EC2實例

任何幫助都非常感謝,因爲我花了一整天的時間試圖解決這個問題。

+0

以下是如何創建一個; http://stackoverflow.com/a/6504009/477878 –

+0

我們對創建不感興趣,但是啓動/停止已經存在的實例。所以有區別 – diya

回答

8

我最近在Bamboo AWS Plugin內實現了這個功能;它是開放源代碼和code is available on 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是竹具體waitForTransitionCompletion()是實現特有的助手彙報的過程/結果。所述AmazonEC2 ec2參數傳送由AmazonEC2接口,它定義了所有相關方法(以及很多其他)的裝置中的參考到AmazonEC2Client對象,特別是:

相關問題