/create-and-publish-api
数据服务 API 创建与发布的完整流程。数据开发工程师通过 CLI 完成:查询项目 → 创建 SQL 模式 API → 发布到生产环境 → 验证发布结果。 触发场景:创建数据服务 API / 发布 API / SQL API / API 开发 / 直连数据源创建 API。
$ npx -y skills add aliyun/alibabacloud-aiops-skills --skill create-and-publish-api --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/create-and-publish-api
Context preview
The summary Claude sees to decide when to auto-load this skill.
数据服务 API 创建与发布的完整流程。数据开发工程师通过 CLI 完成:查询项目 → 创建 SQL 模式 API → 发布到生产环境 → 验证发布结果。 触发场景:创建数据服务 API / 发布 API / SQL API / API 开发 / 直连数据源创建 API。
SKILL.md
create-and-publish-api.SKILL.mdname: create-and-publish-api
description: |
数据服务 API 创建与发布的完整流程。数据开发工程师通过 CLI 完成:查询项目 → 创建 SQL 模式 API → 发布到生产环境 → 验证发布结果。
触发场景:创建数据服务 API / 发布 API / SQL API / API 开发 / 直连数据源创建 API。
数据服务 API 创建与发布
1. Scenario Description
数据开发工程师通过阿里云 CLI 完成数据服务 API 的全生命周期管理:
**业务流程:**
查询项目 → 查询分组 → 创建 API(直连 SQL 模式)→ 发布到生产 → 验证发布
**资源拓扑:**
数据服务项目
├── API 分组(可选)
└── API
├── 请求参数
├── 返回参数
├── 数据源绑定
└── 发布状态(开发态 / 已发布)**前置条件:**
- 数据服务项目已存在,当前用户为项目成员
- 目标数据源已注册并授权([TODO: 数据源管理 Skill,属于 dataplan 模块])
2. Installation
# 安装 aliyun CLI(>= 3.4.8):https://github.com/aliyun/aliyun-cli
# 各操作系统一键安装脚本见 ./references/cli-installation-guide.md
# 安装 dataphin-public 插件
aliyun plugin install --names aliyun-cli-dataphin-public
# 验证
aliyun dataphin-public --help
详见 [CLI 安装指南](./references/cli-installation-guide.md)。
3. Environment Variables
> 凭证与环境变量由父 skill `alibabacloud-dataphin-skills` 统一声明并预检(父 §3 + §4 Authentication + §8 Step 0,先于路由到本 skill 执行);本 skill 不重复声明。
4. Authentication
Pre-check: Credentials Required
# 检查凭证配置
aliyun configure list
# 检查 CLI 版本
aliyun version
# 要求 >= 3.4.8
# 检查插件可用
aliyun dataphin-public --help
**凭证不可打印**:任何时候不得将 AccessKey ID/Secret 输出到终端或日志。
5. RAM Policy
本 Skill 涉及的最小 RAM 权限:
{
"Effect": "Allow",
"Action": [
"dataphin:GetDataServiceMyProjects",
"dataphin:GetDataServiceApiGroups",
"dataphin:CreateDataServiceApi",
"dataphin:PublishDataServiceApi",
"dataphin:ListDataServicePublishedApis",
"dataphin:GetDataServiceApiDocument"
],
"Resource": "*"
}Permission Failure Handling
若遇到权限错误(HTTP 403 或 ErrorCode 含 `Forbidden`/`NoPermission`),请: 1. 确认 RAM 用户已附加上述策略 2. 确认策略中 Resource 范围覆盖目标租户 3. 联系租户管理员授权
详见 [RAM 策略参考](../../ram-policies.md)。
6. Parameter Confirmation
> **IMPORTANT: Parameter Confirmation** > 执行前必须确认以下业务参数:
顶层参数
| 参数 | 含义 | 获取方式 | 必填 | |------|------|---------|------| | OpTenantId | 租户 ID(小整数,如 300001413) | profile 或询问用户 | 是 | | ProjectId | 数据服务项目 ID(小整数,如 22) | 步骤 1 查询 | 是 | | ApiName | API 名称 | 用户指定 | 是 | | GroupId | API 分组 ID(小整数,如 85) | 步骤 2 查询 | 否 |
CreateCommand 必填参数
| 参数 | 含义 | 合法值 | 必填 | |------|------|-------|------| | ProjectId | 项目 ID | 小整数 | 是 | | ApiName | API 名称 | 字符串 | 是 | | ApiType | API 类型 | **3**(当前仅支持 3) | 是 | | Mode | 项目模式 | 0(Basic模式)/ 1(Dev-Prod模式) | 是 | | CallMode | 调用模式 | 1(同步)/ 2(异步) | 否 | | RequestType | 请求类型 | 0(GET单条)/ **1**(LIST多条)/ 2(CREATE)/ 3(UPDATE) | 是 | | BizProtocol | 协议 | **[0]**(HTTP) | 是 | | Version | 版本号 | **"1.0.0"** | 是 | | Timeout | 超时(毫秒) | 默认 **30000** | 是 | | ApiGroupId | 分组 ID(SDK 字段名) | 小整数 | 是 | | ApiGroupName | 分组名称 | 字符串(如 `默认API分组`) | 是 |
ScriptDetails 参数(SQL 模式必填)
| 参数 | 含义 | 合法值 | 必填 | |------|------|-------|------| | DatasourceID | 数据源 ID | **19 位 snowflake ID,必须用 Python SDK 传参** | 是 | | DatasourceType | 数据源或数据服务单元类型 | 0(数据服务单元)/ **1**(数据源) | 是 | | SqlMode | SQL 模式 | **1**(基础模式)/ 2(高级模式) | 是 | | Script | SQL 语句 | 使用 `${param}` 占位符 | 是 | | ScriptRequestParameters | 请求参数列表 | 见下方枚举 | 是 | | ScriptResponseParameters | 返回参数列表 | 见下方枚举 | 是 |
ScriptRequestParameters 字段
| 字段 | 含义 | 合法值 | 必填 | |------|------|-------|------| | ParameterName | 参数名称 | 与 SQL 中 `${param}` 对应 | 是 | | ParameterDataType | 数据类型 | 见 ParameterDataType 枚举 | 是 | | ParameterValueType | 参数值类型 | **1**(单值,用于=/>=/<=/>/</!=/between)/ 2(多值,用于 IN/NOT IN) | 是 | | IsRequiredParameter | 是否必填 | true / false | 否 | | DefaultValue | 默认值 | 字符串 | 否 | | ExampleValue | 示例值 | 字符串 | 否 |
ParameterDataType 枚举值(字符串类型)
| 值 | 含义 | |----|------| | STRING | 字符串 | | INT | 整型 | | LONG | 长整型 | | DOUBLE | 双精度浮点 | | FLOAT | 单精度浮点 | | SHORT | 短整型 | | BOOLEAN | 布尔 | | DATE | 日期(yyyy-MM-dd HH:mm:ss) | | BIGDECIMAL | 高精度十进制 | | BINARY | 二进制 | | BYTE | 字节 | | ARRAY | 数组 |
publish-data-service-api 参数
| 参数 | 含义 | 获取方式 | 必填 | |------|------|---------|------| | OpTenantId | 租户 ID | 同上 | 是 | | ApiId | API ID | 步骤 3 返回 | 是 | | ProjectId | 项目 ID | 同上 | 是 | | VersionId | 版本 ID | 步骤 3 返回或查询 | 是 |
**数据源获取说明:** > 数据源需预先创建并授权。当前可通过 Dataphin 控制台 > 数据源管理 获取 DatasourceID。 > [TODO: 数据源管理 Skill(dataplan 模块)后续补充]
**⚠️ 大整数精度警告:** > DatasourceID 是 19 位 snowflake ID(如 `7467470269897096832`),超过 JavaScript 安全整数范围(2^53)。 > **aliyun CLI 内部 JSON 解析会丢失精度**(`7467470269897096832` → `7467470269897097216`)。 > 因此 `create-data-service-api` **必须使用 Python SDK 而非 CLI**。详见 §8 步骤 3。
7. Observability
本子 Skill 的 session-id **继承自父 Skill `alibabacloud-dataphin-skills`**,不重新生成。
所有 CLI 命令携带:
--user-agent AlibabaCloud-Agent-Skills/create-and-publish-api/{SESSION_ID}其中 `{SESSION_ID}` 为父 Skill 生成的 32 字符小写十六进制字符串。
8. Core Workflow
步骤 1:查询数据服务项目
aliyun dataphin-public get-data-service-my-projects \
--op-tenant-id "{OpTenantId}" \
--endpoint <YOUR_DATAPHIN_ENDPOINT> \
--user-agent "AlibabaCloud-Agent-Skills/create-and-publish-api/{SESSION_ID}"**响应处理:**
- 从返回的项目列表中选择目标项目
- 提取 `ProjectId`(小整数,如 22)
- 示例:`"ProjectId": 22`
步骤 2:查询 API 分组(可选)
aliyun dataphin-public get-data-service-api-groups \
--op-tenant-id "{OpTenantId}" \
--project-id "{ProjectId}" \
--endpoint <YOUR_DATAPHIN_ENDPOINT> \
--user-agent "AlibabaCloud-Agent-Skills/create-and-publish-api/{SESSION_ID}"**响应处理:**
- 列出可用分组,用户选择或使用默认分组
- 提取 `GroupId`(小整数,如 85)
步骤 3:创建 API(Python SDK 方式)
> **⚠️ 为什么必须使用 Python SDK?** > `create-data-service-api` 涉及 `DatasourceID`(19 位 snowflake ID),aliyun CLI 内部 JSON 解析会将超过 2^53 的整数精度丢失。 > 例如:`7467470269897096832` → `7467470269897097216`(差值 384)。 > 必须使用 Python SDK 绕过此问题。
HITL 确认(写操作)
执行前确认以下信息:
- API 名称:`{ApiName}`
- SQL 语句:`{Sql}`
- 数据源:`{DatasourceID}`
- 调用模式:同步/异步
- 影响范围:在目标项目中创建新 API
- 可回滚:创建后可删除
**确认后执行:**
import os
from alibabacloud_dataphin_public20230630.client import Client
from alibabacloud_dataphin_public20230630 import models as datap_models
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_util import models as util_models
# UA 可观测(Prin
Read more
name: create-and-publish-api description: | 数据服务 API 创建与发布的完整流程。数据开发工程师通过 CLI 完成:查询项目 → 创建 SQL 模式 API → 发布到生产环境 → 验证发布结果。 触发场景:创建数据服务 API / 发布 API / SQL API / API 开发 / 直连数据源创建 API。
数据服务 API 创建与发布
1. Scenario Description
数据开发工程师通过阿里云 CLI 完成数据服务 API 的全生命周期管理:
**业务流程:**
查询项目 → 查询分组 → 创建 API(直连 SQL 模式)→ 发布到生产 → 验证发布
**资源拓扑:**
数据服务项目
├── API 分组(可选)
└── API
├── 请求参数
├── 返回参数
├── 数据源绑定
└── 发布状态(开发态 / 已发布)**前置条件:**
- 数据服务项目已存在,当前用户为项目成员
- 目标数据源已注册并授权([TODO: 数据源管理 Skill,属于 dataplan 模块])
2. Installation
# 安装 aliyun CLI(>= 3.4.8):https://github.com/aliyun/aliyun-cli # 各操作系统一键安装脚本见 ./references/cli-installation-guide.md # 安装 dataphin-public 插件 aliyun plugin install --names aliyun-cli-dataphin-public # 验证 aliyun dataphin-public --help
详见 [CLI 安装指南](./references/cli-installation-guide.md)。
3. Environment Variables
> 凭证与环境变量由父 skill `alibabacloud-dataphin-skills` 统一声明并预检(父 §3 + §4 Authentication + §8 Step 0,先于路由到本 skill 执行);本 skill 不重复声明。
4. Authentication
Pre-check: Credentials Required
# 检查凭证配置 aliyun configure list # 检查 CLI 版本 aliyun version # 要求 >= 3.4.8 # 检查插件可用 aliyun dataphin-public --help
**凭证不可打印**:任何时候不得将 AccessKey ID/Secret 输出到终端或日志。
5. RAM Policy
本 Skill 涉及的最小 RAM 权限:
{
"Effect": "Allow",
"Action": [
"dataphin:GetDataServiceMyProjects",
"dataphin:GetDataServiceApiGroups",
"dataphin:CreateDataServiceApi",
"dataphin:PublishDataServiceApi",
"dataphin:ListDataServicePublishedApis",
"dataphin:GetDataServiceApiDocument"
],
"Resource": "*"
}Permission Failure Handling
若遇到权限错误(HTTP 403 或 ErrorCode 含 `Forbidden`/`NoPermission`),请: 1. 确认 RAM 用户已附加上述策略 2. 确认策略中 Resource 范围覆盖目标租户 3. 联系租户管理员授权
详见 [RAM 策略参考](../../ram-policies.md)。
6. Parameter Confirmation
> **IMPORTANT: Parameter Confirmation** > 执行前必须确认以下业务参数:
顶层参数
| 参数 | 含义 | 获取方式 | 必填 | |------|------|---------|------| | OpTenantId | 租户 ID(小整数,如 300001413) | profile 或询问用户 | 是 | | ProjectId | 数据服务项目 ID(小整数,如 22) | 步骤 1 查询 | 是 | | ApiName | API 名称 | 用户指定 | 是 | | GroupId | API 分组 ID(小整数,如 85) | 步骤 2 查询 | 否 |
CreateCommand 必填参数
| 参数 | 含义 | 合法值 | 必填 | |------|------|-------|------| | ProjectId | 项目 ID | 小整数 | 是 | | ApiName | API 名称 | 字符串 | 是 | | ApiType | API 类型 | **3**(当前仅支持 3) | 是 | | Mode | 项目模式 | 0(Basic模式)/ 1(Dev-Prod模式) | 是 | | CallMode | 调用模式 | 1(同步)/ 2(异步) | 否 | | RequestType | 请求类型 | 0(GET单条)/ **1**(LIST多条)/ 2(CREATE)/ 3(UPDATE) | 是 | | BizProtocol | 协议 | **[0]**(HTTP) | 是 | | Version | 版本号 | **"1.0.0"** | 是 | | Timeout | 超时(毫秒) | 默认 **30000** | 是 | | ApiGroupId | 分组 ID(SDK 字段名) | 小整数 | 是 | | ApiGroupName | 分组名称 | 字符串(如 `默认API分组`) | 是 |
ScriptDetails 参数(SQL 模式必填)
| 参数 | 含义 | 合法值 | 必填 | |------|------|-------|------| | DatasourceID | 数据源 ID | **19 位 snowflake ID,必须用 Python SDK 传参** | 是 | | DatasourceType | 数据源或数据服务单元类型 | 0(数据服务单元)/ **1**(数据源) | 是 | | SqlMode | SQL 模式 | **1**(基础模式)/ 2(高级模式) | 是 | | Script | SQL 语句 | 使用 `${param}` 占位符 | 是 | | ScriptRequestParameters | 请求参数列表 | 见下方枚举 | 是 | | ScriptResponseParameters | 返回参数列表 | 见下方枚举 | 是 |
ScriptRequestParameters 字段
| 字段 | 含义 | 合法值 | 必填 | |------|------|-------|------| | ParameterName | 参数名称 | 与 SQL 中 `${param}` 对应 | 是 | | ParameterDataType | 数据类型 | 见 ParameterDataType 枚举 | 是 | | ParameterValueType | 参数值类型 | **1**(单值,用于=/>=/<=/>/</!=/between)/ 2(多值,用于 IN/NOT IN) | 是 | | IsRequiredParameter | 是否必填 | true / false | 否 | | DefaultValue | 默认值 | 字符串 | 否 | | ExampleValue | 示例值 | 字符串 | 否 |
ParameterDataType 枚举值(字符串类型)
| 值 | 含义 | |----|------| | STRING | 字符串 | | INT | 整型 | | LONG | 长整型 | | DOUBLE | 双精度浮点 | | FLOAT | 单精度浮点 | | SHORT | 短整型 | | BOOLEAN | 布尔 | | DATE | 日期(yyyy-MM-dd HH:mm:ss) | | BIGDECIMAL | 高精度十进制 | | BINARY | 二进制 | | BYTE | 字节 | | ARRAY | 数组 |
publish-data-service-api 参数
| 参数 | 含义 | 获取方式 | 必填 | |------|------|---------|------| | OpTenantId | 租户 ID | 同上 | 是 | | ApiId | API ID | 步骤 3 返回 | 是 | | ProjectId | 项目 ID | 同上 | 是 | | VersionId | 版本 ID | 步骤 3 返回或查询 | 是 |
**数据源获取说明:** > 数据源需预先创建并授权。当前可通过 Dataphin 控制台 > 数据源管理 获取 DatasourceID。 > [TODO: 数据源管理 Skill(dataplan 模块)后续补充]
**⚠️ 大整数精度警告:** > DatasourceID 是 19 位 snowflake ID(如 `7467470269897096832`),超过 JavaScript 安全整数范围(2^53)。 > **aliyun CLI 内部 JSON 解析会丢失精度**(`7467470269897096832` → `7467470269897097216`)。 > 因此 `create-data-service-api` **必须使用 Python SDK 而非 CLI**。详见 §8 步骤 3。
7. Observability
本子 Skill 的 session-id **继承自父 Skill `alibabacloud-dataphin-skills`**,不重新生成。
所有 CLI 命令携带:
--user-agent AlibabaCloud-Agent-Skills/create-and-publish-api/{SESSION_ID}其中 `{SESSION_ID}` 为父 Skill 生成的 32 字符小写十六进制字符串。
8. Core Workflow
步骤 1:查询数据服务项目
aliyun dataphin-public get-data-service-my-projects \
--op-tenant-id "{OpTenantId}" \
--endpoint <YOUR_DATAPHIN_ENDPOINT> \
--user-agent "AlibabaCloud-Agent-Skills/create-and-publish-api/{SESSION_ID}"**响应处理:**
- 从返回的项目列表中选择目标项目
- 提取 `ProjectId`(小整数,如 22)
- 示例:`"ProjectId": 22`
步骤 2:查询 API 分组(可选)
aliyun dataphin-public get-data-service-api-groups \
--op-tenant-id "{OpTenantId}" \
--project-id "{ProjectId}" \
--endpoint <YOUR_DATAPHIN_ENDPOINT> \
--user-agent "AlibabaCloud-Agent-Skills/create-and-publish-api/{SESSION_ID}"**响应处理:**
- 列出可用分组,用户选择或使用默认分组
- 提取 `GroupId`(小整数,如 85)
步骤 3:创建 API(Python SDK 方式)
> **⚠️ 为什么必须使用 Python SDK?** > `create-data-service-api` 涉及 `DatasourceID`(19 位 snowflake ID),aliyun CLI 内部 JSON 解析会将超过 2^53 的整数精度丢失。 > 例如:`7467470269897096832` → `7467470269897097216`(差值 384)。 > 必须使用 Python SDK 绕过此问题。
HITL 确认(写操作)
执行前确认以下信息:
- API 名称:`{ApiName}`
- SQL 语句:`{Sql}`
- 数据源:`{DatasourceID}`
- 调用模式:同步/异步
- 影响范围:在目标项目中创建新 API
- 可回滚:创建后可删除
**确认后执行:**
import os from alibabacloud_dataphin_public20230630.client import Client from alibabacloud_dataphin_public20230630 import models as datap_models from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_tea_util import models as util_models # UA 可观测(Prin
Official Alibaba Cloud Agent Skills collection, providing AI agents with rich Alibaba Cloud product capabilities and general-purpose tooling.
Other skills on alibabacloud-aiops-skills.
- /alibabacloud-agentbay-aio-skills
Execute code in a secure cloud sandbox via AgentBay SDK. Use this skill whenever users request to run, execute, or evaluate code (Python, JavaScript, R, Java), including plotting charts, running scripts, or viewing code output. Covers requests like "run this code", "execute
Open skill - /alibabacloud-agentloop-dataset
Operate Alibaba Cloud AgentLoop Dataset resources with aliyun CLI and the AgentLoop API version 2026-05-20. Use when requests concern AgentLoop datasets, data rows, Dataset schemas, embedding fields, semantic search, ExecuteQuery, AgentSpace data, 数据集, 数据写入, 数据查询, 语义检索, or ask
Open skill - /alibabacloud-agentloop-evaluation
Orchestrate AgentLoop evaluation workflows through the Aliyun CLI plugin with safe previews, saved evaluator and evaluator-skill management, one-shot sample tests, trace or dataset batch runs, polling, and result inspection. Analyze evaluation quality and low-score cases from
Open skill - /alibabacloud-agentloop-experience
Proactively use AgentLoop Recall to retrieve prior Alibaba Cloud AgentLoop experience through the bundled SearchContext CLI whenever the user asks or implies that prior work may help. Trigger for requests to check, search, recall, retrieve, look up, review, consult, reference,
Open skill - /alibabacloud-agentloop-management
AgentLoop APM接入 / AI可观测接入 / 应用监控接入 / 自研探针 / 探针安装. Use for Python aliyun-bootstrap (aliyun-instrument), Java AliyunJavaAgent, Golang instgo, Node.js cms_node_sdk, PHP/.NET OpenTelemetry, ack-onepilot, LicenseKey, AgentLoop workspace agentloop-*. Also for LangChain, Dify,
Open skill - /alibabacloud-avatar-video
Use Alibaba Cloud DashScope API and LingMou to generate AI video and speech. Seven capabilities — (1) LivePortrait talking-head (image + audio → video, two-step), (2) EMO talking-head, (3) AA/AnimateAnyone full-body animation (three-step), (4) T2I text-to-image (Wan 2.x, default
Open skill

