关于 alicloud-compute-swas-open
通过 SWAS-OPEN OpenAPI 管理 Alibaba Cloud Simple Application Server 资源的技能,涵盖实例及相关磁盘、防火墙、快照、镜像、命令和轻量数据库,并提供 Python SDK 脚本进行盘点与汇总。
主要功能
- 01管理实例及相关服务器资源
- 02跨区域盘点实例
- 03按套餐或状态汇总实例
- 04通过 Cloud 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详细介绍
类别:服务
简易应用服务器(SWAS-OPEN 2020-06-01)
使用 SWAS-OPEN OpenAPI 管理完整的 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等
云助手执行注意事项
- 目标实例必须处于 Running 状态。
- 必须安装云助手 Agent(使用
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。 - 如果地域不明确,请在执行变更操作前询问用户。
工作流
- 确认用户意图、地域、标识符,以及操作是只读还是会进行变更。
- 先运行一次最小化的只读查询,以验证连接和权限。
- 使用明确的参数和有限的范围执行目标操作。
- 验证结果并保存输出/证据文件。
参考资料
- API 概览和操作组:
references/api_overview.md - 端点和集成:
references/endpoints.md - Cloud Assistant 亮点:
references/command-assistant.md - 官方来源列表:
references/sources.md
评论
支持 Markdown