alicloud-compute-swas-open について
SWAS-OPEN OpenAPI で Alibaba Cloud Simple Application Server のリソースを管理するスキルです。インスタンスや関連するディスク、ファイアウォール、スナップショット、イメージ、コマンド、軽量データベースを扱い、Python SDK の棚卸し・集計スクリプトも備えます。
主な機能
- 01インスタンスと関連サーバーリソースの管理
- 02複数リージョンのインスタンス一覧化
- 03プランまたは状態別の集計
- 04Cloud Assistant によるコマンド実行
- 05操作確認と記録の保存
活用シーン
- 01複数リージョンのインスタンス確認
- 02状態別またはプラン別の台数確認
- 03ファイアウォールルールや SSH アクセスの調整
- 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.yamlreferences/api_overview.mdcommand-assistant.mdendpoints.mdsources.mdscripts/fix_ssh_access.pyget_ssh_port.pylist_instances_all_regions.pysummary_instances_by_plan.pysummary_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 の優先順位
- Python SDK(推奨)
- OpenAPI Explorer
- その他の 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 に関する注意事項
aliyunCLI では、製品名としてswas-openが公開されていない場合があります。Python SDK の使用を推奨します。 CLI が必須の場合は、まず OpenAPI Explorer でリクエスト例を生成し、その後 CLI に移行してください。
ワークフロー
- リソースの種類とリージョン(インスタンス/ディスク/スナップショット/イメージ/ファイアウォール/コマンド/データベース/タグ)を確認します。
references/api_overview.mdで API グループと操作を特定します。- 呼び出し方法(Python SDK/OpenAPI Explorer/その他の SDK)を選択します。
- 変更後、クエリ 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 を参照してください。
確認事項(不明な場合に質問)
- 対象のリージョンはどこですか? VPC エンドポイントが必要ですか?
- 対象のインスタンス ID は何ですか? 現在 Running 状態ですか?
- 必要なコマンド/スクリプトの種類とタイムアウトは何ですか? Linux と Windows のどちらですか?
- 一括実行またはスケジュール実行が必要ですか?
出力ポリシー
結果や応答を保存する場合は、次の場所に書き込みます。
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 つ実行します。
- 範囲を限定し、パラメーターを明示して対象の操作を実行します。
- 結果を検証し、出力/証跡ファイルを保存します。
参考資料
- API の概要と操作グループ:
references/api_overview.md - エンドポイントと統合:
references/endpoints.md - Cloud Assistant の主な機能:
references/command-assistant.md - 公式ソース一覧:
references/sources.md
コメント
Markdown 対応