我需要在我的实例终止时收到通知。我知道它可以通过cloudtrail完成,然后使用sns和sqs来获取它的电子邮件,如果你收到终止事件。
有更简单的方法吗?
任何解决方案都会受到赞赏,但我更喜欢使用boto。
答案 0 :(得分:1)
虽然终止实例时无法直接从Amazon EC2收到通知,但有几种方法可以实现:
Auto Scaling 可以在Auto Scaling 管理的实例终止时发送通知。请参阅:Configure Your Auto Scaling Group to Send Notifications
AWS Config 还可以配置为在资源更改时发送简单通知服务(SNS)通知。这将发送许多通知,因此您需要检查并过滤通知以找到指示实例终止的通知。请参阅:Set Up AWS Config Using the Console和Example Amazon SNS Notification and Email from AWS Config中的SNS参考。
Amazon Simple Notification Service(SNS)还可以将消息推送到Amazon Queuing Service(SQS),可以使用 boto python SDK轻松查询。
通过 CloudTrail和CloudWatch Logs 接收通知有些麻烦,因此我建议使用AWS Config方法。
答案 1 :(得分:0)
现在,AWS在AWS CloudWatch的“事件”下引入了“规则”。在您的情况下,您可以选择EC2作为事件选择器,选择SNS或SQS作为目标。
答案 2 :(得分:0)
根据AWS doc: Spot Instance Interruptions,可以合并实例元数据,以便获得终止时间的近似值。您可以围绕它构建任何自定义监视解决方案。
> curl http://169.254.169.254/latest/meta-data/spot/instance-action
{"action": "stop", "time": "2017-09-18T08:22:00Z"}
如果该实例未安排终止,则会返回http:400
。