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

标签 amazon-ec2 amazon-web-services ec2-ami

除了轮询 之外,如何判断长时间运行的 Amazon EC2 操作何时完成?例如,使用 CreateImage API 函数可能需要几分钟的时间。

现在我正在这样做:

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

最佳答案

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

关于amazon-ec2 - 我如何知道 Amazon EC2 操作何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10000757/

相关文章:

python-2.7 - 如何使用 boto3 get_object (Python 2.7) 从 S3 获取多个对象

node.js - 本地运行的 Mocha 测试无法在 Jenkins 上运行(环境问题)

linux - 在找不到的 EC2 Linux 命令上安装 Composer

javascript - 验证从 Web 应用程序访问 AWS 的首选方式是什么

amazon-web-services - 安全组 'ALB-sg' 无效

amazon-web-services - 什么是 AMI ImageType?

linux - AMI 上的 AWS EC2 apache 日志文件位置

amazon-web-services - 如何查看所有区域中所有正在运行的 Amazon EC2 实例?

testing - VirtualBox可以在Amazon EC2实例下执行吗?

jenkins - 无法通过jenkins连接到AWS从站