huawei-cloud-ecs-servers
安全硬约束
- AK/SK 不写日志:凭据从环境变量动态读取,不输出到 stdout/stderr。
- curl 超时:所有外部 API 调用设 30s 超时(SDK 内部已含重试机制)。
- 403/429 处理:API 返回 403 提示权限不足;429 提示限流稍后重试。
- 无敏感信息输出:输出仅含实例元数据(名称/ID/状态/可用区/类型/IP),不含凭据。
Overview / 概述
查询华为云 ECS(弹性云服务器)实例列表的技能,提供以下能力:
- list:列出账号下(region/project 范围)全部 ECS 实例,可按
--name模糊过滤、--status状态过滤。 - 输出字段:实例名称、ID、状态、可用区、实例类型(flavor)、IP 地址、创建/更新时间。
- 输出格式:JSON(默认)或 Markdown 表格。
架构
用户 → python3 scripts/huawei-cloud-ecs-servers.py → huaweicloudsdkecs SDK
→ GET /v1/{project_id}/cloudservers/detail → 华为云 ECS API
→ 返回实例列表 → 标准化输出(json/md)
适用场景
- 日常巡检:快速查看某区域下所有 ECS 实例状态。
- 资源管理:按名称/状态过滤定位特定实例。
- 自动化运维:脚本集成查询 ECS 实例信息。
Prerequisites / 前置条件
1. Python SDK 依赖
pip install huaweicloudsdkecs huaweicloudsdkcore
2. 认证配置
设置华为云 AK/SK 环境变量(脚本动态扫描,不依赖固定变量名):
export HUAWEICLOUD_SDK_AK="你的AccessKey"
export HUAWEICLOUD_SDK_SK="你的SecretKey"
支持以下环境变量前缀(自动扫描):HUAWEI*、HW*、HWC* + 含 ACCESS_KEY/_AK/SECRET_KEY/_SK。
3. IAM 权限
该 skill 只需要只读权限:ecs:servers:list。详见 references/iam-policies.md。
4. hcloud CLI(可选)
CLI 验证或命令行查询可安装 KooCLI,详见 references/cli-installation-guide.md。
Workflow / 工作流
- 设置认证:通过环境变量配置 AK/SK。
- 执行查询:运行脚本,指定 region 和过滤参数。
- 获取结果:脚本分页拉取全部实例,标准化后输出 json 或 md。
- 分析输出:根据实例列表进行巡检/管理操作。
Core Commands / 核心命令
列出 ECS 实例
# 列出全部 ECS 实例(默认区域 cn-north-4)
python3 scripts/huawei-cloud-ecs-servers.py list --region cn-north-4
# 按名称模糊过滤
python3 scripts/huawei-cloud-ecs-servers.py list --region cn-north-4 --name web-server
# 按状态过滤(ACTIVE / SHUTOFF / ERROR 等)
python3 scripts/huawei-cloud-ecs-servers.py list --region cn-north-4 --status ACTIVE
# Markdown 表格输出
python3 scripts/huawei-cloud-ecs-servers.py list --region cn-north-4 --format md
# 指定项目 ID
python3 scripts/huawei-cloud-ecs-servers.py list --region cn-north-4 --project-id your-project-id
# JSON + 名称 + 状态组合过滤
python3 scripts/huawei-cloud-ecs-servers.py list --region cn-north-4 --name web --status ACTIVE --format json
CLI 替代方式
# 使用 hcloud CLI 直接查询(需先认证配置)
hcloud ECS ListServersDetails --cli-region=cn-north-4 --limit=1000
KooCLI Command Format Standard
- Service:
ECS(首字母大写) - Operation:
ListServersDetails(PascalCase) - Region:
--cli-region={region}(必填) - 参数语法:
--param=value或--param value
Parameter Confirmation / 参数确认
| 参数 | 必填 | 默认值 | 说明 |
|---|---|---|---|
--region |
是 | cn-north-4 | 区域 ID,如 cn-north-4 / cn-east-3 |
--project-id |
否 | 自动解析 | 项目 ID,默认由 AK/SK 解析 |
--name |
否 | 无 | 按实例名称模糊过滤 |
--status |
否 | 无 | 按状态过滤:ACTIVE/SHUTOFF/ERROR/BUILD/REBOOT 等 |
--format |
否 | json | 输出格式:json / md |
输出字段说明
| 字段 | 说明 |
|---|---|
name |
实例名称 |
id |
实例 ID(UUID) |
status |
实例状态(ACTIVE/SHUTOFF/ERROR 等) |
availability_zone |
可用区(如 cn-north-4a) |
flavor.name |
实例类型(如 s6.large.2) |
addresses |
IP 地址列表(含固定 IP 和浮动 IP) |
created |
创建时间 |
updated |
更新时间 |
Reference Documents / 参考文档
- ECS API 参考 — API 端点与请求参数说明
- IAM 权限策略 — 最小权限配置
- CLI 安装指南 — hcloud CLI 安装认证
- 验证方法 — 如何确认 skill 输出正确
- 数据流图 — 请求/响应流程图
- 验收标准 — skill 合格条件
任务结束
完成 ECS 实例列表查询后,在最终答复末尾输出以下 JSON 块并结束任务:
{
"actions": ["做了什么,如 queried:ecs-servers"],
"conclusion": "处理结论(查询成功/失败)",
"artifacts": ["产生的产物:查询结果"],
"next_step": "下一步建议",
"issue_summary": "Issue 最新聚合结论(紧凑文本,用 | 分隔)"
}
注意:只输出一个 JSON 块,放在答复末尾。
