2012-04-03 14 views
5

Oltre ai polling, come è possibile stabilire quando un'operazione EC2 di Amazon con esecuzione prolungata è completa? Ad esempio, l'utilizzo della funzione API CreateImage può richiedere più minuti.Come faccio a sapere quando un'operazione di Amazon EC2 è completa?

In questo momento mi sto facendo questo:

// MAKE THE API CALL 
var createRequest = new CreateImageRequest().WithInstanceId("i-123456").WithName("MyNewAMI"); 
var createResponse = myAmazonEC2Client.CreateImage(createRequest); 
var imageId = createResponse.CreateImageResult.ImageId; 

// ICKY POLLING CODE 
bool isImaging = true; 
while (isImaging) 
{ 
    var describeRequest = new DescribeImagesRequest().WithImageId(imageId); 
    var describeResponse = myAmazonEC2Client.DescribeImages(describeRequest); 
    isImaging = describeResponse.DescribeImagesResult.Image.Single().ImageState == "pending"; 
    Thread.Sleep(10000); // sleep for 10 seconds 
} 

// CreateImage IS COMPLETE; MOVE ON WITH OUR WORK 

Odio questo. Dopo aver chiamato CreateImage, mi piacerebbe ricevere una notifica in qualche modo che è tutto fatto e andare avanti. È possibile? In questo esempio sto utilizzando l'SDK di AWS .NET, ma non sto cercando specificamente una soluzione C#.

UPDATE: Cross-pubblicato nel AWS Forums

risposta

3

Alcuni eventi in Amazzonia può essere configurato per inviare notifiche a uno SNS discussione. Ad esempio quando si utilizza il ridimensionamento automatico è possibile avere notifiche quando un server viene avviato e terminato. Per quanto ne so non c'è modo di attivare queste notifiche per altri servizi come CreateImage. Ho cercato questo tipo di funzionalità in passato senza fortuna. Stavo cercando di farlo per creare uno script che avrebbe avviato i server in un ordine specifico. Mi sono limitato a eseguire il polling delle API perché non riuscivo a trovare alcun modo per registrarmi a quegli eventi.

0

James Hunter Ross risposto a questa domanda over on the AWS Forums come segue:

Polling è. Detto questo, dato che hai avviato un programma C#, perché non lasciare che generi un processo di polling che ti avverta come desideri? Sembra che tu abbia quasi finito, per certi aspetti.

(Naturalmente, sarebbe bello se tale funzionalità è stata costruita-in AWS.)

non ero in grado di trovare un profilo StackOverflow per lui, ma se si fa vedere io modifica questo per dargli credito.

Problemi correlati