ECS事件通知之创建失败事件

ECS提供了批量实例创建接口(https://help.aliyun.com/document_detail/63440.html ),可以一次调用创建最多100台实例。批量创建接口可以完成批量实例的创建、启动、IP分配等流程,可以快速完成实例资源的扩容。

在实例的创建过程中(实际后台异步创建),库存和VSwitch中私网IP的可用数量是动态变化的,在创建过程中有可能资源不满足创建需求,导致实例的创建过程失败,实例创建失败后会有两种结果:

1.实例会被自动释放,某些典型的错误,例如库存不足,会触发实例的自动释放,实例释放后会从实例列表中消失,用户很难感知实例的创建失败以及原因。

2.实例会保持创建中状态,并且可以操作实例的释放(包年包月实例要通过工单申请),这种是对自动运维非常不友好的逻辑,实例的生命周期并没有闭环。

实例创建失败事件

实例创建失败事件会对上面两种流程自动化运维,首先会进行实例的自动化释放(实例在这种状态下是被评估为无法创建成功的),开始释放流程后ECS会发出实例创建失败事件,此时实例在实例列表中是可以被查询到的;当实例最终被释放时,实例创建失败事件会变为已执行状态,之后实例在实例列表中无法查询(实例已经释放)。

对于已经发生了“创建失败事件”的实例,可以有两种选择: 一个是不进行任何操作,后续在10分钟内,实例会被自动释放;一个是可以主动进行释放,主动释放后,实例创建失败事件会被修改为已避免状态。之后实例的相关事件都可以在历史事件查询接口进行查询。

事件通知的内容格式

实例创建失败事件的内容包含实例创建失败的时间点、完成时间、实例id等信息,消息体示例如下:

{
    "status":"Executing",
    "ver":"1.0",
    "product":"ECS",
    "id":"4AB76E05-B5E2-4A00-A107-B0B6A5091967",
    "resourceId":"acs:ecs:cn-hangzhou:16343********0:instance/i-bp********gzahwqfvx",
    "level":"CRITICAL",
    "instanceName":"",
    "ruleName":"test",
    "userId":"16343********0",
    "name":"Instance:SystemFailure.Delete:Executing",
    "eventTime":"20190611T130915.171+0800",
    "regionId":"cn-hangzhou",
    "content":{
        "notBefore":"2019-06-11T05:09:14Z",
        "executeStartTime":"2019-06-11T05:09:14Z",
        "publishTime":"2019-06-11T05:09:14Z",
        "eventId":"e-bp1ivh*********c",
        "instanceId":"i-bp1jfp*********x",
        "eventType":"SystemFailure.Delete",
        "eventStatus":"Executing"
    }
}

如何订阅消费

用户可以在云监控控制台事件订阅完成事件的通知,请查看文档《设置事件通知

用户可以通过对实例创建失败的消息订阅,在发生实例创建失败之后,马上感知到实例创建失败的发生,可以尽快调整实例的创建参数(实例规格、VSwitch)来避免库存不足和私网IP不足发生,提高实例创建的成功率。

上一篇:Spring Bean生命周期-obtainFreshBeanFactory(三)


下一篇:160行代码仿Vue实现极简双向绑定[详细注释]