Помимо опроса, как узнать, когда длительная операция 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