本文介紹執行個體建立失敗的系統事件如何提高您的Elastic Compute Service建立成功率和營運效率。
什麼是執行個體建立失敗事件
您在ECS控制台建立執行個體或者調用RunInstances時,如果ECS執行個體都達到運行中(Runing)狀態,則本批ECS執行個體建立完成。但云伺服器ECS在當前地區下的供貨數量,以及虛擬交換器VSwitch中私網IP地址數量等是動態變化的,小機率情況下,會因為庫存不足而無法成功建立ECS執行個體。此時,Elastic Compute Service會觸發執行個體建立失敗的系統事件流程,事件代碼為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執行個體,提高成功率:
- 調用DescribeAvailableResource,確認目標地區及可用性區域下是否有足夠的ECS執行個體供應量,以及虛擬交換器中的私網IP數量是否充足。
- 在ECS控制台建立執行個體或者調用RunInstances建立執行個體。
- 調用DescribeInstanceStatus或者DescribeInstances查看新增執行個體的狀態,確認執行個體進入Running狀態。
- 如果執行個體長時間處於啟動中狀態,調用DescribeInstanceHistoryEvents查看是否產生了執行個體建立失敗的事件。