什么是弹性网卡操作完成事件
弹性网卡(ENI)作为可以附加到专有网络VPC类型ECS实例上的虚拟网卡,需要将该网卡与ECS实例进行相关操作如创建弹性网卡,将弹性网卡绑定到ECS实例上,将ECS实例上的弹性网卡解绑,删除弹性网卡等,而以上的操作均会影响弹性网卡的生命周期。
上图中绿颜色的状态代表着弹性网卡的稳定态,而红颜色的状态代表弹性网卡的不稳定态。只有当发起影响弹性网卡的生命周期的操作后,若弹性网卡到达了稳定态说明该操作成功;反之若弹性网卡处于不稳定态中,说明弹性网卡操作失败,此时需要用户再进行操作重试(请放心,弹性网卡的操作均为幂等,即任意多次执行操作所产生的影响与一次执行的影响相同)。
例如,用户A发起弹性网卡eni-A的绑定操作,在阿里云接受到该绑定操作请求后,eni-A的状态将从稳定态Avaliable变为非稳定态Attaching。若用户A想知道eni-A什么时刻真正挂载成功,则需要不断的查询弹性网卡的状态。当查询到eni-A的状态为稳定态InUse时,说明此次绑定弹性网卡的操作成功。
现在弹性网卡的操作中只有创建弹性网卡的接口是同步的(即创建弹性网卡请求的返回结果表明创建弹性网卡操作成功与否,无需再进行弹性网卡的状态查询),而绑定弹性网卡/解绑弹性网卡/删除弹性网卡操作均为异步。如果用户需要大批量的操作弹性网卡,则需要不断的调用查询接口,这实在是太麻烦了,有没有一种主动通知的方式能让用户及时的获取到此次弹性网卡操作的结果呢?
答案是有的!阿里云ECS通过云监控的自定义事件提供辅助弹性网卡操作完成事件通知,对绑定/解绑/删除弹性网卡提供事件通知。用户可以通过云监控设置弹性网卡操作完成事件通知,及时获取网卡操作结果并实现业务自动化处理,从而无需通过轮询获取结果,让用户轻松感知网卡异步操作结果。
接下来就让我们简单尝试下如何通过云监控订阅弹性网卡操作完成事件获取弹性网卡操作完成事件吧。
如何订阅弹性网卡操作完成事件
step1:登录云监控控制台。
step2:在左侧导航栏,单击事件监控,在下拉栏点击系统事件。
step3.在系统事件页面,单击事件报警规则页签,单击右上角的创建报警规则。
step4.在修改/创建事件报警规则区域,填写相关的参数
- 报警规则名称可自定义填写
- 产品类型选择云服务器ECS。
- 事件类型选择状态通知。
- 事件名称选择网卡操作完成。
- 当资源范围选择全部资源时,任何资源发生相关事件,都会按照配置发送通知;当资源范围选择应用分组时,只有指定应用分组内的资源发生相关事件,才会按照配置发送通知。
step5.根据需要获取事件通知的方式选择报警方式
step6:点击确定后,完成网卡操作完成事件的订阅。
step7:发起网卡的异步操作如挂载网卡,在云监控控制台的事件监控的系统事件中可以看到可以看到接受到网卡操作完成的事件。
step8:点击事件详情,可以看到该事件的详细信息
{ "Status": "Normal",//若弹性网卡操作失败,则Status为Warn "InstanceName": "eni-bp17ed0ncrxgmdlocfmb", "ResourceId": "acs:ecs:cn-hangzhou-dg-a01:1997585743794535:eni/eni-bp17ed0ncrxgmdlocfmb", "Content": { "eniStatus": "InUse",//此时弹性网卡的状态 "result": "success",//此次弹性网卡操作的结果,失败为failed "eniId": "eni-bp17ed0ncrxgmdlocfmb", "operation": "AttachNetworkInterface",//此次弹性网卡操作名称 "requestId": "81A6CEC7-1E3C-5C80-9A4D-5E3CF2F98287"//此次弹性网卡操作的requestId }, "Product": "ECS", "Level": "INFO", "Time": 1651672616000, "RegionId": "cn-hangzhou-dg-a01", "Name": "NetworkInterface:NetworkInterfaceOperateCompleted", "GroupId": "0" }
用户可以通过不同的订阅方式更好的消费此类弹性网卡操作完成事件,例如通过消息服务MNS自动处理网卡操作完成事件等。由此,通过弹性网卡操作完成事件驱动的方式感知异步的弹性网卡操作结果,无需进行多次轮询操作从而降低用户的操作成本。
心动不如行动,弹性网卡操作完成事件正在邀测中,可提交工单进行体验~
常见Q&A
1.为什么我发起网卡操作请求后没有接受到相应的网卡操作事件?
需要注意仅在网卡操作请求成功,即发起操作后无任何报错提示时,才会产生相应的事件。例如某台实例支持挂载的弹性网卡数量已达上限,尝试再挂载弹性网卡时出现报错,则表示挂载操作请求失败,并不会产生相应的事件,此时ECS控制台的报错示例如下图所示。
2.网卡操作完成事件支持的网卡类型?
目前由于主网卡的生命周期随实例一致,即无法从实例解绑,且主网卡随实例创建而创建,随实例销毁而删除,因此主网卡不提供网卡操作完成事件,提供辅助网卡的操作完成事件。