Huawei Cloud ECS Manage (建立失敗診斷與執行個體管理)
注意:請勿根據一般知識回答。請遵循以下程序。
步驟 0:確保 skill-quality-cli(必要;首次使用時安裝)
bash scripts/ensure_cli.sh # 有冪等性:僅在未安裝時安裝(不會自動升級)
export PATH="$HOME/.local/bin:$PATH"
skill-quality-cli version # 確認其正常運作
請務必先執行此步驟:品質回報依賴於
skill-quality-cli,由scripts/ensure_cli.sh有冪等地確保(若遺失則安裝一次,若已存在則跳過;不會自動升級 — 請手動執行skill-quality-cli upgrade以進行更新)。 若處於離線狀態或下載失敗,技能會靜默降級(不影響業務流程);待恢復連線後重新執行此步驟。
請務必在執行任何 hcloud ECS <Operation> 命令前先查詢其幫助文件,以發現確切的參數名稱與要求。
總覽
本技能為 AI 代理程式提供華為雲 ECS(彈性雲伺服器)的管理能力: 執行個體生命週期管理(建立/啟動/停止/重啟/刪除)、執行個體/配額/規格/映像查詢,以及一個 6 步驟建立失敗根本原因診斷,按 配額 → 規格 → 映像 → 網路 → 金鑰對 → 磁碟 的順序,消除「ECS 執行個體建立失敗」最常見的原因。
它透過五個能力群組暴露 23 個 huawei_* 動作:
| 能力 | 風險等級 | 動作 |
|---|---|---|
| 查詢(唯讀) | R3 — 自動執行 | huawei_list_ecs_instances、huawei_get_ecs_instance、huawei_list_ecs_flavors、huawei_list_ecs_images、huawei_list_ecs_quotas |
| 診斷(唯讀) | R3 — 自動執行 | huawei_diagnose_ecs_create_failure、huawei_analyze_ecs_health |
| 管理 — 生命週期 | R2 — 預覽 + 確認 | huawei_create_ecs_instance、huawei_start_ecs_instance、huawei_stop_ecs_instance、huawei_restart_ecs_instance |
| 管理 — 生命週期 | R1 — 預覽 + 確認 | huawei_delete_ecs_instance |
| 管理 — 變更操作(§5) | R2 — 預覽 + 確認 | huawei_resize_ecs_instance、huawei_reinstall_ecs_os、huawei_reset_ecs_password、huawei_replace_ecs_keypair、huawei_bind_ecs_eip、huawei_change_ecs_security_group、huawei_add_ecs_nic、huawei_attach_ecs_volume、huawei_detach_ecs_volume |
| 管理 — 變更操作(§5) | R1 — 預覽 + 確認 | huawei_unbind_ecs_eip、huawei_remove_ecs_nic |
每個寫入操作都是非同步的:API 會回傳一個 job_id,真正的作業在背景繼續執行。輪詢該作業是強制的後續步驟,而非可選的附加項目 — 請參閱 §6 非同步任務輪詢。
範圍邊界:
- ✅ 查詢 ECS 執行個體、規格、映像、配額(唯讀)
- ✅ 診斷 ECS 建立失敗(配額 → 規格 → 映像 → 網路 → 金鑰對 → 磁碟)並分析執行個體健康狀態(狀態/磁碟/網路)
- ✅ 建立(後付費)、啟動、停止、重啟、刪除 ECS 執行個體(R2/R1:始終預覽 + 確認)
- ✅ 變更現有執行個體:調整規格、重裝 OS、重設密碼、更換金鑰對、綁定/解綁 EIP、掛載/卸載現有安全群組、新增/移除 NIC、掛載/卸載磁碟(R2/R1:始終預覽 + 確認)
- ❌ 絕不建立、刪除或重新配置 VPC / 子網 / 安全群組資源或 EVS 磁碟資源本身。本技能僅將現有資源掛載或卸載到執行個體;請使用專用的 VPC / EVS 技能進行資源層級的變更。
- ❌ 絕不未經使用者明確確認就執行任何寫入操作
- ❌ 絕不在其非同步任務達到
SUCCESS狀態前(且對於create,還必須在執行個體達到ACTIVE狀態前)將寫入操作報告為「已完成」 - ❌ 絕不在任何輸出或報告中回顯憑證(AK/SK、密碼、令牌)
- ➡️ 不屬於範圍:RDS / 資料庫查詢。本技能僅管理運算資源。當使用者詢問某個 ECS 執行個體依賴的資料庫時,請將問題交回給使用者,並指向專用的 RDS 技能或華為雲 RDS 控制台 — 本技能永不呼叫其他技能。請參閱
references/related-skills.md了解交接措辭。
依賴項:品質遙測資料透過 skill-quality-cli 自動收集(若遺失,由 scripts/ensure_cli.sh 安裝)。
重要警告
| 陷阱 | 原因 |
|---|---|
| 配額耗盡是 #1 建立失敗原因 | Insufficient quota/Quota exceeded 表示執行個體/核心/RAM/磁碟已達到專案限制 — 請先檢查 ShowServerLimits |
| 規格必須存在於目標區域/AZ中 | 規格可能全域存在,但在所選 AZ 中已售罄或不可用 — 使用 --availability_zone 過濾 ListFlavors |
映像必須是 active 且與規格架構相符 | 已刪除/私有映像的 __os_type/architecture(x86 vs ARM)錯誤會導致佈建失敗 — 檢查 IMS ListImages --status=active |
| 沒有可用 IP 的子網會阻止建立 | 若子網 CIDR 已耗盡或 dhcp 已停用,則 NIC 分配會失敗 |
| 安全群組必須在建立前存在 | 引用不存在的安全群組 ID 會導致請求失敗 |
| 金鑰對錯誤具有誤導性 | 若設定了 key_name 但金鑰對不存在,建立會因 KeypairNotFound 失敗 — 使用 KPS ListKeypairs 驗證 |
| 磁碟/AZ 可用性 | 根/資料磁碟類型 (SATA/SAS/GPSSD) 可能在目標 AZ 中不可用 — 檢查 EVS ListVolumes 和磁碟配額 |
| 刪除是不可逆的 | R1:先驗證執行個體,確認沒有資料依賴,然後要求使用者明確確認 |
先決條件
- hcloud CLI(KooCLI 7.2.x 或更新版本)已安裝並通過驗證。
- 安裝與配置指南:請參閱
references/cli-installation-guide.md - 兩種支援的驗證模式:
- AK/SK 憑證:環境變數
HUAWEICLOUD_SDK_AK/HUAWEICLOUD_SDK_SK(或HUAWEI_ACCESS_KEY/HUAWEI_SECRET_KEY),或透過 hcloud 配置精靈進行互動式設定 - 本機 hcloud 設定檔:執行「hcloud configure list」;必須顯示一個有效的設定檔,模式為
AKSK且具有真實的accessKeyId
- AK/SK 憑證:環境變數
- 使用「hcloud configure list」驗證驗證
- 安裝與配置指南:請參閱
- 區域:ECS 是區域特定的。請始終傳遞
--cli-region={region}(例如cn-north-4)。 當省略--project_id時,會從設定檔自動填入。 - IAM 權限:最小權限政策提供於
references/iam-policies.md。- 查詢/診斷:
ecs:cloudServers:list、ecs:cloudServers:get、ecs:cloudServerFlavors:list、ecs:cloudServerImages:list、ecs:jobs:get、ecs:serverVolumes:list、ims:images:list、vpc:subnets:list、vpc:securityGroups:list、vpc:publicIps:list、evs:volumes:list、kps:keypairs:list(診斷步驟 5,hcloud KPS ListKeypairs) - 管理:
ecs:cloudServers:create、ecs:cloudServers:action(啟動/停止/重啟、調整規格、 重裝、重設密碼、NIC 和安全群組變更)、ecs:cloudServers:delete - 變更操作(§5)還需要它們所觸及的每個資源的寫入動作,例如
evs:volumes:delete搭配--delete_volume=true、vpc:publicIps:delete搭配--delete_publicip=true; 確切列表在references/iam-policies.md中。
- 查詢/診斷:
skill-quality-cli— 由bash scripts/ensure_cli.sh確保(有冪等性,若存在則跳過)- 升級:手動執行
skill-quality-cli upgrade(無自動升級) - 停用遙測報告:設定
SKILL_QUALITY_REPORT=0
- 升級:手動執行
工作流程
1. 識別目標 → 區域、instance_id / flavor_id / image_id / vpc_id / subnet_id / key_name、意圖關鍵字
2. 分類意圖 →
- 查詢/診斷 (R3):list / show / analyze / diagnose — 自動執行
- 管理生命週期 (R2):create / start / stop / restart — 始終顯示預覽並要求明確確認
- 管理生命週期 (R1):delete — 始終顯示執行個體詳細資訊、不可逆警告、明確確認
- 管理變更操作 (R2):resize / reinstall / reset password / replace keypair / bind EIP /
change security group / add NIC / attach volume — 始終預覽 + 確認
- 管理變更操作 (R1):unbind EIP / remove NIC / delete keypair — 始終顯示目前
的連接狀態、不可逆警告、明確確認
3. 飛行前檢查 → 對於建立操作和每個變更操作,先執行相關的唯讀檢查
(配額、規格、映像、網路、金鑰對、磁碟),以便使用者根據實際狀態進行確認
4. 執行 → 從下面驗證過的模板建構 hcloud 命令
5. 捕獲 job id → 寫入 API 會立即回傳一個 job_id;作業仍在執行中
6. 輪詢非同步任務 → `hcloud ECS ShowJob` 直到 `status=SUCCESS|FAIL`;對於建立操作,還需
輪詢 `hcloud ECS ShowServer` 直到 `status=ACTIVE`;然後將**最終**狀態報告給使用者
7. 輸出 → 結構化的 JSON 摘要 + 可讀的診斷報告
8. 報告品質 → 透過 `skill-quality-cli` run 包裹自動進行(請參閱步驟 0 / 先決條件 #4)
確認關卡(絕不可跳過):
- R2 動作(
huawei_create_ecs_instance、huawei_start_ecs_instance、huawei_stop_ecs_instance、huawei_restart_ecs_instance):顯示完整命令、目標執行個體,並在執行前詢問「確認?」。 - R1 動作(
huawei_delete_ecs_instance):先執行唯讀檢查 (ShowServer以確認執行個體存在並記錄其狀態/規格/磁碟)。顯示包含不可逆刪除警告的完整命令, 並要求明確確認後再執行。 - 變更操作動作(R2:
huawei_resize_ecs_instance、huawei_reinstall_ecs_os、huawei_reset_ecs_password、huawei_replace_ecs_keypair、huawei_bind_ecs_eip、huawei_change_ecs_security_group、huawei_add_ecs_nic、huawei_attach_ecs_volume): 顯示目前狀態(透過ShowServer/ListServerVolumeAttachments/ListServerInterfaces)、 完整命令和預期的最終狀態,然後詢問「確認?」。 - 變更操作動作(R1:
huawei_unbind_ecs_eip、huawei_remove_ecs_nic):顯示將要 卸載的內容以及連線影響(解綁 EIP 會失去公開存取;移除 NIC 會失去該網路路徑及其私有 IP), 需要明確確認,且絕不與刪除操作串聯。對於huawei_detach_ecs_volume(R2),警告--delete_flag=1會刪除資料磁碟。 - 建立前飛行檢查:在
huawei_create_ecs_instance之前,始終執行huawei_diagnose_ecs_create_failure(或至少執行配額 + 規格 + 映像檢查),以便使用者 看到環境已就緒,然後再確認。 - 非同步任務輪詢是強制的:在任務達到終端狀態之前,絕不完結一個寫入操作。未經輪詢的
job_id是一個不完整的動作,而非成功。
寫入操作在下面的命令區塊中標記為 [W] / 寫操作(檢測關鍵字:
create / start / stop / restart / delete — 與測試管線的寫入操作檢測器所使用的動詞相同)。
核心命令
以下所有命令以雙重形式顯示:裸可執行檔
hcloud <Service> <Operation>命令,以及為品質報告而包裹了skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- ...的相同承載。 它們需要安裝並驗證 KooCLI (hcloud CLI)(請參閱先決條件);任何業務命令都不需要 Python SDK 套件。
⚠️ 強制要求:本技能中的每個
hcloud命令都必須使用skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- <command>包裹 — 嚴禁使用裸hcloud呼叫。
1. 查詢 (R3 — 唯讀,自動執行)
huawei_list_ecs_instances — 列出 ECS 執行個體及其狀態:
# 可選項:--limit={n} --offset={n} --status={ACTIVE|SHUTOFF|ERROR|BUILD|...} --name={name} --server_id={id1,id2}
hcloud ECS ListServersDetails --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ListServersDetails --cli-region={region}
huawei_get_ecs_instance — 查詢一個執行個體的完整詳細資訊(狀態、位址、規格、磁碟、錯誤):
hcloud ECS ShowServer --cli-region={region} --server_id={server_id}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ShowServer --cli-region={region} --server_id={server_id}
huawei_list_ecs_flavors — 列出可用的規格(可選擇限定於一個 AZ):
# 可選項:--availability_zone={az} --flavor_id={flavor_id} --limit={n} --marker={marker}
hcloud ECS ListFlavors --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ListFlavors --cli-region={region}
huawei_list_ecs_images — 列出可用的映像(按 OS 類型/架構/狀態過濾):
# 可選項:--__os_type={Linux|Windows} --architecture={x86|arm} --status={active} --name={name} --limit={n}
hcloud IMS ListImages --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud IMS ListImages --cli-region={region}
huawei_list_ecs_quotas — 查詢專案配額使用情況:
hcloud ECS ShowServerLimits --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ShowServerLimits --cli-region={region}
ShowServerLimits 回傳絕對限制和使用情況(maxTotalInstances/totalInstancesUsed、
maxTotalCores/totalCoresUsed、maxTotalRAMSize/totalRamUsed、maxTotalKeypairs)。請注意它沒有磁碟欄位 — 對於磁碟配額,請額外使用:
# 必要:--target_project_id={project_id} --usage=True
hcloud EVS CinderListQuotas --target_project_id={project_id} --usage=True --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud EVS CinderListQuotas --target_project_id={project_id} --usage=True --cli-region={region}
2. 診斷 (R3 — 唯讀,自動執行)
huawei_diagnose_ecs_create_failure — 6 步驟建立失敗診斷
…
[為翻譯而截斷]