mcpField
A
alicloud-compute-swas-open

alicloud-compute-swas-open

github.com/cinienceクラウド・DevOps396265 回インストール11 週間前に更新
リポジトリ

alicloud-compute-swas-open について

SWAS-OPEN OpenAPI で Alibaba Cloud Simple Application Server のリソースを管理するスキルです。インスタンスや関連するディスク、ファイアウォール、スナップショット、イメージ、コマンド、軽量データベースを扱い、Python SDK の棚卸し・集計スクリプトも備えます。

主な機能

  1. 01インスタンスと関連サーバーリソースの管理
  2. 02複数リージョンのインスタンス一覧化
  3. 03プランまたは状態別の集計
  4. 04Cloud Assistant によるコマンド実行
  5. 05操作確認と記録の保存

活用シーン

  1. 01複数リージョンのインスタンス確認
  2. 02状態別またはプラン別の台数確認
  3. 03ファイアウォールルールや SSH アクセスの調整
  4. 04インスタンスでのコマンド実行と結果確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cinience/alicloud-skills --skill alicloud-compute-swas-open

インストール後、Claude Code で/alicloud-compute-swas-openを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
api_overview.md
command-assistant.md
endpoints.md
sources.md
scripts/
fix_ssh_access.py
get_ssh_port.py
list_instances_all_regions.py
summary_instances_by_plan.py
summary_instances_by_status.py

詳細

Category:サービス

Simple Application Server(SWAS-OPEN 2020-06-01)

SWAS-OPEN OpenAPI を使用して、インスタンス、ディスク、スナップショット、イメージ、キーペア、ファイアウォール、Cloud Assistant、監視、タグ、軽量データベースなど、SAS の全リソースを管理します。

前提条件

  • 最小権限の RAM ユーザー/ロールで AccessKey を用意します。
  • 適切なリージョンと、それに対応するエンドポイント(パブリック/VPC)を選択します。ALICLOUD_REGION_ID をデフォルトのリージョンとして使用できます。設定されていない場合は、最も適切なリージョンを選択し、不明な場合はユーザーに確認します。
  • この OpenAPI は RPC 署名を使用します。手動で署名するのではなく、Python SDK または OpenAPI Explorer の利用を推奨します。

SDK の優先順位

  1. Python SDK(推奨)
  2. OpenAPI Explorer
  3. その他の SDK
Python SDK による簡易クエリ(インスタンス ID/IP/プラン)

仮想環境の使用を推奨します(PEP 668 によるシステムへのインストール制限を回避できます)。

python3 -m venv .venv
. .venv/bin/activate
python -m pip install alibabacloud_swas_open20200601 alibabacloud_tea_openapi alibabacloud_credentials
import os
from alibabacloud_swas_open20200601.client import Client as SwasClient
from alibabacloud_swas_open20200601 import models as swas_models
from alibabacloud_tea_openapi import models as open_api_models


def create_client(region_id: str) -> SwasClient:
    config = open_api_models.Config(
        region_id=region_id,
        endpoint=f"swas.{region_id}.aliyuncs.com",
    )
    ak = os.getenv("ALICLOUD_ACCESS_KEY_ID") or os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
    sk = os.getenv("ALICLOUD_ACCESS_KEY_SECRET") or os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
    if ak and sk:
        config.access_key_id = ak
        config.access_key_secret = sk
    return SwasClient(config)


def list_regions():
    client = create_client("cn-hangzhou")
    resp = client.list_regions(swas_models.ListRegionsRequest())
    return [r.region_id for r in resp.body.regions]


def list_instances(region_id: str):
    client = create_client(region_id)
    resp = client.list_instances(swas_models.ListInstancesRequest(region_id=region_id))
    return resp.body.instances


def main():
    for region_id in list_regions():
        for inst in list_instances(region_id):
            ip = getattr(inst, "public_ip_address", None) or getattr(inst, "inner_ip_address", None)
            spec = getattr(inst, "plan_name", None) or getattr(inst, "plan_id", None)
            print(inst.instance_id, ip or "-", spec or "-", region_id)


if __name__ == "__main__":
    main()
