创建快照是ECS运维的常见操作。在发生故障或者误操作后,最近的一份磁盘快照将是系统管理员的救命稻草。尤其是数据误删除,阿里云为保证用户数据安全,对用户主动删除的数据是无法提供恢复手段的。定期创建快照作为数据备份是使用ECS的一个最佳实践。
快照创建完成事件
创建快照有可能很耗时,比如大磁盘首次创建快照,创建快照的耗时可能以小时甚至以天计。在以前用户只能定期查看控制台中的快照创建进度。如果是自动化运维程序,则要使用OpenAPI不断轮询快照状态。轮询产生了很多不必要的资源消耗。如果轮询间隔过长的话则不能及时地获得创建结果。
ECS现已支持快照创建完成的事件通知。在磁盘快照创建完成(包括成功和失败两种结果)时,ECS会发出磁盘快照完成事件。当前仅在手动快照创建完成时发出此事件,自动快照策略创建的快照不会发出此事件。使用实例创建自定义镜像时,ECS会为实例的每块磁盘自动创建一个快照,这些快照创建完成时也会发出此事件。
事件通知的内容格式
磁盘快照创建完成事件的内容包含该快照的开始时间,完成时间,结果(成功或者失败),磁盘ID,快照ID,快照别名等信息。请查阅ECS产品文档:《事件通知列表》
消息体示例如下:
{
"ver": "1.0",
"id": "2256A988-0B26-4E2B-820A-8A********E5",
"product": "ECS",
"resourceId": "acs:ecs:cn-hangzhou:169070********30:snapshot/s-bp1fis********b859b3",
"level": "INFO",
"name": "Snapshot:CreateSnapshotCompleted",
"userId": "169070********30",
"eventTime": "20190422T003800.922+0800",
"regionId": "cn-hangzhou",
"content": {
"result": "accomplished",
"snapshotId": "s-bp1fis********b859b3",
"snapshotName": "test-snapshot",
"diskId": "d-bp1bwa********9ol4mi",
"startTime": "2019-04-22T08:36:09Z",
"endTime": "2019-04-22T08:37:11Z"
}
}
如何订阅消费
用户可以在云监控控制台事件订阅处订阅快照完成事件的通知。请查询ECS产品文档:《设置事件通知》
目前支持包括短信邮件钉钉等面向人的通知渠道,同时也支持消息服务队列、日志服务,函数计算等自动化消费方式,通过自动化消费方式,您可以实现自动化运维逻辑。比如,用户在收到快照创建成功的事件后,继续执行有风险的操作,或者在收到磁盘快照创建失败的事件后,进行告警或者重试。