Как узнать, что операция Amazon EC2 завершена?

Помимо опроса, как узнать, когда длительная операция Amazon EC2 завершена? Например, использование API-функции CreateImageможет занять несколько минут.

Прямо сейчас я делаю это:

// 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

Я ненавижу это. После вызова CreateImageя хотел бы просто как-то получить уведомление о том, что все сделано, и двигаться дальше. Это возможно? В этом примере я использую AWS .NET SDK, но я не ищу конкретно решение C#.

ОБНОВЛЕНИЕ: Опубликовано на форумах AWS

5
задан David Rubin 3 April 2012 в 21:40
поделиться