本文介绍实例创建失败的系统事件如何提高您的云服务器ECS创建成功率和运维效率。

什么是实例创建失败事件

您在ECS控制台创建实例或者调用RunInstances时,如果ECS实例都达到运行中Runing)状态,则本批ECS实例创建完成。但云服务器ECS在当前地域下的供货数量,以及虚拟交换机VSwitch中私网IP地址数量等是动态变化的,小概率情况下,会因为库存不足而无法成功创建ECS实例。此时,云服务器ECS会触发实例创建失败的系统事件流程,事件代码为SystemFailure.Delete

发生实例创建失败的事件后,您无法在ECS控制台实例与镜像 > 实例页面或通过DescribeInstances查看到新增实例,请在事件页面查询ECS实例。如果您已经完成订单支付,会收到相应的消费退款。您可以在事件列表页对创建失败的ECS实例执行以下操作:
  • 等待系统释放,大约在创建失败的五分钟内会被释放。
  • 自行释放实例。

查看实例创建失败事件

本文示例通过阿里云CLI调用DescribeInstanceHistoryEvents查看ECS实例是否有执行中或者已执行的创建失败事件。有关如何使用其他开发者工具调用API,请参见ECS API快速入门

aliyun ecs DescribeInstanceHistoryEvents --RegionId TheRegionId --InstanceEventCycleStatus.1 Executing --InstanceEventCycleStatus.2 Executed --EventType SystemFailure.Delete
说明 以上示例中,您还可以通过指定EventPublishTime.Start和EventPublishTime.End参数查看时间段内的事件信息。

有关如何使用ECS控制台查看实例创建失败事件,请参见系统事件

状态区别

在ECS控制台的实例页面或通过DescribeInstances接口查询到实例状态与实例创建失败的系统事件(SystemFailure.Delete)的状态对比如下表所示。

业务状态 实例状态 事件状态
实例创建中 启动中(Pending 无法查询
触发实例创建失败事件 已停止(Stopped 执行中(Executing
您自行释放了实例 无法查询 已避免(Avoided
系统释放了实例 无法查询 已执行(Executed

提高实例创建成功率

建议您按照以下流程创建ECS实例,提高成功率:

  1. 调用DescribeAvailableResource,确认目标地域及可用区下是否有足够的ECS实例供应量,以及虚拟交换机中的私网IP数量是否充足。
  2. 在ECS控制台创建实例或者调用RunInstances创建实例。
  3. 调用DescribeInstanceStatus或者DescribeInstances查看新增实例的状态,确认实例进入Running状态。
  4. 如果实例长时间处于启动中状态,调用DescribeInstanceHistoryEvents查看是否产生了实例创建失败的事件。