mcpField
A
alibabacloud-cms-dataset

alibabacloud-cms-dataset

github.com/aliyun数据与数据库281154 次安装今天更新
代码仓库

关于 alibabacloud-cms-dataset

通过 `aliyun` CLI 管理 Alibaba Cloud CloudMonitor(CMS)数据集的 Agent 技能,涵盖数据集生命周期操作和 SQL 查询,并包含工作区、架构及权限检查。

主要功能

  1. 01列出并查看数据集
  2. 02创建和删除数据集
  3. 03更新数据集描述
  4. 04执行数据集 SQL 查询
  5. 05生成查询前检查架构

适用场景

  1. 01查看 CMS 工作区中的数据集
  2. 02按指定架构创建数据集
  3. 03修改数据集描述
  4. 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.md
cli-installation-guide.md
ram-policies.md
related-commands.md
verification-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 身份)。

如果不存在有效配置文件,请在此处停止。

  1. 从 Alibaba Cloud Console 获取凭据
  2. 在本次会话之外配置凭据(在终端中使用 aliyun configure,或在 shell 配置文件中设置环境变量)
  3. 返回并重新运行;aliyun configure list 显示有效配置文件后再继续

RAM 策略

完整权限列表请参阅 references/ram-policies.md。

最低所需操作:cms:ListDatasets、cms:GetDataset、cms:CreateDataset、cms:UpdateDataset、cms:DeleteDataset、cms:ExecuteQuery。

**[MUST] 权限失败处理:**如果执行期间的任何命令或 API 调用因权限错误而失败,请按以下流程处理:

  1. 阅读 references/ram-policies.md,获取此 SKILL 所需的完整权限列表
  2. 使用 ram-permission-diagnose skill 引导用户申请所需权限
  3. 暂停操作,等待用户确认已授予所需权限

参数确认

重要:参数确认 — 在执行任何命令或 API 调用之前, 必须先与用户确认所有可由用户自定义的参数(例如 RegionId、实例名称、CIDR 块、 密码、域名、资源规格等)。未经用户明确批准,不得假定或使用默认值。

参数必填/可选说明默认值
workspace必填CMS 工作空间 ID—
dataset-name必填(ListDatasets 除外)数据集名称(4-63 个字符)—
region可选区域 IDCLI 配置文件区域
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对数据集执行查询

最佳实践

  1. 始终指定 --api-version 2024-03-30——默认 CMS 版本(2019-01-01)不支持数据集操作。
  2. 调用 CreateDataset 之前,根据命名正则表达式验证数据集名称和字段名称。
  3. 生成查询之前,使用 GetDataset 检查架构——使用实际字段名称,不要猜测。
  4. 将架构 JSON 直接作为单引号括起的字符串传入,以避免 Shell 引号问题。
  5. 执行写入操作(Create、Update、Delete)前,务必先征得用户确认。
  6. 创建数据集之前,先检查其是否已存在,以避免重复创建。
  7. 显式指定地域时,使用 --region(而非 --region-id)。
  8. 除非明确需要,否则不要传入 --endpoint;如有需要,请使用 cms.<region>.aliyuncs.com。
  9. 对于 ExecuteQuery,始终将必填占位参数设为 --type SQL。
  10. 优先为 --schema 使用内联 JSON,以免管理临时文件。
  11. 绝不要切换产品。 如果 cms 命令失败,请排查参数或权限,不要尝试 dataworks、adb、sls、maxcompute 或其他产品。此技能中的“工作空间”是 CMS 工作空间,并非 DataWorks/SLS/MaxCompute 项目。
  12. 设置显式超时。 对于元数据操作(list/get/create/update/delete),使用 --read-timeout 30 --connect-timeout 10。对于 ExecuteQuery,使用 --read-timeout 120 --connect-timeout 10,因为查询可能需要更长时间。

参考链接

参考资料描述
references/ram-policies.mdRAM 权限要求
references/related-commands.md完整 CLI 命令参考
references/verification-method.md成功验证步骤
references/acceptance-criteria.md正确/错误模式示例
references/cli-installation-guide.mdCLI 安装指南

评论

支持 Markdown