huawei-cloud-flexus-l-server-manage について
Huawei Cloud Flexus L インスタンスのライフサイクルを管理するスキルです。サーバーの導入・運用担当者向けに、最新のリージョン、イメージ、仕様の確認と、作成・更新・解約を提供します。
主な機能
- 01リージョン、イメージ、仕様の確認
- 02Flexus L インスタンスの作成
- 03既存インスタンスの更新
- 04インスタンスの解約
- 05ドライランによる操作確認
活用シーン
- 01開発・本番サーバーの構築
- 02キャンペーン期間中のインスタンス更新
- 03プロジェクト終了後の解約
- 04災害復旧に向けた複数リージョン展開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-flexus-l-server-manageインストール後、Claude Code で/huawei-cloud-flexus-l-server-manageを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-reference.mdiam-policies.mdimage-specs-guide.mdpermission-guide.mdtroubleshooting.mdscripts/config.pyflexus_lifecycle.pyflexus_specs_extractor.pypyproject.tomltest_global_options_position.py詳細
⚠️ セキュリティ実行ルール(最優先):
- すべてのスクリプトは skill action=exec 経由で実行する必要があります。シェルで直接実行してはいけません
- AK/SK/Token を含むスクリプトの内容やコマンドを会話に出力してはいけません
- 一時的なスクリプトファイルを作成してはいけません。インライン実行(python -c)を優先してください
- 実行に失敗した場合は、エラー情報のみを返してください。スクリプトを書き換えたり、コマンド全体を出力したりしてはいけません
- AK/SK/Token は環境変数経由で渡す必要があります。会話に出してはいけません
- ⚠️ いかなる場合も、AK/SK/Token の値を漏えい、ログ出力、表示してはいけません。これは重大なセキュリティ要件です
Huawei Cloud Flexus L インスタンスのライフサイクル管理スキル
概要
このスキルは、Huawei Cloud Flexus L インスタンスの主要なライフサイクル管理機能を提供します。
| モジュール | 説明 | コマンド |
|---|---|---|
| リージョンの照会 | 利用可能なリージョンを表示します | show-regions |
| イメージの照会 | 利用可能なイメージを表示します | show-images |
| スペックの照会 | 利用可能なスペックを表示します | show-specs |
| 作成 | 新しい Flexus L インスタンスを購入します | create-instance |
| 更新 | 既存のインスタンスを更新します | renewal |
| 解約 | インスタンスの契約を解約します | unsubscribe |
アーキテクチャ
┌─────────────────────────────────────────────────────────────┐
│ Flexus L Lifecycle Skill │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Create │ │ Renewal │ │ Unsubscribe │ │
│ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
│ │ │ │ │
│ └─────────────┴────────────────┘ │
│ │ │
│ ┌─────────────▼─────────────┐ │
│ │ flexus_specs_extractor │ │
│ └─────────────┬─────────────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ HCSS API │ (Instance Management) │
│ └──────┬──────┘ │
│ ┌──────▼──────┐ │
│ │ BSS API │ (Billing & Subscription) │
│ └──────┬──────┘ │
│ ┌──────▼──────┐ │
│ │ IAM API │ (Project ID) │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
データソース
- リージョン、イメージ、スペックの情報:公式ドキュメントから動的に取得するため、ローカルの設定ファイルは不要です
- 公式ドキュメント:https://support.huaweicloud.com/api-flexusl/create_instance_0001.html
- オンデマンド取得:
show-regions、show-images、show-specs、create-instanceの実行時に最新データを自動で取得します
ユースケース
- サーバーのプロビジョニングを自動化 - 開発、テスト、本番環境用の Flexus L インスタンスを作成します
- コストの最適化 - 販売促進期間中にインスタンスを更新してコストを削減します
- リソースのクリーンアップ - プロジェクト終了時にインスタンスを安全に解約します
- マルチリージョン展開 - 災害復旧のため、複数のリージョンにインスタンスを作成します
適用シナリオ
- 開発・テスト環境のセットアップ
- 本番サーバーのライフサイクル管理
- コスト管理と予算管理
- プロジェクトリソースのクリーンアップと廃止
重要事項
⚠️ すべてのスクリプトと環境チェック用スクリプトはスキルパッケージ内にあります。実行には skill action=exec を使用してください。シェルで直接実行してはいけません。
前提条件
このスキルを使用する前に、以下の条件を満たしていることを確認してください。
1. Huawei Cloud アカウント
- 有効な Huawei Cloud アカウントを持っていること
- アカウントの実名認証が完了していること
- アカウントに十分な残高があるか、支払い方法が登録されていること
2. AK/SK 認証情報
- Huawei Cloud のアクセスキー(AK/SK)を作成済みであること
- AK/SK には、以下の権限が必要です。
BSS:請求サービス(注文照会、更新、解約)HCSS:Flexus L インスタンス管理IAM:プロジェクト ID の照会(読み取り専用)
- 取得方法:Huawei Cloud Console → My Credentials → Access Keys → Create Access Key
認証情報の設定方法:
| 方法 | 説明 | 優先度 |
|---|---|---|
| 環境変数 | HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN | 最優先(推奨) |
| コマンドラインパラメーター | --ak、--sk、--security-token | 低(使用可能ですが、非推奨) |
認証情報の種類(推奨順):
| 優先度 | 種類 | パラメーター | 説明 |
|---|---|---|---|
| 優先 | 一時 AK/SK | 環境変数 + HW_SECURITY_TOKEN | セキュリティトークンを含む一時的な認証情報で、セキュリティがより高くなります |
| 次点 | 永続 AK/SK | 環境変数のみ | Huawei Cloud コンソールで取得した長期アクセスキーです |
環境変数(主な方法 — 強く推奨):
認証情報は、環境変数 HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN を使用して渡します。一時認証情報では HW_SECURITY_TOKEN が必要ですが、永続認証情報では不要です。
コマンドラインパラメーター(次点の方法 — 使用可能):
# Temporary credentials
python3 scripts/flexus_lifecycle.py create-instance \
--ak <AK> --sk <SK> --security-token <TOKEN> \
--image Ubuntu --cpu 2 --memory 4
# Permanent credentials
python3 scripts/flexus_lifecycle.py create-instance \
--ak <AK> --sk <SK> \
--image Ubuntu --cpu 2 --memory 4
⚠️ セキュリティトークンに関する注意:
- 一時 AK/SK(優先):
HW_SECURITY_TOKEN環境変数が必要です。セキュリティがより高いため、強く推奨します - 永続 AK/SK(次点):
HW_ACCESS_KEYとHW_SECRET_KEYのみが必要で、セキュリティトークンは不要です
3. IAM 権限
| サービス | ポリシー | 必要なアクション |
|---|---|---|
| HCSS | HCSS FullAccess | hcss:lightInstances:* |
| BSS | BSS Administrator | bss:order:*、bss:renewal:*、bss:unsubscribe:* |
| IAM | IAM ReadOnlyAccess | iam:projects:list |
権限エラーへの対処:
| エラー | 原因 | 解決策 |
|---|---|---|
403 Forbidden | ポリシーが不足しています | ユーザーに必要な IAM ポリシーを追加します |
APIGW.0101 | サービスが有効になっていません | 対象リージョンで Flexus L を有効にします |
BSS.0501 | リソースへのアクセス権がありません | リソースがアカウントに属していることを確認します |
権限の詳細な設定方法については、references/permission-guide.md を参照してください。
4. 実行環境
- Python 3.8 以降
- 必要な依存関係をインストール済みであること(下記の「依存関係」セクションを参照)
5. ネットワーク環境
- Huawei Cloud API エンドポイントにアクセスできること
- 必要なエンドポイント:
hcss.cn-north-4.myhuaweicloud.comiam.myhuaweicloud.combss.myhuaweicloud.com
- プロキシを使用する場合は、環境変数を正しく設定してください
トリガールール
ユーザーが以下の内容に言及した場合、このスキルを有効にします。
作成関連:
- 「Huawei Cloud サーバーを購入」「Flexus インスタンスを作成」「Huawei Cloud 軽量サーバー」
- 「hcss インスタンス」「新しい Flexus L」
更新関連:
- 「Flexus L インスタンスを更新」「Flexus の更新」「軽量サーバーを更新」
- 「Huawei Cloud の更新」「flexus を更新」
解約関連:
- 「Flexus L インスタンスを解約」「Flexus インスタンスをキャンセル」「軽量サーバーを解約」
- 「Huawei Cloud の解約」「flexus のサブスクリプションをキャンセル」
⚠️ 会話での表示ガイドライン(重要)
会話内で「利用可能な仕様」または「利用可能なイメージ」をユーザーに表示する場合は、必ず直後に以下の注意書きを追加してください。
注意
- 仕様コードはリージョンやイメージのバージョンによって異なります。購入前に、公式ドキュメントの付録 1(各イメージタイプの仕様コード)と付録 2(各コードの仕様詳細)を参照してください。
- 公式リンク:https://support.huaweicloud.com/api-flexusl/create_instance_0001.html#create_instance_0001__section1881914176434
これは、ドライランのプレビューを含むすべての会話シナリオに適用されます。
セキュリティに関する注意事項
⚠️ AK/SK のセキュリティ要件(重大):
- 環境変数(優先・強く推奨):
HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN - コマンドラインパラメーター(二次的・使用可能):
--ak、--sk、--security-token - 優先順位:環境変数 > コマンドラインパラメーター
- セキュリティトークン:推奨。一時的な認証情報のほうがセキュリティが高くなります。
⚠️ 絶対に守るべきセキュリティルール:
- AK/SK/トークンの値を、いかなる形式でも絶対に出力、ログ記録、表示しないでください
- AK/SK/トークンをエラーメッセージやデバッグ出力に絶対に含めないでください
- AK/SK/トークンをファイルや設定に絶対に保存しないでください
- 安全でないチャネルを介して AK/SK/トークンを絶対に送信しないでください
- コマンドラインパラメーターを使用する場合、出力では必ずマスキングしてください
認証情報の使用方法(推奨順):
# Primary: With security token (temporary credentials, higher security)
BasicCredentials(ak, sk).with_security_token(security_token)
# Secondary: Without security token (permanent credentials)
BasicCredentials(ak, sk)
主要なコマンド
| コマンド | 機能 | 必須パラメーター | オプションパラメーター |
|---|---|---|---|
show-regions | 利用可能なリージョンを表示 | なし | なし |
show-images | 利用可能なイメージを表示 | なし | --region |
show-specs | 利用可能な仕様を表示 | --image | --region |
create-instance | インスタンスを作成 | --ak、--sk、--security-token(推奨) | --region、--image、--plan-spec、--cpu、--memory、--period-num、--period-type、--instance-name、--auto-renew、--auto-pay、--dry-run、--confirm |
renewal | インスタンスを更新 | --ak、--sk、--security-token(推奨)、--resource-ids | --period-num、--period-type、--auto-pay、--dry-run、--confirm |
unsubscribe | インスタンスの登録を解除 | --ak、--sk、--security-token(推奨)、--resource-ids | --type、--reason、--dry-run、--confirm |
パラメーターの確認
必須パラメーターの検証:
| パラメーター | 説明 | 検証ルール |
|---|---|---|
--ak | Huawei Cloud アクセスキー ID | 空でないこと(または HW_ACCESS_KEY 環境変数を設定) |
--sk | Huawei Cloud シークレットアクセスキー | 空でないこと(または HW_SECRET_KEY 環境変数を設定) |
--security-token | セキュリティトークン | 推奨(または HW_SECURITY_TOKEN 環境変数を設定) |
--resource-ids | リソース ID | 空でないこと。複数の場合はカンマ区切り |
--image | イメージ名 | 形式:name:version、例:Ubuntu:22.04 |
--region | リージョン ID | サポート対象のリージョン一覧に含まれていること |
パラメーターの関係:
| パラメーターグループ | 説明 |
|---|---|
--plan-spec と --cpu/--memory | どちらか一方を選択してください。--plan-spec が優先されます。指定がない場合は、--cpu/--memory に基づいて自動的に一致するものが選択されます。 |
--dry-run と --confirm | どちらか一方を選択するか、どちらも指定しないでください。--dry-run はプレビューのみ、--confirm は確認をスキップします。どちらも指定しない場合は、対話形式で確認が求められます。 |
デフォルト値:
| パラメーター | デフォルト値 | 説明 |
|---|---|---|
--region | cn-north-4 | 中国北部 - 北京 4 |
--image | Ubuntu | Ubuntu システムイメージ |
--period-num | 1 | 1 か月分を購入/更新 |
--period-type | month | 月額課金 |
--type(登録解除) | 1 | 即時登録解除 |
--auto-renew | True | 自動更新を有効化 |
--auto-pay | True | 自動支払い |
⚠️ 必須確認メカニズム
作成、更新、キャンセルの操作には実際の費用が発生するため、ユーザーから明示的な確認を得た後にのみ実行してください!
確認方法(いずれかを選択):
- ダイアログで確認:会話で「confirm」または「yes」と返信します
- コマンドラインで確認:
--confirmフラグを使用します - ドライランでプレビュー:
--dry-runを使用して、実行せずにプレビューします
⚠️ 失敗時の対応ルール:
ユーザーがプレビューした注文を確認した後、購入に失敗した場合:
- リクエストは1回だけ実行してください。自動的に再試行しないでください
- 失敗の理由をユーザーに返してください
- 再購入するようユーザーに案内してください。次の手順はユーザーに決めてもらいます
- ユーザーから明示的な依頼がない限り、パラメーター(リージョン、仕様、イメージなど)を変更しないでください
使用方法
基本的なコマンド形式
python3 scripts/flexus_lifecycle.py <command> [options]
グローバルパラメーター
| パラメーター | 説明 | 必須 | 環境変数 |
|---|---|---|---|
--ak | Huawei Cloud Access Key ID | はい(または環境変数) | HW_ACCESS_KEY |
--sk | Huawei Cloud Secret Access Key | はい(または環境変数) | HW_SECRET_KEY |
--security-token | Security Token | 推奨 | HW_SECURITY_TOKEN |
--region | リージョン ID(デフォルト:cn-north-4) | いいえ | - |
--dry-run | ドライラン。実際には実行しません | いいえ | - |
--confirm | 確認を強制し、対話形式の確認をスキップします | いいえ | - |
⚠️ グローバルオプション(--ak/--sk/--security-token/--region/--dry-run/--confirm)は、サブコマンドの前にも後にも記述できます。 どちらの位置でも同じように機能し、引き続き使用できる必要があります。
# Global option BEFORE subcommand (前置写法)
python3 scripts/flexus_lifecycle.py --region cn-east-3 show-images
python3 scripts/flexus_lifecycle.py --dry-run unsubscribe --resource-ids <id>
python3 scripts/flexus_lifecycle.py --confirm create-instance --image Ubuntu
# Global option AFTER subcommand (后置写法)
python3 scripts/flexus_lifecycle.py show-images --region cn-east-3
python3 scripts/flexus_lifecycle.py unsubscribe --resource-ids <id> --dry-run
python3 scripts/flexus_lifecycle.py create-instance --confirm --image Ubuntu
リグレッションの参考情報(FLEXUS2-ISSUE-004):サブコマンドの前に記述した --dry-run/--region/--confirm は反映される必要があります。デフォルト値に暗黙的にリセットしてはいけません。
--dry-run unsubscribe --resource-ids <id>は、実際の確認を求めずにドライランを開始する必要があります--region cn-east-3 show-imagesは、デフォルトの cn-north-4 ではなく、cn-east-3 を照会する必要があります--confirm create-instance ...は、対話形式の確認プロンプトをスキップする必要があります
認証情報の設定例
方法1:環境変数を使用(優先・強く推奨)
python3 scripts/flexus_lifecycle.py create-instance --image Ubuntu --cpu 2 --memory 4
方法2:コマンドラインパラメーターを使用(次善・使用可)
# Temporary credentials
python3 scripts/flexus_lifecycle.py create-instance \
--ak <AK> --sk <SK> --security-token <TOKEN> \
--image Ubuntu \
--cpu 2 \
--memory 4
# Permanent credentials
python3 scripts/flexus_lifecycle.py create-instance \
--ak <AK> --sk <SK> \
--image Ubuntu \
--cpu 2 \
--memory 4
モジュールの詳細
0️⃣ クエリ関数
利用可能なリージョンを表示:
python3 scripts/flexus_lifecycle.py show-regions
リージョンで利用可能なイメージを表示:
python3 scripts/flexus_lifecycle.py --region cn-north-4 show-images
イメージで利用可能な仕様を表示:
python3 scripts/flexus_lifecycle.py --region cn-north-4 show-specs --image Ubuntu
1️⃣ インスタンスの作成(create-instance)
新しい Flexus L インスタンスを購入します。Windows と Linux に対応しています。
方法1:仕様を自動照合(推奨)
python3 scripts/flexus_lifecycle.py create-instance \
--region cn-north-4 \
--image Ubuntu \
--cpu 2 \
--memory 4
方法2:仕様を指定
python3 scripts/flexus_lifecycle.py create-instance \
--region cn-north-4 \
--image Ubuntu \
--plan-spec hf.medium.1.linux
方法3:デフォルトの仕様を使用
python3 scripts/flexus_lifecycle.py create-instance \
--region cn-north-4 \
--image Ubuntu
作成パラメーター:
| パラメーター | 説明 | デフォルト |
|---|---|---|
--image | イメージ名 | Ubuntu |
--plan-spec | インスタンスの仕様 | 自動照合または設定のデフォルト |
--cpu | CPU コア数(自動照合用) | - |
--memory | メモリ(GB、自動照合用) | - |
--period-num | 購入期間(月数) | 1 |
--period-type | 期間の種類(月/年) | month |
--instance-name | インスタンス名 | 自動生成 |
--auto-renew | 自動更新 | True |
--auto-pay | 自動支払い | True |
利用可能な仕様の参考情報:
仕様の詳細については、references/image-specs-guide.md を参照してください。
2️⃣ インスタンスの更新(renewal)
既存の Flexus L インスタンスを更新します。
# Preview renewal (recommended)
python3 scripts/flexus_lifecycle.py renewal \
--resource-ids <resource-id> \
--period-num 1 \
--period-type month \
--dry-run
# Confirm renewal
python3 scripts/flexus_lifecycle.py renewal \
--resource-ids <resource-id> \
--period-num 6 \
--period-type month \
--confirm
# Renew multiple instances
python3 scripts/flexus_lifecycle.py renewal \
--resource-ids id1,id2,id3 \
--period-num 1 \
--period-type year \
--confirm
更新パラメーター:
| パラメーター | 説明 | デフォルト |
|---|---|---|
--resource-ids | リソース ID(カンマ区切り) | 必須 |
--period-num | 更新期間の数 | 1 |
--period-type | 期間の種類(月/年) | month |
--auto-pay | 自動支払い | True |
3️⃣ インスタンスのサブスクリプション解除(unsubscribe)
Flexus L インスタンスのサブスクリプションをキャンセルします。
# Preview unsubscribe (recommended)
python3 scripts/flexus_lifecycle.py unsubscribe \
--resource-ids <resource-id> \
--dry-run
# Immediate unsubscribe (type 1)
python3 scripts/flexus_lifecycle.py unsubscribe \
--resource-ids <resource-id> \
--type 1 \
--confirm
# Expiry unsubscribe (type 2)
python3 scripts/flexus_lifecycle.py unsubscribe \
--resource-ids <resource-id> \
--type 2 \
--confirm
# Batch unsubscribe
python3 scripts/flexus_lifecycle.py unsubscribe \
--resource-ids id1,id2,id3 \
--type 1 \
--reason "Project ended" \
--confirm
サブスクリプション解除のパラメーター:
| パラメーター | 説明 | デフォルト |
|---|---|---|
--resource-ids | リソース ID(カンマ区切り) | 必須 |
--type | サブスクリプション解除の種類(1=即時、2=有効期限) | 1 |
--reason | サブスクリプション解除の理由 | なし |
サブスクリプション解除の種類:
| 種類 | 説明 | 効果 |
|---|---|---|
| 1 | リソースと更新期間のサブスクリプションを解除 | リソースは直ちに停止し、日割り計算で返金されます |
| 2 | 更新期間のみサブスクリプションを解除 | リソースは有効期限まで継続します |
利用可能なリージョン
⚠️ 注記:現在、Flexus L インスタンスは以下のリージョンのみをサポートしています。
| リージョン ID | リージョン名 | 仕様のプレフィックス |
|---|---|---|
| cn-north-4 | 中国北部 - 北京 4 | hf.* |
| cn-east-3 | 中国東部 - 上海 1 | hf.* |
| cn-south-1 | 中国南部 - 広州 | hf.* |
| cn-southwest-2 | 中国西南部 - 貴陽 1 | ahf.* |
| ap-southeast-1 | 中国・香港 | hf.* |
| ap-southeast-3 | アジア太平洋 - シンガポール | hf.* |
依存関係
Python の依存関係
pip でインストールします:
pip install requests huaweicloudsdkcore huaweicloudsdkbss
または、pyproject.toml を使用します:
cd scripts
pip install -e .
pyproject.toml
[project]
name = "flexus-lifecycle"
version = "1.0.0"
dependencies = [
"requests>=2.28.0",
"huaweicloudsdkcore>=3.0.0",
"huaweicloudsdkbss>=3.0.0",
]
ファイル構成
skills/huawei-cloud-flexus-l-server-manage/
├── SKILL.md # This file
├── scripts/
│ ├── flexus_lifecycle.py # Main lifecycle script
│ ├── flexus_specs_extractor.py # Dynamic specs fetcher
│ └── pyproject.toml # Dependencies
└── references/
├── api-reference.md # API reference
├── iam-policies.md # IAM policies
├── image-specs-guide.md # Image specs guide
├── permission-guide.md # Permission setup
└── troubleshooting.md # Troubleshooting
エラー処理
よくあるエラー
| エラーコード | 説明 | 解決方法 |
|---|---|---|
401 Unauthorized | AK/SK が無効です | AK/SK が正しく、有効であることを確認してください |
403 Forbidden | アクセスが拒否されました | 必要な IAM ポリシーを追加してください |
APIGW.0101 | API が見つかりません | リージョンでサービスが有効になっていることを確認してください |
APIGW.0301 | 署名の検証に失敗しました | SK が正しいことを確認してください |
BSS.0501 | リソースが見つかりません | リソース ID が正しいことを確認してください |
BSS.0502 | リソースの状態が無効です | リソースのステータスを確認してください |
400 Bad Request | パラメーターが無効です | 仕様とイメージの互換性を確認してください |
詳しいエラー処理については、references/troubleshooting.md を参照してください。
参考資料
外部資料
- Flexus L インスタンス購入ガイド - 公式 API ドキュメント
- AK/SK 認証 - IAM 認証ガイド
- Huawei Cloud コンソール - リソース管理コンソール