关于 alibabacloud-cms-dataset
通过 `aliyun` CLI 管理 Alibaba Cloud CloudMonitor(CMS)数据集的 Agent 技能,涵盖数据集生命周期操作和 SQL 查询,并包含工作区、架构及权限检查。
主要功能
- 01列出并查看数据集
- 02创建和删除数据集
- 03更新数据集描述
- 04执行数据集 SQL 查询
- 05生成查询前检查架构
适用场景
- 01查看 CMS 工作区中的数据集
- 02按指定架构创建数据集
- 03修改数据集描述
- 04依据实际字段查询数据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-cms-dataset安装后在 Claude Code 中输入/alibabacloud-cms-dataset确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/acceptance-criteria.mdcli-installation-guide.mdram-policies.mdrelated-commands.mdverification-method.md详细介绍
CMS 数据集生命周期管理与查询
使用 aliyun CLI 管理 CloudMonitor(CMS)数据集资源——列出、查看、创建、更新和删除数据集,并执行数据集级查询。
架构:CMS Workspace + Dataset (Schema + Fields) + ExecuteQuery
安装
安装 Aliyun CLI
运行 aliyun version,确认版本是否 >= 3.3.3。如果尚未安装或版本过旧,请按照文档 references/cli-installation-guide.md 进行安装或更新。
确保插件为最新版本
[MUST] 运行
aliyun configure set --auto-plugin-install true,以启用自动安装插件。 [MUST] 运行aliyun plugin update,确保所有现有插件始终为最新版本。
AI-Mode 生命周期
在核心工作流开始时(执行任何 CLI 调用之前): [MUST] 启用 AI-Mode——执行 Agent Skill 必须启用 AI-mode。
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cms-dataset"
[MUST] 在每个退出点禁用 AI-Mode——无论出于何种原因,在提交最终回复之前,都必须先禁用 AI-mode。此要求适用于所有退出路径:工作流成功、工作流失败、错误/异常、用户取消、会话结束,或任何不会再执行 CLI 命令的其他情况。
aliyun configure ai-mode disable
身份验证
预检查:需要 Alibaba Cloud 凭据
安全规则:
- 绝对不要读取、回显或打印 AK/SK 值(例如,禁止执行
echo $ALIBABA_CLOUD_ACCESS_KEY_ID)- 绝对不要要求用户在对话或命令行中直接输入 AK/SK
- 绝对不要使用包含明文凭据值的
aliyun configure set- 只能使用
aliyun configure list检查凭据状态aliyun configure list检查输出中是否存在有效配置文件(AK、STS 或 OAuth 身份)。
如果不存在有效配置文件,请在此处停止。
- 从 Alibaba Cloud Console 获取凭据
- 在本次会话之外配置凭据(在终端中使用
aliyun configure,或在 shell 配置文件中设置环境变量)- 返回并重新运行;
aliyun configure list显示有效配置文件后再继续
RAM 策略
完整权限列表请参阅 references/ram-policies.md。
最低所需操作:cms:ListDatasets、cms:GetDataset、cms:CreateDataset、cms:UpdateDataset、cms:DeleteDataset、cms:ExecuteQuery。
**[MUST] 权限失败处理:**如果执行期间的任何命令或 API 调用因权限错误而失败,请按以下流程处理:
- 阅读
references/ram-policies.md,获取此 SKILL 所需的完整权限列表- 使用
ram-permission-diagnoseskill 引导用户申请所需权限- 暂停操作,等待用户确认已授予所需权限
参数确认
重要:参数确认 — 在执行任何命令或 API 调用之前, 必须先与用户确认所有可由用户自定义的参数(例如 RegionId、实例名称、CIDR 块、 密码、域名、资源规格等)。未经用户明确批准,不得假定或使用默认值。
| 参数 | 必填/可选 | 说明 | 默认值 |
|---|---|---|---|
workspace | 必填 | CMS 工作空间 ID | — |
dataset-name | 必填(ListDatasets 除外) | 数据集名称(4-63 个字符) | — |
region | 可选 | 区域 ID | CLI 配置文件区域 |
schema | 必填(CreateDataset) | Schema JSON 对象 | — |
description | 可选 | 数据集描述 | — |
query | 必填(ExecuteQuery) | 查询文本 | — |
type | 自动填充(ExecuteQuery) | 查询类型占位符。始终为 SQL,无需询问用户 | SQL |
max-results | 可选(ListDatasets) | 每页最大结果数 | — |
next-token | 可选(ListDatasets) | 下一页的分页令牌 | — |
命名规则
数据集名称和 Schema 字段名称必须满足:
- 长度:4-63 个字符
- 以小写字母开头
- 只能包含小写字母、数字和下划线
- 不得以下划线开头或结尾,也不得包含连续下划线
正则表达式:^[a-z](?!.*__)[a-z0-9_]{2,61}[a-z0-9]$
不得静默规范化无效名称。请向用户索取有效的替代名称。
核心工作流
[关键] 产品绑定: 此技能中的所有数据集操作仅使用
cms产品。 正确的命令格式为aliyun cms <action> --api-version 2024-03-30。 不得使用任何其他产品执行数据集操作——在此场景中,dataworks、adb、sls、maxcompute、opensearch、pai、dashvector或任何其他服务均为错误选择。 如果命令失败,请检查参数和权限——不得切换到其他产品。
所有命令均使用 --api-version 2024-03-30。默认情况下不要传入 --endpoint。指定区域时使用 --region(而非 --region-id)。
0. 验证工作空间是否存在
[必须] 执行任何数据集操作之前,调用
get-workspace验证工作空间是否存在。不得跳过此步骤,也不得使用 ListDatasets 推断工作空间是否存在。
aliyun cms get-workspace --api-version 2024-03-30 \
--workspace <workspace>
如果工作空间不存在(返回错误),则通过 put-workspace 创建:
aliyun cms put-workspace --api-version 2024-03-30 \
--workspace-name <workspace> \
--sls-project <sls-project>
必须指定 --sls-project。如果用户未指定,请使用与工作空间名称相同的值。
1. 列出数据集
aliyun cms list-datasets --api-version 2024-03-30 \
--workspace <workspace> \
[--dataset-name <filter>] \
[--max-results <n>] \
[--next-token <token>]
2. 获取数据集
aliyun cms get-dataset --api-version 2024-03-30 \
--workspace <workspace> \
--dataset-name <dataset-name>
3. 创建数据集
安全要求: 创建前,通过 ListDatasets 检查数据集是否已存在。如果数据集已存在,请告知用户并询问是否继续(API 会对重复数据集返回错误)。用户请求创建时,始终调用 CreateDataset——不得静默跳过。
将 Schema JSON 作为单引号字符串直接传入:
aliyun cms create-dataset --api-version 2024-03-30 \
--workspace <workspace> \
--dataset-name <dataset-name> \
--schema '{"message_text":{"type":"text","chn":true,"embedding":"text-embedding-v4"},"service_name":{"type":"text","chn":false}}' \
[--description "<description>"]
Schema 规则:
--schema的值应直接为字段定义对象(不得包装在 API 请求体中)。- 每个顶层键都是字段名称。每个值包含:
type,以及可选的chn、embedding、jsonKeys。 - 只有
type: "text"字段可以启用embedding。非文本字段启用 embedding 时应予以拒绝。 jsonKeys用于定义嵌套 JSON 键结构。嵌套键仅支持type和chn(不支持embedding):
{
"event_data": {
"type": "text",
"chn": false,
"jsonKeys": {
"source": {
"type": "text",
"chn": false
},
"message": {
"type": "text",
"chn": true
}
}
}
}
4. 更新数据集
安全要求: 更新前读取并展示当前描述。
限制: UpdateDataset 只能修改描述。无法通过此 API 更新 Schema。如果用户需要更改 Schema,必须删除并重新创建数据集。
# Show current state
aliyun cms get-dataset --api-version 2024-03-30 \
--workspace <workspace> --dataset-name <dataset-name>
# Update after user confirms
aliyun cms update-dataset --api-version 2024-03-30 \
--workspace <workspace> \
--dataset-name <dataset-name> \
--description "<new-description>"
5. 删除数据集
安全要求: 读取并展示数据集,然后要求用户明确确认要删除的工作空间和数据集名称。
# Show dataset to confirm
aliyun cms get-dataset --api-version 2024-03-30 \
--workspace <workspace> --dataset-name <dataset-name>
# Delete after explicit confirmation
aliyun cms delete-dataset --api-version 2024-03-30 \
--workspace <workspace> \
--dataset-name <dataset-name>
6. 执行查询
安全提示: 请尽可能先通过 GetDataset 查看数据集架构,确保字段名称来自实际架构。
aliyun cms execute-query --api-version 2024-03-30 \
--workspace <workspace> \
--dataset-name <dataset-name> \
--type SQL \
--query '<query>'
--type是必填占位参数。始终传入SQL。- 如果用户提供了完整查询,请保留原样,除非需要进行安全的 Shell 引号处理。
- 从自然语言生成查询: 如果用户用自然语言描述分析意图,而非提供查询,请先调用 GetDataset 获取实际架构和字段名称,然后根据这些字段名称生成查询。未经检查架构,绝不要猜测字段名称。
- 先展示完整 JSON 响应,再总结进度、返回的行数、受影响的行数和耗时。
成功验证
请参阅 references/verification-method.md,了解各项操作的分步验证命令。
清理
如需移除本次会话期间创建的数据集:
aliyun cms delete-dataset --api-version 2024-03-30 \
--workspace <workspace> \
--dataset-name <dataset-name>
输出要求
- 对于任何 API 响应,先展示完整 JSON。
- 然后提供简短易读的摘要。
- 对于写入预览:包含工作空间、数据集名称、地域、描述和完整架构。
- 对于查询结果:包含进度、行数、受影响的行数和耗时。
命令表
完整命令参考请参阅 references/related-commands.md。
| 命令 | 描述 |
|---|---|
aliyun cms get-workspace | 验证工作空间是否存在 |
aliyun cms put-workspace | 创建或更新工作空间 |
aliyun cms list-datasets | 列出工作空间中的数据集 |
aliyun cms get-dataset | 获取数据集详情和架构 |
aliyun cms create-dataset | 使用架构创建新数据集 |
aliyun cms update-dataset | 更新数据集描述 |
aliyun cms delete-dataset | 删除数据集 |
aliyun cms execute-query | 对数据集执行查询 |
最佳实践
- 始终指定
--api-version 2024-03-30——默认 CMS 版本(2019-01-01)不支持数据集操作。 - 调用 CreateDataset 之前,根据命名正则表达式验证数据集名称和字段名称。
- 生成查询之前,使用 GetDataset 检查架构——使用实际字段名称,不要猜测。
- 将架构 JSON 直接作为单引号括起的字符串传入,以避免 Shell 引号问题。
- 执行写入操作(Create、Update、Delete)前,务必先征得用户确认。
- 创建数据集之前,先检查其是否已存在,以避免重复创建。
- 显式指定地域时,使用
--region(而非--region-id)。 - 除非明确需要,否则不要传入
--endpoint;如有需要,请使用cms.<region>.aliyuncs.com。 - 对于 ExecuteQuery,始终将必填占位参数设为
--type SQL。 - 优先为
--schema使用内联 JSON,以免管理临时文件。 - 绝不要切换产品。 如果
cms命令失败,请排查参数或权限,不要尝试dataworks、adb、sls、maxcompute或其他产品。此技能中的“工作空间”是 CMS 工作空间,并非 DataWorks/SLS/MaxCompute 项目。 - 设置显式超时。 对于元数据操作(list/get/create/update/delete),使用
--read-timeout 30 --connect-timeout 10。对于 ExecuteQuery,使用--read-timeout 120 --connect-timeout 10,因为查询可能需要更长时间。
参考链接
| 参考资料 | 描述 |
|---|---|
| references/ram-policies.md | RAM 权限要求 |
| references/related-commands.md | 完整 CLI 命令参考 |
| references/verification-method.md | 成功验证步骤 |
| references/acceptance-criteria.md | 正确/错误模式示例 |
| references/cli-installation-guide.md | CLI 安装指南 |