alibabacloud-bailian-m…
Explain, evaluate, demonstrate, provision, and integrate Alibaba Cloud Bailian Managed Agent…
使用附带的零依赖 Python 脚本调用 Dataphin 已发布的数据服务 API。脚本内置 HMAC-SHA256 签名,仅用标准库,无需安装 SDK。 触发场景:调用数据服务 API / SDK 调用 / Python 调用 / AppKey 调用 / 异步调用 API。
$ npx -y skills add aliyun/alibabacloud-aiops-skills --skill call-data-service-api --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/call-data-service-apiContext preview
The summary Claude sees to decide when to auto-load this skill.
使用附带的零依赖 Python 脚本调用 Dataphin 已发布的数据服务 API。脚本内置 HMAC-SHA256 签名,仅用标准库,无需安装 SDK。 触发场景:调用数据服务 API / SDK 调用 / Python 调用 / AppKey 调用 / 异步调用 API。
name: call-data-service-api description: | 使用附带的零依赖 Python 脚本调用 Dataphin 已发布的数据服务 API。脚本内置 HMAC-SHA256 签名,仅用标准库,无需安装 SDK。 触发场景:调用数据服务 API / SDK 调用 / Python 调用 / AppKey 调用 / 异步调用 API。
应用开发者使用附带的零依赖 Python 脚本调用已发布并授权的 API,支持同步、异步和流式(SSE)三种调用模式。脚本内置 HMAC-SHA256 签名认证,用户无需手动拼接签名串。
**业务流程:**
确认调用信息 → 检查脚本 → 同步调用 API → (可选)异步调用 → 验证调用成功
**资源拓扑:**
数据服务网关
├── 阿里云 API 网关模式(推荐脚本调用)
│ ├── 脚本内置 HMAC-SHA256 签名
│ └── AppKey/AppSecret → 脚本自动处理
├── 内置网关模式
│ ├── 参数认证(appkey/appsecret 请求参数)
│ └── AppKey/AppSecret → 请求参数
├── 同步调用(即时返回)
├── 异步调用
│ ├── 提交任务 → jobId
│ ├── 脚本自动轮询状态
│ └── 获取结果
└── 流式调用(SSE)
└── 实时返回数据片段**前置条件:**
**与 S1/S2 的衔接:**
**与 S1/S2 的本质差异:**
| 维度 | 管理面(S1/S2/S4) | 调用面(本 Skill) | |------|-------------------|-------------------| | 凭证 | RAM AccessKey/Secret | **App AppKey/AppSecret** | | 工具 | `aliyun` CLI | **Python 标准库调用脚本** | | 网关 | 阿里云 OpenAPI 网关 | **数据服务网关** | | 环境 | 无区分 | **Dev / Prod(stage 参数)** |
**Python ≥ 3.9,仅使用标准库,无需安装 SDK 或第三方包。**
| 用途 | 入口 | |------|------| | 同步、异步和 SSE 调用 | `scripts/call-data-service-api.py` | | 嵌入 Python 工程 | [Python 调用模板](./references/python-client-template.md),复用同一脚本 | | 查询应用及 API 元信息 | `aliyun` CLI,见 [CLI 安装指引](./references/cli-installation-guide.md) |
| 变量 | 说明 | 必须 | |------|------|------| | DATAPHIN_APP_KEY | 应用 AppKey | 是 | | DATAPHIN_APP_SECRET | 应用 AppSecret | 是 | | DATAPHIN_GATEWAY_HOST | 数据服务网关地址 | 是 |
> **安全提示**:不要将 AppKey/AppSecret 硬编码在代码中,务必使用环境变量。
# 检查 Python 环境(脚本要求 >= 3.9) python3 --version # 确认应用凭证已获取(来自 S2 manage-app-and-bindauth 产出) # appKey: 应用 AppKey # appSecret: 应用 AppSecret # host: 数据服务网关地址(从控制台"网络配置"获取)
**凭证不可打印**:任何时候不得将 AppKey/AppSecret 输出到终端或日志。
**认证方式说明:**
本 Skill **不使用 RAM 凭证**,使用数据服务应用凭证(AppKey/AppSecret),脚本内置签名认证。
| 网关类型 | 认证方式 | 脚本支持 | 适用场景 | |---------|---------|---------|---------| | **阿里云 API 网关** | HMAC-SHA256 签名(脚本自动处理) | ✅ 内置签名 | 公共云独立部署 | | **内置网关** | appkey/appsecret 作为请求参数 | 需手动构造 | 私有云独立部署 / VPC 环境 |
> **如何判断当前网关类型**:登录 Dataphin 控制台 → 数据服务 → 服务管理 → 网络配置。
> **本 Skill 不使用 RAM 认证**,改用数据服务应用认证。
`scripts/call-data-service-api.py` 统一完成 nonce/timestamp、签名串与请求头构造。凭证从环境变量读取;签名规则及工程内复用方式见 [Python 调用模板](./references/python-client-template.md)。App 认证要求见 [App 认证参考](../../ram-policies.md)。
| 项目 | 说明 | |------|------| | 凭证类型 | App AppKey / AppSecret | | 传输方式 | 请求参数(Query 或 Body) |
内置网关模式下,appkey 和 appsecret 作为 API 的公共参数传入。详见 [App 认证参考](../../ram-policies.md)。
AppKey/AppSecret 由 S2 `manage-app-and-bindauth` 创建应用时获取。也可通过以下 CLI 命令查询:
# 查看应用详情(需要是应用成员,或 SuperAdmin 权限) aliyun dataphin-public get-data-service-app \ --op-tenant-id <tenantId> --app-id <appId> \ --profile <profile> --endpoint <endpoint> # 列出所有应用(查看 AppId,需应用成员才能获取 AppKey/AppSecret) aliyun dataphin-public list-data-service-apps \ --op-tenant-id <tenantId> \ --list-query PageNo=1 PageSize=20 \ --profile <profile> --endpoint <endpoint>
| 错误码 | 原因 | 解决方案 | |--------|------|---------| | `AppKeyNotFound` | AppKey 无效 | 检查 AppKey 是否正确,是否来自 S2 | | `SignatureDoesNotMatch` | 签名不匹配(手动签名时) | 使用附带脚本;排查签名头是否包含签名自身、path 是否被改写、JSON 请求是否错误添加 Content-MD5 | | `TimestampExpired` | 时间戳偏差过大 | 确保客户端时间与服务器偏差 < 15 分钟 | | `The request api path not bind app` | 应用未授权该 API | 回到 S2 完成授权流程 | | `InvalidAppKey` | AppKey/AppSecret 参数错误(内置网关) | 检查 appkey/appsecret 参数值 |
若遇到权限错误(HTTP 403 或错误码含 `AppUnauthorized`/`Forbidden`),请: 1. 确认应用已通过 S2 `manage-app-and-bindauth` 获得目标 API 的授权 2. 确认 stage 参数与 API 发布环境匹配(RELEASE = 生产,PRE = 开发) 3. 确认当前用户是应用成员(`IsMember: true`) 4. 联系项目管理员授权
详见 [App 认证参考](../../ram-policies.md)。
> **IMPORTANT: Parameter Confirmation** > 执行前必须确认以下业务参数:
| 参数 | 含义 | 获取方式 | 必填 | |------|------|---------|------| | appKey | 应用 AppKey | S2 创建应用时获取;或 SuperAdmin 用 `get-data-service-app` 查询 | 是 | | appSecret | 应用 AppSecret | 同上 | 是 | | host | 数据服务网关地址 | 控制台「网络配置」或管理员提供 | 是 | | apiId | API 唯一标识(整数) | `list-data-service-published-apis` 或 API 列表页面 | 是 | | methodType | API 操作类型 | `get-data-service-api-document` 查询(LIST/GET/CREATE/UPDATE/DELETE)| 是 | | stage | 环境 | RELEASE(生产)/ PRE(开发),默认 RELEASE | 是 | | env | 数据环境 | PROD(生产数据)/ PRE(开发数据),默认 PROD | 是 | | 业务参数 | API 定义的请求参数 | `get-data-service-api-document` 的 `RequestParamList` | 视 API |
**host 获取说明:** > 网关地址从 Dataphin 控制台获取:数据服务 → 服务管理 → 网络配置。独立部署环境常见命名为 `dataphin-dataservice.<租户基础域名>`(反代 canonical 常落 `dataphin-os-gateway.*`)。该网关**与管理面 OpenAPI 端点 `dataphin-openapi.*` 不是同一域名**,也不在任何 OpenAPI 返回里。若无法直接拿到,可按命名规律**探测确认**(`curl POST /list/{apiId}` 返回 `DPN-OLTP-*` 即命中),详见 [调用前置发现 §网关 host 发现](./references/pre-call-discovery.md#网关-host-发现p1)。VPC/私有化部署中该域名可能不对外暴露公网地址,需联系运维确认。
> **⚠️ 参数获取暗坑(逆向参数时必看)**: > - **应用名不唯一**:同租户可能多个同名应用,必须用 **AppKey** 唯一确定,不靠名字。 > - **AppKey 是字符串**(如 `"200000326"`),比较用 `str()`。 > - `list-authorized-data-service-api-details` 用 **`AppKeyStr`**(字符串),`AppKey`(整型)已弃用。 > - `returnFields` 只能取**已授权字段**(步骤 C 产出),传未授权字段会报错。 > 完整清单见 [调用前置发现 §暗坑清单](./references/pre-call-discovery.md#暗坑清单p2-速查)。
**API 调用路径构造:**正确格式为 `/{methodType}/{apiId}?appKey={appKey}&env={env}`,**不是** `/api/<GroupId>/<ApiName>`。methodType 有 5 种:`list`(列表查询)、`get`(单条查询)、`create`/`update`/`delete`(DML)。
> **⚠️ methodType 由 API 发布时的操作类型决定,不能仅凭 `IsPagedQuery` 推断**:`IsPagedQuery` 只表示「是否分页」,`list` 与 `get` 都可能为 `true`(实测 `GetCustomer` 的 `IsPagedQuery=true` 但它是 `get`)。应按 API 的**操作语义/命名**判断(`Get*`/单条 → `get`;`List*`/`Bulk*`/列表 → `list`;`Create*`→`create`;`Update*`→`update`;`Delete*`→`delete`)。**methodType 猜
Official Alibaba Cloud Agent Skills collection, providing AI agents with rich Alibaba Cloud product capabilities and general-purpose tooling.
Explain, evaluate, demonstrate, provision, and integrate Alibaba Cloud Bailian Managed Agent…
Alibaba Cloud Parse-X intelligent document parsing and extraction tool. Supports two…
Execute code in a secure cloud sandbox via AgentBay SDK. Use this skill whenever users…
Operate Alibaba Cloud AgentLoop Dataset resources with aliyun CLI and the AgentLoop API…
Orchestrate AgentLoop evaluation workflows through the Aliyun CLI plugin with safe previews,…
Proactively use AgentLoop Recall to retrieve prior Alibaba Cloud AgentLoop experience through…