Wie kann ich neben der Abfrage feststellen, wann eine lang andauernde Amazon EC2-Operation abgeschlossen ist? Beispielsweise kann die Verwendung der API-Funktion CreateImage
mehrere Minuten dauern.Woher weiß ich, wann ein Amazon EC2-Vorgang abgeschlossen ist?
Im Moment mache ich das:
// 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
ich hasse. Nach dem Anruf CreateImage
möchte ich nur irgendwie benachrichtigt werden, dass alles fertig ist und weitermachen. Ist das möglich? Ich verwende das AWS .NET SDK in diesem Beispiel, aber ich suche nicht speziell nach einer C# -Lösung.
UPDATE: Cross-Gepostet zum AWS Forums