2012-01-21 20 views
14

java'da aws-sdk'yi kullanarak bir amazon EC2 örneğini nasıl başlatıp durdururum?Java EC2 örneğini java'da programatik olarak başlatma ve durdurma

Bunu düzeltmeye çalışırken bir günümü geçirdiğim için herhangi bir yardım çok takdir edilmektedir.

+0

İşte nasıl bir tane oluşturulur? http://stackoverflow.com/a/6504009/477878 –

+0

Oluşturma ile ilgilenmiyoruz, ancak zaten var olan bir örneği başlatıp/durdurmak için değiliz. yani bir fark var – diya

cevap

8

Kısa bir süre önce bu işlevi Bamboo AWS Plugin; Açık Kaynak ve code is available on Bitbucket, örneğini başlatmak/durdurmak/yeniden başlatmak için bir örneğini bulabilirsiniz EC2Task.java (aslında ayrı bir sınıf olmalıdır, ...).

Neyse bu hiç de karmaşık değil, örneğin, bir örneği şöyle başlatılabilir:

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 Bambu özeldir ve waitForTransitionCompletion() süreç/sonucu geri bildirmek için bir uygulama özgü bir yardımcıdır. AmazonEC2 ec2 parametre özel olarak ise, (diğerleri arasında), tüm ilgili yöntemleri tanımlayan AmazonEC2 arabirimi vasıtasıyla bir AmazonEC2Client nesnesi için bir başvuru geçirir:

6

Zaten AWS API kullandıysanız, AmazonEC2Client nesnesinde basit bir çağrıdır. aşağıdaki yöntemleri

kullanın, eğer başlangıç ​​bilerek olabilir/mekanizması durdurmak EBS tarafından desteklenen kök cihazla görüntüler için sadece çalışır.

İlgili konular