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