运行时依赖
安装命令
点击复制技能文档
分类:服务 简单应用服务器(SWAS-OPEN 2020-06-01) 使用 SWAS-OPEN OpenAPI 管理全部 SAS 资源:实例、磁盘、快照、镜像、密钥对、防火墙、Cloud Assistant、监控、标签和轻量级数据库。 前提条件 准备具有最小权限的 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 导入 os 从 alibabacloud_swas_open20200601.client 导入 Client 作为 SwasClient 从 alibabacloud_swas_open20200601 导入 models 作为 swas_models 从 alibabacloud_tea_openapi 导入 models 作为 open_api_models 定义 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") 或 os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") sk = os.getenv("ALICLOUD_ACCESS_KEY_SECRET") 或 os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") 如果 ak 和 sk: config.access_key_id = ak config.access_key_secret = sk 返回 SwasClient(config) 定义 list_regions(): client = create_client("cn-hangzhou") resp = client.list_regions(swas_models.ListRegionsRequest()) 返回 [r.region_id 为 r 在 resp.body.regions] 定义 list_instances(region_id:str): client = create_client(region_id) resp = client.list_instances(swas_models.ListInstancesRequest(region_id=region_id)) 返回 resp.body.instances 定义 main(): 对于 region_id 在 list_regions(): 对于 inst 在 list_instances(region_id): ip = getattr(inst, "public_ip_address", None) 或 getattr(inst, "inner_ip_address", None) spec = getattr(inst, "plan_name", None) 或 getattr(inst, "plan_id", None) 打印(inst.instance_id,ip 或 "-",spec 或 "-",region_id) 如果 __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。 工作流程 确认资源类型和区域(实例/磁盘/快照/镜像/防火墙/命令/数据库/标签)。 在 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 执行注释 目标实例必须处于运行状态。 Cloud Assistant 代理必须安装(使用 InstallCloudAssistant)。 对于 PowerShell 命令,请确保 Windows 实例上有所需的模块。 执行后,使用 DescribeInvocations 或 DescribeInvocationResult 获取状态和输出。 请参阅 references/command-assistant.md 以获取详细信息。 澄清问题(在不确定时询问) 目标区域是什么? 是否需要 VPC 端点? 目标实例 ID 是什么? 它们目前是否正在运行? 需要什么命令/脚本类型/超时? 是 Linux 还是 Windows? 是否需要批量执行或计划执行? 输出策略 如果需要保存结果或响应,请写入:output/compute-swas-open/ 验证 mkdir -p output/aliyun-swas-manage 对于 f 在 skills/compute/swas/aliyun-swas-manage/scripts/*.py: python3 -m py_compile "$f" 完成 echo "py_compile_ok" > output/aliyun-swas-manage/validate.txt 通过标准: 命令退出 0 且 output/aliyun-swas-manage/validate.txt 已生成。 输出和证据 在 output/aliyun-swas-manage/ 下保存工件、命令输出和 API 响应摘要。 在证据文件中包含关键参数(区域/资源 ID/时间范围)以实现可重现性。 前提条件 在执行之前配置具有最小权限的 Alibaba Cloud 凭证。 建议使用环境变量配置凭证。