huawei-cloud-modelarts-resource-pool-management
huawei-cloud-modelarts-resource-pool-management について
hcloud CLIを使ってHuawei Cloud ModelArtsの専用リソースプールとノードプールを管理するスキルです。クラウド運用担当者向けに各種ライフサイクル操作を扱い、書き込み前の事前確認と承認、有料操作前の価格照会を求めます。
主な機能
- 01リソースプールとノードの管理
- 02ノードプールとネットワークの管理
- 03タグ、プラグイン、ワークロードの操作
- 04イベント、クォータ、フレーバーの照会
- 05書き込み前の問題確認と承認
- 06有料操作前の価格確認
活用シーン
- 01ModelArtsリソースプールの作成・保守
- 02ノード、ノードプール、ネットワークの管理
- 03予定イベントやワークロードの調査
- 04有料リソース変更前の費用確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-modelarts-resource-pool-managementインストール後、Claude Code で/huawei-cloud-modelarts-resource-pool-managementを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdapi-paths.mdcli-command-examples.mdcli-installation-guide.mddataflow-diagram.mdiam-policies.mdknown-issues.mdpricing-inquiry.mdverification-method.mdscripts/query-pricing.sh詳細
Huawei Cloud ModelArts リソースプール管理
hcloud CLI を使用して、ModelArts の専用リソースプールとノードプールをライフサイクル全体にわたって管理します。10 の機能領域にまたがる 53 の操作に対応しています。
概要
このスキルを使うと、ユーザーは hcloud CLI を通じて、Huawei Cloud ModelArts の専用リソースプール(专属资源池)とノードプールを管理できます。リソースプールの CRUD、ノード管理、ノードプール管理、ネットワークリソース、タグ管理、プラグイン管理、ワークロード、スケジュール済みイベント、OS 設定、リソースフレーバーの照会など、ライフサイクル全体をカバーします。課金対象の操作については、BSS の料金照会も含まれます。
アーキテクチャ
User Request → Agent → hcloud ModelArts <Operation> --cli-region={region} [--params] → Huawei Cloud ModelArts API
対象となるシナリオ
- リソースプール管理:リソースプールの作成、一覧表示、詳細表示、更新、削除、監視、統計情報、ノード設定、注文管理
- プールノード管理:ノードの一覧表示、詳細表示、一括削除、更新、ロック、ロック解除、再起動、リセット、サイズ変更、移行、バインド
- ノードプール管理:リソースプール内のノードプールの作成、一覧表示、詳細表示、更新、削除
- ネットワークリソース:ModelArts ネットワークの作成、一覧表示、詳細表示、更新、削除、利用可能な IP の照会
- タグ管理:リソースプールのタグの一覧表示、詳細表示、一括作成、一括削除
- プラグイン管理:プラグインテンプレートの一覧表示、プールプラグインの一覧表示と作成
- ジョブとワークロード:ワークロードの一覧表示、ワークロード統計の詳細表示、ジョブの一覧表示
- スケジュール済みイベント:スケジュール済みイベントの一覧表示と承認
- OS 設定:OS ユーザー設定とクォータの詳細表示
- リソースフレーバーとイベント:リソースフレーバー、イベント、ノード設定テンプレートの一覧表示
前提条件
- hcloud CLI がインストールされ、認証済みであること — 参照:https://support.huaweicloud.com/qs-hcli/hcli_02_003.html
- Huawei Cloud AK/SK が hcloud で設定されていること(以下の「セキュリティと認証情報の確認」を参照)
- 対象リージョンで ModelArts サービス が有効になっていること
- IAM 権限 — references/iam-policies.md を参照してください
セキュリティと認証情報の確認
⚠️ 重大:このセクションでは、エージェントのセキュリティ境界を定義しています。必ず厳守してください。
🔒 セキュリティルール(必須)
- 🚫 絶対に AK/SK の値を読み取ったり、表示したり、出力したりしないでください(例:
cat ~/.hcloud/config.json、echo $HW_ACCESS_KEYは禁止されています) - 🚫
~/.hcloud/config.jsonなど、認証情報を含む可能性のあるファイルを読み取ったり、cat したりしないでください - 🚫 会話やコマンドラインで AK/SK を直接入力するようユーザーに求めないでください
- 🚫
hcloud configure set --cli-access-key=... --cli-secret-key=...を実行しないでください。認証情報の設定はユーザーの責任であり、エージェントセッション外で行う必要があります - 🚫 すべての API 呼び出しに
--cli-access-key/--cli-secret-keyを渡さないでください。リクエスト処理中、プロセス一覧(ps aux)に認証情報が表示されます - ✅ 認証情報の状態を確認する際は、必ず
hcloud configure listを使用してください(値ではなく、存在のみを確認します) - ✅ 有効なプロファイルがない場合は、停止し、このセッション外で認証情報を設定するようユーザーに案内してください
- ✅ メインアカウントではなく、権限を最小限にした IAM ユーザーの使用を推奨してください
✅ エージェントの認証情報チェック(唯一許容される確認方法)
# Step 1: Check credential status — presence only, not values
hcloud configure list
-
✅ 期待される結果:
mode: AKSKの有効なプロファイルが表示されます -
❌ 空または無効な場合 → 以下の3ステップの手順を案内します:
手順(ユーザーがコピーして貼り付ける内容):
「有効な認証情報が見つかりません。ターミナルで次の3つの手順を実行してください。」
① AK/SK を取得する Huawei Cloud Console にログインし、IAM → Access Keys を開きます。まだキーをお持ちでない場合は、「Create Access Key」をクリックし、安全な場所に保存してください。
② ターミナルで次のコマンドを実行する(初回のみの設定):
hcloud configure set --cli-access-key=<YOUR_AK> --cli-secret-key=<YOUR_SK>(<YOUR_AK> と <YOUR_SK> を、手順①で取得した値に置き換えてください)
**③ 戻って「configured」と伝えてください。**動作を確認します。
注:
configure setコマンドは認証情報を~/.hcloud/config.jsonに保存します。その後はすべての hcloud コマンドで自動的に使用されるため、AK/SK を再度渡す必要はありません。エージェント:
configure setコマンドは絶対に実行しないでください。
🔧 ユーザーの責任(ドキュメント用であり、エージェントは実行しません)
ユーザーはエージェントのセッション外で、自分のターミナルから認証情報を設定します。
# One-time setup — run this in your terminal, NOT in the agent chat
HISTCONTROL=ignorespace
hcloud configure set --cli-access-key=<YOUR_AK> --cli-secret-key=<YOUR_SK>
⚠️ 注:hcloud CLI は
HW_ACCESS_KEY/HW_SECRET_KEY環境変数を読み取りません(これらは Python SDK 専用です)。サポートされている認証情報の設定方法はhcloud configure setのみです。
ワークフロー
ステップ 1:操作を特定する
ユーザーのリクエストに基づいて、必要なリソースプール操作を判断します。
| ユーザーの意図 | 操作カテゴリ |
|---|---|
| リソースプールの作成/一覧表示/詳細表示/更新/削除 | リソースプール管理 |
| プールノードに対する一覧表示/詳細表示/一括操作 | プールノード管理 |
| ノードプールの作成/一覧表示/詳細表示/更新/削除 | ノードプール管理 |
| ネットワークの作成/一覧表示/詳細表示/更新/削除 | ネットワークリソース |
| プールタグの一覧表示/詳細表示/作成/削除 | タグ管理 |
| プラグインの一覧表示/作成 | プラグイン管理 |
| ワークロードの一覧表示、統計の表示 | ジョブとワークロード |
| スケジュール済みイベントの一覧表示/承認 | スケジュール済みイベント |
| OS 設定/クォータの表示 | OS 設定 |
| フレーバー/イベント/テンプレートの一覧表示 | リソースフレーバーとイベント |
ステップ 2:CLI コマンドを実行する
hcloud ModelArts <Operation> --cli-region={region} [--key=value ...]
{region}はcn-north-4などの実際のリージョンに置き換える必要があります。リージョンをハードコードしないでください。
ステップ 2.5:⚠️ 実行前チェック(書き込み操作では必須)
書き込み操作(作成/更新/削除/パッチ適用/一括処理/承認)を実行する前に、必ず次を行ってください。
- references/known-issues.md を読む — 対象 API に関連するセクションを確認します
- ファイル末尾の実行前チェックリストを確認する — すべての条件が満たされていることを確認します
- 文書化された回避策を適用する — 特に次の高リスク操作について確認します
操作 重大な問題 必要な対応 PatchPool、PatchNetwork、PatchNodePool Content-Type は application/merge-patch+jsonである必要がありますヘッダーセクションとともに --cli-jsonInputを使用しますBatchUpdatePoolNodes --actionの値は true/false ではありません文字列の action を指定して --cli-jsonInputを使用しますCreatePool ネットワーク名にプロジェクト ID のサフィックスが必要です ListNetworks を照会して正確な名前を確認します CreateNodePool count ≥ 1、maxCount ≤ count である必要があります 実行前に制約を確認します ShowNetworkAvailableIp network_id は status.subnets[0].networkIdから取得します先に ShowNetwork を照会します ListEvents --resourceはpools(複数形)である必要があります複数形を使用します BatchResetPoolNodes VM プールでは strategy はサポートされていません 既知の制限としてユーザーに伝えます BatchResizePoolNodes hyperinstance ノードのみをサポートします 既知の制限としてユーザーに伝えます DeleteNetwork プールで使用中のネットワークは削除に失敗します 先にプールを削除します **この手順を省略すると、防止可能な失敗が発生します。**表の各問題は、実際の API テストを通じて判明したものです。
ステップ 3:書き込み操作を処理する
すべての書き込み操作(Create/Update/Delete/Patch/Batch/Accept)では、実行前にユーザーに確認を求めてください。課金対象の操作(CreatePool、CreateNodePool、PatchNodePool、BatchResizePoolNodes、CreateOrderId)では、費用をユーザーに知らせるため、先に BSS の料金を問い合わせてください。料金問い合わせのワークフローについては、references/pricing-inquiry.md を参照してください。
KooCLI コマンド形式の標準
hcloud ModelArts <Operation> --cli-region={region} [--key=value ...]
| 機能 | 説明 | 例 |
|---|---|---|
| サービス名 | 固定:ModelArts | ModelArts |
| 操作名 | パスカルケース | ListPools、CreatePool |
| リージョンパラメーター | --cli-region={region} | --cli-region=cn-north-4 |
| 単純なパラメーター | --key=value | --pool_name=xxx |
| インデックス付きパラメーター | --key.1=value1 | --node_name.1=node1 |
| project_id | 省略時に自動解決 | 設定済みのプロジェクト ID を使用 |
注:
--project_idは、省略すると認証情報から自動解決されます。特定のプロジェクトを対象にする場合にのみ、明示的に指定してください。
複雑なパラメーター:複雑なネストされたパラメーター(例:
metadata、spec)には、--cli-jsonInput=/path/to/file.jsonを使用してください。JSON ファイルでは、{"body": {...}}のエンベロープでボディをラップする必要があります。
コアコマンド
10 の機能ドメインにわたる 53 個すべての CLI コマンド例は、別のリファレンスファイルに記載されています。
📖 詳細なコマンド構文、パラメーター、例については、references/cli-command-examples.md を参照してください
クイックインデックス
| # | ドメイン | API | 主な操作 |
|---|---|---|---|
| 1 | リソースプール管理 | 11 | ListPools、ShowPool、CreatePool、PatchPool、DeletePool、ShowPoolMonitor/Statistics/RuntimeMetrics/NodeConfig、CreateOrderId、ShowOrder |
| 2 | プールノード管理 | 11 | ListPoolNodes、ShowPoolNode、BatchDelete/Update/Lock/Unlock/Reboot/Reset/Resize/Migrate/Bind |
| 3 | ノードプール管理 | 6 | ListNodePools、ShowNodePool、CreateNodePool、PatchNodePool、DeleteNodePool、ListNodePoolNodes |
| 4 | ネットワークリソース | 6 | ListNetworks、ShowNetwork、CreateNetwork、PatchNetwork、DeleteNetwork、ShowNetworkAvailableIp |
| 5 | タグ管理 | 4 | ListPoolTags、ShowPoolTags、BatchCreatePoolTags、BatchDeletePoolTags |
| 6 | プラグイン管理 | 4 | ListPluginTemplates、ShowPluginTemplate、ListPoolPlugins、CreatePoolPlugin |
| 7 | ジョブとワークロード | 3 | ListWorkloads、ShowWorkloadStatistics、ListJobs |
| 8 | スケジュールイベント | 2 | ListScheduledEvents、AcceptScheduledEvent |
| 9 | OS 設定 | 2 | ShowOsConfig、ShowOsQuota |
| 10 | リソースフレーバーとイベント | 4 | ListResourceFlavors、ListEvents、ShowNodeConfigTemplate、ShowPoolNodeConfigTemplate |
コマンドを実行する際は、正確なパラメーター名、必須/任意のフラグ、使用方法について、必ずリファレンスファイルを参照してください。
パラメーターの確認
| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
{region} | はい | Huawei Cloud のリージョン | cn-north-4、cn-east-2 |
{pool_name} | プール操作 | リソースプール名 | my-resource-pool |
{node_name} | ノード操作 | プールノード名 | node-xxx |
{nodepool_name} | NodePool 操作 | ノードプール名 | my-nodepool |
{network_name} | ネットワーク操作 | ネットワーク名 | my-network |
{flavor_id} | 作成/サイズ変更 | リソースフレーバー ID | modelarts.vm.cpu.16u64g.d |
{project_id} | いいえ(自動) | プロジェクト ID。省略時に自動解決 | デフォルトの場合は省略 |
{order_name} | ShowOrder | 注文名 | order-xxx |
SDK へのフォールバック
CLI の不具合により CLI 操作が失敗した場合は、SDK にフォールバックしてください。
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmodelarts.v2.modelarts_client import ModelArtsClient
from huaweicloudsdkmodelarts.v2.region.modelarts_region import ModelArtsRegion
credentials = BasicCredentials(ak="{AK}", sk="{SK}", project_id="{project_id}")
client = ModelArtsClient.new_builder() \
.with_credentials(credentials) \
.with_region(ModelArtsRegion.value_of("{region}")) \
.build()
参考ドキュメント
| ドキュメント | 説明 |
|---|---|
| references/cli-command-examples.md | 53 個すべての API の詳細な CLI コマンド構文と使用例 |
| references/api-paths.md | SDK のソースに基づく REST API パス |
| references/iam-policies.md | 最小権限の IAM ポリシー |
| references/known-issues.md | 既知の問題と回避策 |
| references/pricing-inquiry.md | 課金対象操作の BSS 料金確認ガイド |
| references/verification-method.md | 検証およびテスト方法 |
| references/dataflow-diagram.md | Mermaid データフロー図 |
| references/acceptance-criteria.md | 受け入れ基準チェックリスト |
| references/cli-installation-guide.md | CLI のインストールと認証ガイド |
既知の問題の概要
⚠️ 書き込み操作を行う前に、references/known-issues.md をお読みください。 以下のすべての問題は、実際の API テストで検証済みです。
重大(即時に失敗します):
- PATCH 操作(PatchPool/PatchNetwork/PatchNodePool):
Content-Type: application/merge-patch+jsonヘッダーを付けて、--cli-jsonInputを使用する必要があります - BatchUpdatePoolNodes:
--actionの値はtrue/falseではなく、openHaRedundant/closeHaRedundant/createTags/deleteTagsです。--cli-jsonInputを使用してください - CreatePool:ネットワーク名にはプロジェクト ID のサフィックスを含む完全な名前を指定する必要があります。プールタイプは
Dedicate(末尾に d を付けない)です - CreateNodePool:
countは 1 以上、maxCountはcount以下である必要があります - ShowNetworkAvailableIp:
--network_idにはspec.subnets[0].idではなく、status.subnets[0].networkIdの値を指定する必要があります - ListEvents:
--resourceはpoolではなくpools(複数形)である必要があります
既知の API の制限:
- BatchResetPoolNodes:VM プールでは
rollingConfig.strategyに有効な値がありません - BatchResizePoolNodes:通常の VM ノードではなく、ハイパーインスタンスのスケーリングのみをサポートしています
- BatchMigratePoolNodes:移行元と移行先のクラスター名は異なる必要があります
- DeleteNetwork:ネットワークがリソースプールで使用中の場合は失敗します(先にプールを削除してください)
データフィールドの場所:
- ノードタグ:
metadata.annotations["os.modelarts/tms.tags"](JSON 文字列。metadata.labelsではありません) - ノードのロック状態:
metadata.annotations["os.modelarts.node/lock.action"]
詳細、回避策、実行前チェックリストについては、references/known-issues.md を参照してください。
注意事項
- すべての書き込み操作(Create/Update/Delete/Patch/Batch/Accept)は、実行前にユーザーの確認が必要です
- 課金対象の操作(CreatePool、CreateNodePool、PatchNodePool、BatchResizePoolNodes、CreateOrderId)では、実行前に BSS 料金を確認し、ユーザーに費用を知らせる必要があります
- リージョンはハードコードされていません。
{region}プレースホルダーを使用します project_idを省略した場合は、自動的に解決されます- どのファイルにも AK/SK はハードコードされていません。認証情報は、エージェントセッション外でユーザーが
hcloud configure setを使用して設定します - エージェントは認証情報の有無の確認に限り
hcloud configure listを使用してください。AK/SK の値を読み取ったり、表示したりしてはいけません - 有効な認証情報が見つからない場合、エージェントは処理を停止し、3 ステップの設定手順をユーザーに案内する必要があります(「前提条件」セクションを参照)
- CLI でバグが発生した場合は、SDK にフォールバックできます
- 複雑なネストされたパラメーターには、JSON ファイルを指定して
--cli-jsonInputを使用します