Python SDK スクリプト(インベントリと概要の取得に推奨)
  • 全リージョンのインスタンスインベントリ(TSV/JSON):scripts/list_instances_all_regions.py
  • プラン別のインスタンス数:scripts/summary_instances_by_plan.py
  • ステータス別のインスタンス数:scripts/summary_instances_by_status.py
  • SSH キーベースのアクセスを修正(カスタムポートに対応):scripts/fix_ssh_access.py
  • インスタンスの現在の SSH ポートを取得:scripts/get_ssh_port.py

CLI に関する注意事項

  • aliyun CLI では、製品名として swas-open が公開されていない場合があります。Python SDK の使用を推奨します。 CLI が必須の場合は、まず OpenAPI Explorer でリクエスト例を生成し、その後 CLI に移行してください。

ワークフロー

  1. リソースの種類とリージョン(インスタンス/ディスク/スナップショット/イメージ/ファイアウォール/コマンド/データベース/タグ)を確認します。
  2. references/api_overview.md で API グループと操作を特定します。
  3. 呼び出し方法(Python SDK/OpenAPI Explorer/その他の SDK)を選択します。
  4. 変更後、クエリ API で状態と結果を検証します。

一般的な操作一覧

  • インスタンスのクエリ/起動/停止/再起動:ListInstances、StartInstance(s)、StopInstance(s)、RebootInstance(s)
  • コマンド実行:RunCommand または CreateCommand + InvokeCommand。DescribeInvocations/DescribeInvocationResult を使用します
  • ファイアウォール:ListFirewallRules/CreateFirewallRule(s)/ModifyFirewallRule/EnableFirewallRule/DisableFirewallRule
  • スナップショット/ディスク/イメージ:CreateSnapshot、ResetDisk、CreateCustomImage など

Cloud Assistant の実行に関する注意事項

  • 対象インスタンスが Running 状態である必要があります。
  • Cloud Assistant エージェントがインストールされている必要があります(InstallCloudAssistant を使用します)。
  • PowerShell コマンドを実行する場合は、Windows インスタンスで必要なモジュールが利用可能であることを確認します。
  • 実行後、DescribeInvocations または DescribeInvocationResult を使用してステータスと出力を取得します。

詳細については、references/command-assistant.md を参照してください。

確認事項(不明な場合に質問)

  1. 対象のリージョンはどこですか? VPC エンドポイントが必要ですか?
  2. 対象のインスタンス ID は何ですか? 現在 Running 状態ですか?
  3. 必要なコマンド/スクリプトの種類とタイムアウトは何ですか? Linux と Windows のどちらですか?
  4. 一括実行またはスケジュール実行が必要ですか?

出力ポリシー

結果や応答を保存する場合は、次の場所に書き込みます。 output/compute-swas-open/

検証

mkdir -p output/alicloud-compute-swas-open
for f in skills/compute/swas/alicloud-compute-swas-open/scripts/*.py; do
  python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/alicloud-compute-swas-open/validate.txt

合格基準:コマンドが 0 で終了し、output/alicloud-compute-swas-open/validate.txt が生成されること。

出力と証跡

  • 成果物、コマンド出力、API 応答の概要を output/alicloud-compute-swas-open/ に保存します。
  • 再現性を確保するため、証跡ファイルに主要なパラメーター(リージョン/リソース ID/期間)を含めます。

前提条件

  • 実行前に、最小権限の Alibaba Cloud 認証情報を設定します。
  • 環境変数の使用を推奨します:ALICLOUD_ACCESS_KEY_ID、ALICLOUD_ACCESS_KEY_SECRET、任意の ALICLOUD_REGION_ID。
  • リージョンが不明な場合は、変更を伴う操作を実行する前にユーザーに確認します。

ワークフロー

  1. ユーザーの意図、リージョン、識別子、および操作が読み取り専用か変更を伴うものかを確認します。
  2. 接続と権限を確認するため、最小限の読み取り専用クエリを 1 つ実行します。
  3. 範囲を限定し、パラメーターを明示して対象の操作を実行します。
  4. 結果を検証し、出力/証跡ファイルを保存します。

参考資料

  • API の概要と操作グループ:references/api_overview.md
  • エンドポイントと統合:references/endpoints.md
  • Cloud Assistant の主な機能:references/command-assistant.md
  • 公式ソース一覧:references/sources.md

コメント