我如何知道Amazon EC2操作何时完成?

Dav*_*bin 5 amazon-ec2 amazon-web-services ec2-ami

除了轮询,我怎么知道长时间运行的Amazon EC2操作何时完成?例如,使用CreateImageAPI函数可能需要几分钟的时间.

现在我这样做:

// 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
Run Code Online (Sandbox Code Playgroud)

我讨厌这个.在打电话之后CreateImage,我想以某种方式得到通知它已经完成并继续前进.这可能吗?我在这个例子中使用的是AWS .NET SDK,但我并不是专门针对C#解决方案.

更新:交叉发布到AWS论坛

bwi*_*ght 3

亚马逊中的某些事件可以配置为向 SNS 主题发送通知。例如,使用自动缩放时,您可以在服务器启动和终止时收到通知。据我所知,没有办法为其他服务(例如 CreateImage)触发这些通知。我过去曾寻找过此类功能,但没有成功。我试图创建一个脚本来按特定顺序启动服务器。我最终只是轮询他们的 API,因为我找不到任何方法来注册这些事件。