Huawei Cloud ECS 管理 (作成失敗診断とインスタンス管理)
注意 - 一般的な知識から回答しないでください。以下の手順に従ってください。
ステップ 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> --helpを実行して正確なパラメータ名と要件を確認してください。
概要
このスキルは、Huawei Cloud ECS(Elastic Cloud Server)向けのAIエージェント機能を提供します: インスタンスライフサイクル管理(作成/起動/停止/再起動/削除)、インスタンス/クォータ/フレーバー/イメージ のクエリ、および 6ステップの作成失敗の根本原因診断 により、「ECSインスタンスの作成に失敗しました」という 最も一般的な原因を クォータ → フレーバー → イメージ → ネットワーク → キーペア → ディスク の順序で排除します。
5つの機能グループに分けて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 スキルまたは
Huawei Cloud RDS コンソールを参照するように伝えてください — このスキルは他のスキルを呼び出しません。
引き継ぎの文言については
references/related-skills.mdを参照してください。
依存関係: 品質テレメトリは skill-quality-cli を介して自動的に収集されます
(scripts/ensure_cli.sh によってインストールされます。存在しない場合)。
重要な警告
| 罠 | 理由 |
|---|---|
| クォータ不足は作成失敗の第一位 | Insufficient quota / Quota exceeded は、インスタンス/コア/RAM/ボリュームがプロジェクト制限に達したことを意味します — 最初に ShowServerLimits を確認してください |
| フレーバーは 対象リージョン/AZ に存在する必要があります | グローバルに存在するフレーバーでも、選択したAZでは販売終了または利用不可の場合があります — ListFlavors を --availability_zone でフィルタリングしてください |
イメージは 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を参照 - サポートされる認証モードは2つ:
- AK/SK 資格情報: 環境変数
HUAWEICLOUD_SDK_AK/HUAWEICLOUD_SDK_SK(またはHUAWEI_ACCESS_KEY/HUAWEI_SECRET_KEY)、あるいは hcloud configure ウィザードによる対話型設定 - ローカル 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(起動/停止/再起動, スペック変更, OS再インストール, パスワードリセット, 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): 一覧表示 / 表示 / 分析 / 診断 — 自動実行
- ライフサイクル管理 (R2): 作成 / 起動 / 停止 / 再起動 — 常にプレビューを表示し、明示的な確認を求める
- ライフサイクル管理 (R1): 削除 — 常にインスタンスの詳細、元に戻せない警告、明示的な確認を表示
- 変更操作管理 (R2): スペック変更 / OS再インストール / パスワードリセット / キーペア交換 / EIPバインド /
セキュリティグループ変更 / NIC追加 / ボリュームアタッチ — 常にプレビュー + 確認
- 変更操作管理 (R1): EIPアンバインド / NIC削除 — 常に現在の
アタッチメント、元に戻せない警告、明示的な確認を表示
3. 事前チェック → 作成およびすべての変更操作について、最初に関連する読み取り専用チェックを実行
(クォータ、フレーバー、イメージ、ネットワーク、キーペア、ディスク)して、ユーザーが実際の状態に基づいて確認できるようにする
4. 実行 → 以下の検証済みテンプレートから hcloud コマンドを構築
5. ジョブ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 — 1つのインスタンスの完全な詳細(ステータス、アドレス、フレーバー、ボリューム、障害)をクエリ:
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 — 利用可能なフレーバーを一覧表示(オプションで1つの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ステップの作成失敗診断
...[翻訳のため一部省略]