本文介绍实例创建失败的系统事件如何提高您的云服务器ECS创建成功率和运维效率。
什么是实例创建失败事件
您在ECS控制台创建实例或者调用RunInstances时,如果ECS实例都达到运行中(Runing)状态,则本批ECS实例创建完成。但云服务器ECS在当前地域下的供货数量,以及虚拟交换机VSwitch中私网IP地址数量等是动态变化的,小概率情况下,会因为库存不足而无法成功创建ECS实例。此时,云服务器ECS会触发实例创建失败的系统事件流程,事件代码为SystemFailure.Delete。
- 等待系统释放,大约在创建失败的五分钟内会被释放。
- 自行释放实例。
查看实例创建失败事件
本文示例通过阿里云CLI调用DescribeInstanceHistoryEvents查看ECS实例是否有执行中或者已执行的创建失败事件。有关如何使用其他开发者工具调用API,请参见ECS API快速入门。
aliyun ecs DescribeInstanceHistoryEvents --RegionId TheRegionId --InstanceEventCycleStatus.1 Executing --InstanceEventCycleStatus.2 Executed --EventType SystemFailure.Delete
有关如何使用ECS控制台查看实例创建失败事件,请参见系统事件。
状态区别
在ECS控制台的实例页面或通过DescribeInstances接口查询到实例状态与实例创建失败的系统事件(SystemFailure.Delete)的状态对比如下表所示。
业务状态 | 实例状态 | 事件状态 |
---|---|---|
实例创建中 | 启动中(Pending) | 无法查询 |
触发实例创建失败事件 | 已停止(Stopped) | 执行中(Executing) |
您自行释放了实例 | 无法查询 | 已避免(Avoided) |
系统释放了实例 | 无法查询 | 已执行(Executed) |
提高实例创建成功率
建议您按照以下流程创建ECS实例,提高成功率:
- 调用DescribeAvailableResource,确认目标地域及可用区下是否有足够的ECS实例供应量,以及虚拟交换机中的私网IP数量是否充足。
- 在ECS控制台创建实例或者调用RunInstances创建实例。
- 调用DescribeInstanceStatus或者DescribeInstances查看新增实例的状态,确认实例进入Running状态。
- 如果实例长时间处于启动中状态,调用DescribeInstanceHistoryEvents查看是否产生了实例创建失败的事件。