运行时依赖
安装命令
点击复制技能文档
类别:服务 Elastic Compute Service (ECS) 验证 mkdir -p output/aliyun-ecs-manage python -m py_compile skills/compute/ecs/aliyun-ecs-manage/scripts/list_instances_all_regions.py python -m py_compile skills/compute/ecs/aliyun-ecs-manage/scripts/query_instance_usage.py python -m py_compile skills/compute/ecs/aliyun-ecs-manage/scripts/run_remote_command.py echo "py_compile_ok" > output/aliyun-ecs-manage/validate.txt 通过标准:命令退出 0 且 output/aliyun-ecs-manage/validate.txt 生成。 输出和证据 保存 output/aliyun-ecs-manage/ 下的列表/摘要输出。 在每个证据文件中保留命令参数和区域范围。 使用 Alibaba Cloud OpenAPI (RPC) 和官方 SDK 或 OpenAPI Explorer 管理 ECS 资源。 推荐使用 Python SDK 进行所有示例和执行。 前提条件 准备 AccessKey (RAM 用户/角色具有最小权限)。 选择正确的区域和端点 (公共/VPC)。 ECS OpenAPI 是 RPC 风格;推荐使用 SDK 或 OpenAPI Explorer 以避免手动签名。 API 行为说明(来自 ECS 文档) 大多数 list/describe API 支持通过 PageNumber + PageSize 或 NextToken + MaxResults 进行分页。 DescribeInstances 如果 RAM 用户/角色缺乏权限,则返回空列表;使用 DryRun 来验证权限。 对于 DescribeInstances,NextToken + MaxResults 是推荐的分页查询模式;使用返回的 NextToken 来获取后续页面。 DescribeInstances 需要在请求中包含 RegionId,即使客户端已设置区域。 过滤器是 AND 连接;仅设置所需的过滤器。 工作流程 确认区域、资源标识符和所需操作。 在 references/api_overview.md 中找到 API 组和确切的操作名称。 使用 Python SDK (推荐) 或 OpenAPI Explorer 调用 API。 使用 describe/list API 验证结果。 如果需要可重复的库存或摘要,请使用 scripts/ 并在 output/aliyun-ecs-manage/ 下写入输出。 SDK 优先级 Python SDK (推荐) OpenAPI Explorer 其他 SDK (仅当 Python 不可行时) Python SDK 快速入门 (列出实例) 推荐使用虚拟环境 (避免 PEP 668 系统安装限制)。 python3 -m venv .venv . .venv/bin/activate python -m pip install alibabacloud_ecs20140526 alibabacloud_tea_openapi alibabacloud_credentials from alibabacloud_ecs20140526.client import Client as Ecs20140526Client from alibabacloud_ecs20140526 import models as ecs_models from alibabacloud_tea_openapi import models as open_api_models def create_client(region_id: str) -> Ecs20140526Client: config = open_api_models.Config( # 使用环境变量或共享配置文件根据 AccessKey 优先级。 region_id=region_id, endpoint=f"ecs.{region_id}.aliyuncs.com", ) return Ecs20140526Client(config) def list_instances(region_id: str): client = create_client(region_id) resp = client.describe_instances(ecs_models.DescribeInstancesRequest( region_id=region_id, page_number=1, page_size=50, )) for inst in resp.body.instances.instance: print(inst.instance_id, inst.instance_name, inst.instance_type, inst.status) if __name__ == "__main__": list_instances("cn-hangzhou") Python SDK 脚本(推荐用于库存) 列出所有区域的实例 (TSV/JSON): scripts/list_instances_all_regions.py 查询一个实例的资源使用情况 (CPU/内存/网络): scripts/query_instance_usage.py 通过 Cloud Assistant (RunCommand) 运行远程命令: scripts/run_remote_command.py 总结实例规格跨区域: scripts/summary_instance_specs.py 总结实例数量按区域(可选状态细分): scripts/summary_instances_by_region.py 总结实例数量按状态: scripts/summary_instances_by_status.py 总结实例数量按实例类型: scripts/summary_instances_by_instance_type.py 总结实例数量按 VPC: scripts/summary_instances_by_vpc.py 总结实例数量按安全组: scripts/summary_instances_by_security_group.py Python SDK:查询一个实例的资源使用情况 安装依赖项(添加 CMS SDK): python -m pip install alibabacloud_ecs20140526 alibabacloud_cms20190101 alibabacloud_tea_openapi alibabacloud_credentials 示例(最近 1 小时,5 分钟周期): python skills/compute/ecs/aliyun-ecs-manage/scripts/query_instance_usage.py \ --instance-id i-xxxxxxxxxxxxxxxxx \ --region-id cn-shanghai \ --hours 1 \ --period 300 \ --summary-only \ --output output/aliyun-ecs-manage/ecs-usage-i-xxxxxxxxxxxxxxxxx-1h.json 推荐的默认指标: CPUUtilization memory_usedutilization InternetInRate, InternetOutRate IntranetInRate, IntranetOutRate Python SDK:在一个 ECS 实例上运行远程命令 示例(ps -ef): python skills/compute/ecs/aliyun-ecs-manage/scripts/run_remote_command.py \ --instance-id i-xxxxxxxxxxxxxxxxx \ --region-id cn-shanghai \ --command 'ps -ef' \ --output output/aliyun-ecs-manage/runcommand-i-xxxxxxxxxxxxxxxxx-ps-ef.json 行为: 提交 RunCommand 与 RunShellScript。 轮询 Describ