Install
openclaw skills install @huaweicloudskill/huawei-cloud-ecs-query查询华为云ECS弹性云服务器信息。仅用于查询,不包含创建/删除/规格变更等写操作。当用户需要查看华为云ECS实例列表、实例详情、实例状态时使用。支持AK/SK和Token两种认证方式,支持表格和JSON两种输出格式,支持多区域查询,支持 --detail/--full 增强输出(补全系统盘/数据盘大小类型、安全组、VPC/子网、镜像名称、密钥对、标签、EIP带宽、计费模式等运维字段)。触发条件:用户要求"查询云服务器列表"、"查看ECS实例详情"、"ECS运行状态"、"列出ECS"、"查看服务器状态",或请求中带 update/修改/创建/删除 ECS 以外的只读查询意图时(如查 flavor、可用区、镜像等 ECS 属性)使用。写操作请求(创建、删除、规格变更、开机/关机)请使用其他技能。
openclaw skills install @huaweicloudskill/huawei-cloud-ecs-query本技能用于查询华为云弹性云服务器(ECS)的信息,包括:
支持两种认证方式(AK/SK 签名认证 和 Token 认证),两种输出格式(表格 和 JSON),以及多区域查询。
list-servers / show-server 支持 --detail 或 --full 参数,可补全以下关键运维字段:
| 字段 | 说明 |
|---|---|
| 系统盘 | 大小(GB)与类型(如 GPSSD/SSD)以及挂载点 |
| 数据盘 | 数据盘列表(大小/类型/挂载点) |
| 安全组 | 实例所属安全组名称列表 |
| VPC/子网 | 实例所属 VPC ID 与子网 ID |
| 镜像名称 | 实例操作系统镜像名称(metadata.image_name) |
| 密钥对 | 实例登录密钥对名称 |
| 标签 | 实例标签列表 |
| EIP带宽 | 弹性公网 IP 及带宽大小(Mbps,来自 VPC/EIP 接口) |
| 计费模式 | 按需/包年包月/竞价(metadata.charging_mode) |
⚠️ Mandatory: every
hcloudcommand in this skill MUST be wrapped withskill-quality-cli run --skill-name huawei-cloud-ecs-query --— barehcloudcalls are strictly forbidden. Similarly, every script execution MUST be wrapped with the sameskill-quality-cli run --skill-name huawei-cloud-ecs-query --prefix (e.g.skill-quality-cli run --skill-name huawei-cloud-ecs-query -- python scripts/ecs_query.py list-servers ...) — barepython scripts/ecs_query.pyinvocations are forbidden. Bootstrapping exception:ensure_cli.sh/install_cli.shmay be executed bare during initial setup whenskill-quality-cliis not yet installed.
skill-quality-cli run --skill-name huawei-cloud-ecs-query -- pip install requests pyyaml
方式一:AK/SK 认证(推荐)
方式二:Token 认证
创建配置文件 ~/.huawei-ecs/config.yaml(或通过 --config 参数指定路径):
# 认证方式:aksk 或 token
auth_method: aksk
# AK/SK 认证配置
ak: "your-access-key-id"
sk: "your-secret-access-key"
project_id: "your-project-id"
# Token 认证配置(当 auth_method 为 token 时使用)
# username: "your-username"
# password: "your-password"
# domain_id: "your-domain-id"
# 默认区域
region: "cn-north-4"
# 多区域查询(可选):
# 使用 --region 切换到其他区域时,需要同时提供目标区域对应的 project_id。
# 推荐在此维护 区域 → 项目ID 映射;也可在命令行用 --project-id 临时指定。
# regions:
# cn-north-4: "your-project-id-for-cn-north-4"
# cn-south-1: "your-project-id-for-cn-south-1"
# 输出格式:table 或 json
output_format: "table"
当用户请求查询 ECS 信息时,按以下流程执行:
~/.huawei-ecs/config.yaml 是否存在;若缺失,提示用户先完成配置(参考"前置条件"章节)list-servers(可加 --status/--name 过滤)show-serverserver-status--detail 或 --full--output json;需要增强字段时用 --detail/--fullreferences/troubleshooting.md)本技能脚本通过华为云 API 直连实现查询。若环境中已安装 hcloud CLI(KooCLI)并完成 hcloud configure,可使用以下等价命令快速查询:
# 查询实例列表
skill-quality-cli run --skill-name huawei-cloud-ecs-query -- hcloud ECS ListServersDetails --cli-region=cn-north-4 --limit=25
# 查询单个实例详情
skill-quality-cli run --skill-name huawei-cloud-ecs-query -- hcloud ECS ShowServer --cli-region=cn-north-4 --server_id=<server_id>
# 查询实例状态(结合 --cli-query 过滤)
skill-quality-cli run --skill-name huawei-cloud-ecs-query -- hcloud ECS ListServersDetails --cli-region=cn-north-4 --status=ACTIVE
CLI 安装与认证方式参考 references/cli-installation-guide.md。
skill-quality-cli run --skill-name huawei-cloud-ecs-query -- python scripts/ecs_query.py list-servers --config config.yaml
可选参数:
--region:指定区域(如 cn-north-4, cn-east-3, ap-southeast-1)。跨区域查询时,该区域对应的 project_id 需在 config.yaml 的 regions 映射中配置,或使用 --project-id 参数指定,否则 --region 仅切换 API 域名、project_id 仍指向原区域,会报 Common.0018 错误--project-id:指定目标区域的项目ID(多区域查询时与 --region 配套使用)--output:输出格式(table 或 json)--limit:返回数量限制(默认25)--offset:页码偏移(默认1)--status:按状态过滤(ACTIVE, SHUTOFF, BUILD, ERROR 等)--name:按名称过滤--flavor:按规格ID过滤--detail / --full:展示完整运维字段(系统盘/数据盘大小类型、安全组、VPC/子网、镜像名称、密钥对、标签、EIP带宽、计费模式)。两者等价,--full 是 --detail 的别名# 查询实例列表(完整运维字段)
skill-quality-cli run --skill-name huawei-cloud-ecs-query -- python scripts/ecs_query.py list-servers --detail --config config.yaml
增强字段说明:系统盘/数据盘大小与类型来自 EVS
ListVolumes接口、EIP带宽来自 VPC/EIPListPublicips/v3接口。当查询账号未授予 EVS/VPC 只读权限时,这些列自动降级为仅展示挂载盘设备名与公网 IP 地址,不影响其余字段与整体查询。
python scripts/ecs_query.py show-server --server-id <server_id> --config config.yaml
# 查询实例详情(完整运维字段)
skill-quality-cli run --skill-name huawei-cloud-ecs-query -- python scripts/ecs_query.py show-server --server-id <server_id> --full --config config.yaml
获取 server_id 指引:表格输出中 ID 列会被截断(仅显示前 8 位),复制完整 ID 请使用
python scripts/ecs_query.py list-servers --output json --config config.yaml,从 JSON 输出的servers[].id字段获取完整 server_id(或hcloud ECS ListServersDetails --cli-region=<region>)。增强字段说明:
--detail/--full模式下show-server额外展示系统盘/数据盘的大小与类型(EVS 接口)以及 EIP 带宽(VPC/EIP 接口);未启用--detail/--full时,详情仍展示安全组/VPC/子网/镜像名称/密钥对/计费模式等 ECS 直接返回字段。
python scripts/ecs_query.py server-status --server-id <server_id> --config config.yaml
获取 server_id 指引:同上,使用
list-servers --output json获取完整 ID。
| 参数 | 必需 | 说明 | 示例 |
|---|---|---|---|
| config | 否 | 配置文件路径(默认 ~/.huawei-ecs/config.yaml) | --config config.yaml |
| region | 否 | 目标区域(默认取配置文件 region) | --region cn-south-1 |
| project-id | 否 | 目标区域对应的项目ID(多区域查询时与 --region 配套) | --project-id <cn-south-1项目ID> |
| output | 否 | 输出格式(table / json,默认 table) | --output json |
| limit | 否 | list-servers 返回数量限制(默认25) | --limit 50 |
| offset | 否 | list-servers 页码偏移(默认1) | --offset 2 |
| status | 否 | list-servers 按状态过滤 | --status ACTIVE |
| name | 否 | list-servers 按名称过滤 | --name web-01 |
| flavor | 否 | list-servers 按规格ID过滤 | --flavor s3.small.1 |
| detail | 否 | list-servers/show-server 展示完整运维字段 | --detail |
| full | 否 | list-servers/show-server 展示完整运维字段(--detail 别名) | --full |
| server-id | 是(show-server/server-status) | 云服务器ID(先用 list-servers --output json 获取) | --server-id <server_id> |
当使用 hcloud CLI(KooCLI)等价命令时,遵循标准格式:
hcloud <Service> <Operation> --cli-region=<region> [--key=value ...]
ECS),Operation 使用 PascalCase(如 ListServersDetails、ShowServer)--cli-region=<region> 区域参数--cli-region 指定区域,与脚本的 --region 参数含义一致实例列表默认以简洁表格形式展示,包含以下列:
| 列名 | 说明 |
|---|---|
| ID | 服务器ID |
| Name | 服务器名称 |
| Status | 运行状态 |
| Flavor | 规格类型 |
| vCPU | 虚拟CPU核数 |
| RAM(MB) | 内存大小 |
| Private IP | 私有IP地址 |
| Public IP | 弹性公网IP |
| Created | 创建时间 |
| AZ | 可用区 |
使用 --detail(或 --full)后,表格额外追加以下列:
| 列名 | 说明 |
|---|---|
| System Disk | 系统盘大小/类型/挂载点(EVS 接口补全) |
| Data Disks | 数据盘列表(大小/类型/挂载点,EVS 接口补全) |
| Security Group | 安全组名称 |
| VPC/Subnet | VPC ID / 子网 ID(截断显示) |
| Image | 镜像名称(metadata.image_name) |
| KeyPair | 密钥对名称 |
| Tags | 实例标签 |
| EIP(BW) | 公网 IP 及带宽大小(Mbps,VPC/EIP 接口补全) |
| Billing | 计费模式(按需/包年包月/竞价) |
注意:表格模式下 ID 列会截断显示(仅前 8 位),如需完整 ID(如用作
--server-id),请使用--output json输出。
show-server 详情默认展示核心配置字段及 ECS 接口直返的运维字段(系统盘/数据盘挂载点、安全组、VPC/子网、镜像名称、密钥对、计费模式、标签),若 API 返回挂载的云硬盘信息(os-extended-volumes:volumes_attached),会一并展示“挂载云硬盘”(设备名 + 云硬盘ID)。使用 --detail/--full 时,额外补全系统盘/数据盘的大小与类型(EVS 接口)及 EIP 带宽(VPC/EIP 接口,含带宽大小 Mbps)。查看云硬盘的性能等更详细信息,请使用云硬盘(EVS)相关技能。
| 状态值 | 含义 |
|---|---|
| ACTIVE | 运行中 |
| SHUTOFF | 已关机 |
| BUILD | 创建中 |
| ERROR | 故障 |
| REBOOT | 重启中 |
| HARD_REBOOT | 强制重启中 |
| MIGRATING | 迁移中 |
| RESIZE | 规格变更中 |
| VERIFY_RESIZE | 规格变更验证中 |
详细API接口说明请参考 references/api-reference.md。
references/api-reference.md — ECS API 接口与字段说明、认证流程references/cli-installation-guide.md — Python 环境与 hcloud CLI 安装、认证配置references/iam-policies.md — 所需 IAM 权限策略references/troubleshooting.md — 常见错误与排障指引references/acceptance-criteria.md — 验收标准references/verification-method.md — 各查询操作验证方法~/.huawei-ecs/config.yaml错误: 认证失败 (HTTP xxx)…,检查 AK/SK 或 Token 配置是否正确,账号是否具备 ECS 只读权限--region 切换区域时 project_id 也必须指向目标区域;请在 config.yaml 的 regions 映射中配置,或使用 --project-id 指定ecs.{region}.myhuaweicloud.com;--detail/--full 模式还会访问 evs.{region}.myhuaweicloud.com 与 vpc.{region}.myhuaweicloud.comreferences/troubleshooting.mdecs.{region}.myhuaweicloud.com)references/iam-policies.md;使用 --detail/--full 补全系统盘/数据盘大小类型与 EIP 带宽时,还需具备 EVS(EVS ReadOnlyAccess)与 VPC(VPC ReadOnlyAccess)只读权限,未授权时相关字段自动降级展示且不影响查询show-server 详情展示 API 返回的挂载云硬盘 ID/设备名;--detail/--full 模式通过 EVS ListVolumes 接口补全系统盘/数据盘的大小与类型。查询云硬盘的性能、加密等扩展信息请使用云硬盘(EVS)相关技能“抱歉,本技能仅支持 ECS 实例信息只读查询,不支持该写操作。请在华为云控制台完成,或使用对应的 ECS 管理类技能。”