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. 04通过 Cloud 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

详细介绍

类别:服务

简易应用服务器(SWAS-OPEN 2020-06-01)

使用 SWAS-OPEN OpenAPI 管理完整的 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 等

云助手执行注意事项

  • 目标实例必须处于 Running 状态。
  • 必须安装云助手 Agent(使用 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. 先运行一次最小化的只读查询,以验证连接和权限。
  3. 使用明确的参数和有限的范围执行目标操作。
  4. 验证结果并保存输出/证据文件。

参考资料

  • API 概览和操作组:references/api_overview.md
  • 端点和集成:references/endpoints.md
  • Cloud Assistant 亮点:references/command-assistant.md
  • 官方来源列表:references/sources.md

评论

支持 Markdown