关于 huawei-cloud-monitoring-query
通过本地 Python 脚本和 Huawei Cloud Python SDK 查询资源及部分 CES、EPS 信息的只读技能,适用于资源盘点和自动化参数准备。它不提供监控时序指标值查询,也不执行资源写入操作。
主要功能
- 01查询资源列表和详情
- 02查询可用规格、镜像及磁盘类型
- 03获取资源标识和依赖关系
- 04通过本地脚本调用 Python SDK
- 05不支持监控指标数据点查询
- 06仅执行只读查询
适用场景
- 01盘点 Huawei Cloud 现有资源
- 02收集自动化配置所需的资源参数
- 03查询 CES 或 EPS 支持范围内的信息
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-monitoring-query安装后在 Claude Code 中输入/huawei-cloud-monitoring-query确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
requirements.txtreferences/ces/guide.mdreferences/eps/guide.mdscripts/check_env.ps1check_env.shconfig.pyensure_env.pyscripts/ces/list_agent_dimension_info.pylist_alarm_histories.pylist_alarm_rule_policies.pylist_alarm_rule_resources.pylist_alarm_rules.pylist_alarm_template_association_alarms.pylist_alarm_templates.pylist_ces_target_project_tags.pylist_dashboard_infos.pylist_dashboard_widgets.pylist_notification_mask_resources.pylist_notification_masks.pylist_one_click_alarm_rules.pylist_one_click_alarms.pylist_resource_groups_services_resources.pylist_resource_groups.pyshow_alarm_template.pyshow_resource_group.pyshow_widget.pyscripts/eps/list_api_versions.pylist_enterprise_projects.pylist_migration_records.pylist_providers.py详细介绍
Huawei Cloud 资源查询
⚠️ 执行方式(必读):此技能通过本地 Python 脚本执行查询。禁止使用 hcloud、openstack 或其他 CLI 工具,也禁止直接调用 API。
- 查询脚本位于技能目录下的
scripts/<service_category>/(例如scripts/as/list_scaling_groups.py)- 所有脚本和环境检查脚本都在技能包中。必须使用
skill action=exec执行这些脚本。不得直接在 shell 中运行。- 有关具体脚本路径和参数,请参阅
references/<service>/guide.md- 不得尝试使用 hcloud、openstack、curl IAM 或任何其他 CLI/API 方式。此技能不依赖这些工具。
- 所有路径均相对于技能目录,即存放此 SKILL.md 的目录。
概述
此技能是一个独立的只读查询技能,通过本地 Python 脚本调用 Huawei Cloud Python SDK,以查询 Huawei Cloud 资源、可用规格和现有资源信息。
此技能适用于以下场景:
- 查询特定区域中可用的云资源规格
- 查询特定 OS 类型的可用镜像
- 查询磁盘类型和现有磁盘信息
- 查询现有资源及其关键属性
- 查询未通过 Terraform 或其他 IaC 工具创建的资源
- 为自动化配置、资源验证或环境清点准备实际参数
- 获取可复用信息,例如资源 ID、名称、规格、镜像、网络、磁盘等
此技能不处理以下事项:
- 创建资源
- 修改资源
- 删除资源
- 猜测或编造未经查询的信息
能力范围
此技能通过 scripts 目录中按类别划分的脚本提供查询能力,并通过 references 目录中按类别划分的指南提供使用说明。
此技能提供的能力包括:
- 查询资源列表
- 查询单个资源的详细信息
- 查询可用规格、镜像和磁盘类型等选型信息
- 查询现有资源的关键标识符和依赖关系
范围之外(不支持)
为避免误导用户,此技能明确不支持以下场景。如果用户提出其中任何请求,请直接说明不支持,不要尝试返回不可靠的结果:
- 查询原始指标数据点——没有脚本封装
ShowMetricData/BatchListMetricData/ListMetrics。此技能无法获取指标的时间序列值(例如“过去 1 小时的 RDS CPU 利用率”“过去 24 小时的 EVS 磁盘吞吐量”)。 - 查询服务级指标值——虽然 CES 汇总了来自
SYS.RDS、SYS.DCS、SYS.DMS、SYS.EVS、SYS.ELB、SYS.ECS等服务的指标,但此技能不提供脚本来获取这些命名空间的实际指标值。以下服务列表并不完整;这些服务的指标数据无法通过此技能查询:- RDS(关系型数据库服务)——
SYS.RDS - DCS(分布式缓存服务)——
SYS.DCS - DMS(分布式消息服务)——
SYS.DMS - EVS(云硬盘服务)——
SYS.EVS - ELB(弹性负载均衡)——
SYS.ELB - ECS(弹性云服务器)——
SYS.ECS - 上述未列出的其他
SYS.*命名空间同样不支持指标值查询
- RDS(关系型数据库服务)——
- CES 和 EPS 以外的服务——脚本仅存在于
scripts/ces/和scripts/eps/下。未出现在references/ces/guide.md或references/eps/guide.md中的任何服务均不受支持。 - 创建/修改/删除资源——写操作不在支持范围内。
注意:如需查询实际监控指标数据点,请使用 Huawei Cloud 控制台、直接调用 CES API,或使用专用的指标数据技能(如有)。
使用原则
重要:在此技能中执行的脚本路径均相对于技能目录,即 SKILL.md 所在的目录。
- 此技能仅执行查询,不执行任何写入操作
- 优先使用用户明确指定的区域、项目、可用区、资源名称、资源 ID 等信息
- 查询结果必须基于实际 API 响应;不得根据经验推断
- 返回结果应优先保留关键字段,以便后续复用
- 结果集较大时,先按区域、名称、ID、状态、标签等缩小范围
- 如果当前资源类型没有对应的脚本或指南,需明确说明不支持;不得返回不可靠的结果
- 如果用户未提供必要的范围信息,且环境中没有默认值,请在执行查询前确认详情
- 直接按照 guide.md 执行;不要读取 scripts 目录中的脚本内容
- 输出较大时缓存结果
- 执行每个脚本前,必须先运行
-h查看用法 - 不得臆造脚本名称;按照 guide.md 中的脚本名称执行。如果 guide.md 中没有某个脚本名称,则表示不支持
前提条件
使用前,必须运行环境检查脚本,一步完成环境验证和依赖安装:
- Linux / macOS:
skill action=exec: bash skill://scripts/check_env.sh - Windows:
skill action=exec: powershell -ExecutionPolicy Bypass -File skill://scripts/check_env.ps1
Windows 注意:不要使用
&&链接命令(PowerShell 5.x 不支持);如果需要先切换目录,请使用分号。
脚本将按顺序检查:Python >= 3.6 → 安装依赖 → 验证 SDK → 验证凭据 → 验证服务可用性。 如果环境检查失败,请先解决问题,再执行其他脚本。
环境变量:
| 变量 | 必需 | 说明 |
|---|---|---|
| HW_ACCESS_KEY | 是 | 华为云 AK |
| HW_SECRET_KEY | 是 | 华为云 SK |
| HW_REGION_NAME | 否 | 默认值为 cn-north-4 |
| HW_PROJECT_ID | 否 | 项目 ID(如果未设置,将通过 IAM API 自动获取) |
| HW_SECURITY_TOKEN | 否 | 使用临时 AK/SK 时必需 |
不得输出上述环境变量的值。 其他资源脚本所需的额外参数(可用区、企业项目等),请参阅对应的 guide.md。
执行流程
调用此技能时,必须按照以下步骤执行。不要等待用户再次提示:
步骤 1:环境准备
运行环境检查脚本,确保依赖已安装且凭据已配置:
- Linux / macOS:
skill action=exec: bash skill://scripts/check_env.sh - Windows:
skill action=exec: powershell -ExecutionPolicy Bypass -File skill://scripts/check_env.ps1
如果环境检查失败,请根据提示解决问题并重新运行,直到检查通过。
步骤 2:识别并执行查询脚本
- 根据用户的查询意图,阅读
references/<service>/guide.md,确定要执行的脚本路径和参数 - 首先运行
-h查看脚本用法:- Linux / macOS:
skill action=exec: skill://.venv/bin/python3 skill://scripts/<service>/<script>.py -h - Windows:
skill action=exec: skill://.venv/Scripts/python3.exe skill://scripts/<service>/<script>.py -h
- Linux / macOS:
- 根据用户需求组装参数并执行脚本:
- Linux / macOS:
skill action=exec: skill://.venv/bin/python3 skill://scripts/<service>/<script>.py <parameters> - Windows:
skill action=exec: skill://.venv/Scripts/python3.exe skill://scripts/<service>/<script>.py <parameters>
- Linux / macOS:
- 整理结果并返回给用户
重要:
- 所有脚本和环境检查脚本都位于 skill 包中。必须使用
skill action=exec执行。不要直接在 shell 中运行。 - venv 由 check_env 脚本自动创建。在 Linux/macOS 上,Python 位于
.venv/bin/python3;在 Windows 上,位于.venv/Scripts/python3.exe - 不要直接使用
python3执行脚本 - 不要读取 scripts 目录中脚本的源代码;只需按照 guide.md 中的说明操作
- 如果输出较大,请缓存结果
--project_id参数为可选项;如果未提供,系统会根据区域通过 IAM API 自动获取
目录结构
目录约定如下(所有路径均相对于 skill 目录):
scripts/<resource_category>/包含对应资源的 Python 查询脚本。 无需读取脚本内容;只需根据 guide.md 中的用法说明执行脚本references/<resource_category>/guide.md包含对应资源的使用指南- 每个脚本仅负责一项明确、单一的查询操作
- 每个资源类别必须至少维护一个 guide.md,用于说明脚本功能、参数和用法
参数确认
执行查询脚本前,请确认以下参数:
| 参数 | 必需 | 说明 |
|---|---|---|
| region | 是 | 华为云区域,例如 cn-north-4 |
| --project_id | 否 | 项目 ID;如果未提供,将自动获取 |
| --availability_zone | 否 | 可用区;某些资源查询需要此参数 |
有关脚本专用参数,请参阅 references/<service>/guide.md。
输出格式
查询结果以 JSON 格式输出,并包含以下常见字段:
total:匹配资源的总数items:资源列表,每个资源包含 id、name、status 等关键字段- 具体字段因资源类型而异;详情请参阅各自的 guide.md
验证方法
- 运行环境检查脚本,确认依赖项和凭据可用
- 使用
-h参数查看脚本用法,并确认参数正确 - 查询已知资源,并与控制台数据进行比较,以验证结果准确性
- 检查返回的
total数量是否合理
最佳实践
- 先缩小查询范围(指定区域、可用区等),以免返回过多数据
- 使用
--help查看脚本支持的完整参数列表 - 在本地缓存较大的查询结果,避免重复请求
- 需要获取多个资源的信息时,按依赖顺序查询(例如先查询 VPC,再查询子网)
- 脚本执行失败时,先检查环境变量和网络连接
参考文档
- 各服务的查询脚本使用指南:
references/<service>/guide.md
注意事项
- 此技能仅提供只读查询功能,不会执行任何写入操作
- 不要输出 HW_ACCESS_KEY、HW_SECRET_KEY 等环境变量的值
- 所有脚本都必须通过
skill action=exec执行;不要直接在 shell 中运行 - 不要猜测脚本名称;严格按照 guide.md 中的名称执行
- 查询前必须运行环境检查脚本
- 使用临时 AK/SK 时,需要设置 HW_SECURITY_TOKEN