DataWorks 基础设施管理
统一管理阿里云 DataWorks 工作空间中的数据源、计算资源和资源组,支持创建和查询操作。
架构
DataWorks
├── 工作空间 ─── 查询和搜索工作空间
│ ├── 数据源 ─── 50 种类型:MySQL、Hologres、MaxCompute……
│ └── 计算资源 ─── Hologres、MaxCompute、Flink、Spark
└── 资源组 ─── Serverless 资源组管理(跨工作空间)
依赖关系:
工作空间 ◀── 数据源、计算资源(必须属于某个工作空间)
工作空间 ◀── 资源组(通过绑定关联;一个资源组可绑定多个工作空间)
连通性测试 ──依赖──▶ 资源组(必须绑定到数据源所在的工作空间)
标准模式 ──需要──▶ Dev(开发)+ Prod(生产)双数据源和计算资源
全局规则
前置条件
- Aliyun CLI >= 3.3.1:
aliyun version(安装指南:references/cli-installation-guide.md) - 首次使用:
aliyun configure set --auto-plugin-install true - jq(资源组操作必需):
which jq - 凭证状态:
aliyun configure list,验证存在有效凭证 - DataWorks 版本:需要基础版或以上
安全规则:不要读取 / 打印 / 回显 AK/SK 值,不要让用户直接输入 AK/SK,只使用 aliyun configure list 检查凭证状态。
命令格式
- User-Agent(强制):所有
aliyunCLI 命令必须包含--user-agent AlibabaCloud-Agent-Skills参数以标识来源。 - 单行命令:执行 Bash 命令时,必须构造成单行字符串;不要用
\换行。 - jq 分步执行:先执行
aliyun命令获取 JSON,再用jq格式化(避免多行安全提示)。 - Endpoint 强制:指定
--region参数时,你必须同时加--endpoint dataworks.<REGION_ID>.aliyuncs.com。未指定--region时不需要。
参数确认
执行任何命令前,所有用户可自定义参数都必须由用户确认。不要假设或使用默认值。
例外:当用户在对话中明确指定参数值时,直接使用它们,无需再次确认。
资源组相关参数(必须用户选择):VPC、VSwitch、资源组 ID(用于绑定 / 连通性测试)——涉及网络和计费,不要自动选择;必须显示列表供用户明确选择。即使只有一个选项也要确认。
⚠️ 写 API 执行门禁 —— 每次写操作前必须检查
强制:在调用任何写 API(Create / Update / Delete / Bind / Unbind / Associate / Dissociate / Test)前,你必须按顺序执行以下检查:
1. 扫描整个 SKILL.md,查找提及目标 API 或模块的安全限制或禁用操作通知。
2. 如果存在限制:立即阻止该操作。不要调用 API。向用户回复:
- 什么操作被阻止及原因
- 推荐的替代方案(例如使用 DataWorks 控制台、联系管理员)
3. 如果不存在限制:正常进行参数确认和执行。
此检查不是可选项。 它适用于每一个写操作,无例外。绝不跳过此步骤。
快速参考 —— 本 Skill 中被阻止的 API:
| 模块 | 被阻止的 API | 原因 |
|--------|-------------|--------|
| 数据源(模块 1) |UpdateDataSource、DeleteDataSource| 防止意外数据丢失、凭证泄露、中断运行中的任务 |
| 计算资源(模块 2) |UpdateComputeResource、DeleteComputeResource| 防止中断运行中的开发和调度任务 |
允许的写 API:CreateDataSource、CreateComputeResource、CreateResourceGroup、AssociateProjectToResourceGroup、DissociateProjectFromResourceGroup、TestDataSourceConnectivity
RAM 权限
所有操作都需要 dataworks:<APIAction> 权限。创建资源组额外需要 AliyunBSSOrderAccess 和 vpc:DescribeVpcs、vpc:DescribeVSwitches。
完整权限矩阵:references/ram-policies.md
快速开始:新工作空间基础设施初始化
当用户不确定具体操作或需求模糊时,引导他们完成以下流程:
- 环境检查 —— 按前置条件检查 CLI 和凭证
- 确认工作空间 —— 用
ListProjects定位工作空间,用GetProject确认模式(Simple/Standard) - 创建计算资源 —— 引导选择引擎类型;系统将自动创建对应数据源。标准模式需要 Dev+Prod 对。只有纯存储型数据源(MySQL、Kafka 等)需要单独创建数据源
- 创建 / 绑定资源组 —— 查询现有资源组 → 让用户选择 → 绑定。无可用资源组时引导创建
- 测试连通性 —— 用绑定的资源组测试;全部通过时告知"基础设施配置完成"
每一步后,主动建议下一步操作。
下一步指引
每个写操作完成并验证后,主动建议后续动作:
| 已完成操作 | 推荐的下一步 |
|---|---|
| 创建计算资源 | 标准模式:"创建对应的 Dev 资源?";"测试连通性?" |
| 单独创建数据源 | "测试连通性?";标准模式:"创建 Dev/Prod 环境数据源?" |
| 创建资源组 | "绑定到某个工作空间?" |
| 绑定资源组 | "测试数据源连通性?" |
| 连通性测试通过 | "基础设施已就绪。" |
| 连通性测试失败 | 分析错误原因,引导修复 |
| 解绑资源组 | "绑定到另一个工作空间?" |
触发规则
触发场景:数据源创建 / 查询、计算资源创建 / 查询、资源组管理、基础设施初始化、口语化别名(DW 数据库连接失败、配置 holo/mc 资源、创建 rg)
不触发:数据开发任务、调度配置、MaxCompute 表管理、数据集成任务、ECS/RDS/OSS、工作空间成员管理、数据质量 / 血缘 / 预览。独立的工作空间查询由 alibabacloud-dataworks-workspace-manage skill 处理。
交互流程
所有操作遵循:识别模块 → 环境检查 → 收集参数 → 执行命令 → 验证结果 → 引导下一步
常见别名:DW=DataWorks,holo=Hologres,mc/MC/odps=MaxCompute,pg=PostgreSQL,rg=Resource Group,ds=Data Source,RDS=InstanceMode MySQL/PG/SQLServer,ADB=AnalyticDB
命名建议:数据源 {type}_{business}_{purpose},计算资源 {type}_{business},资源组 dw_{purpose}_rg_{env}
模块 0:工作空间查询
如果 alibabacloud-dataworks-workspace-manage skill 可用,优先用它做工作空间查询。以下仅作兜底。
aliyun dataworks-public ListProjects --user-agent AlibabaCloud-Agent-Skills --Status Available --PageSize 100
按名称搜索时,先获取完整列表,然后用 jq 按 Name/DisplayName 过滤 .PagingInfo.Projects[]。
模块 1:数据源管理
支持 50 种数据源类型。详情见 references/data-sources/README.md。
何时需要单独创建数据源? 创建计算资源(模块 2)会自动创建对应数据源。只有纯存储型数据库(MySQL、PostgreSQL、Kafka、MongoDB 等)需要单独创建。
注意:以下类型当前不支持 OpenAPI:hdfs
连接模式:UrlMode(自建数据库,需要 host/port)或 InstanceMode(阿里云托管实例,需要 instanceId)。不确定时,主动询问用户。优先 InstanceMode。
实例查询 API:references/data-sources/instance-apis.md
⚠️ 安全限制 —— 强制预检查见写 API 执行门禁(全局规则)
重要:DeleteDataSource和UpdateDataSourceAPI 由 DataWorks 服务支持,但出于安全原因本 Skill 已禁用修改或删除数据源。在尝试任何写操作前,agent 必须检查写 API 执行门禁章节。
如需修改或删除数据源,请直接使用 DataWorks 控制台或联系管理员。
连接模式速查
ConnectionPropertiesMode 的选择决定必需字段。两者都可用时优先 InstanceMode。
| 模式 | 类型 | 数量 |
|---|---|---|
| 两者都支持 | mysql、postgresql、sqlserver、polardb、polardbo、polardb-x-2-0、apsaradb_for_oceanbase、drds、starrocks、analyticdb_for_mysql、analyticdb_for_postgresql、milvus、mongodb、redis、elasticsearch、kafka | 16 |
| 仅 InstanceMode | hologres、dlf、opensearch | 3 |
| 仅 UrlMode | oracle、mariadb、dm、db2、tidb、vertica、gbase8a、kingbasees、saphana、snowflake、maxcompute、hive、clickhouse、doris、selectdb、redshift、hbase、lindorm、oss、s3、ftp、ssh、tablestore、memcache、graph_database、datahub、loghub、restapi、salesforce、httpfile、bigquery | 31 |
hdfs—— 不支持通过 OpenAPI。
完整详情:references/data-sources/README.md
工作空间模式
环境说明:Prod(生产)用于生产数据处理;Dev(开发)用于开发和调试,与生产物理隔离。
aliyun dataworks-public GetProject --user-agent AlibabaCloud-Agent-Skills --Id <PROJECT_ID> —— 检查 DevEnvironmentEnabled:
false→ 简单模式(1 个数据源,envType=Prod)true→ 标准模式(2 个数据源,Dev + Prod,物理隔离)
完整模式对比:references/data-sources/README.md
任务 1.1:创建数据源(CreateDataSource)
aliyun dataworks-public CreateDataSource --user-agent AlibabaCloud-Agent-Skills [--region <REGION_ID> --endpoint dataworks.<REGION_ID>.aliyuncs.com] --ProjectId <PROJECT_ID> --Name <NAME> --Type <TYPE> --ConnectionPropertiesMode <UrlMode|InstanceMode> --ConnectionProperties '<JSON>' --Description "<DESC>"
ConnectionProperties 通用结构:
- UrlMode:
{"envType":"Prod","address":[{"host":"<IP>","port":<PORT>}],"database":"<DB>","username":"<USER>","password":"<PWD>"} - InstanceMode:
{"envType":"Prod","instanceId":"<ID>","regionId":"<REGION>","database":"<DB>","username":"<USER>","password":"<PWD>"}
特殊类型结构(Oracle、MaxCompute、HBase 等):见 references/data-sources/ 各类型文档
跨账号数据源配置:references/cross-account-datasources.md
任务 1.2:获取数据源(GetDataSource)
aliyun dataworks-public GetDataSource --user-agent AlibabaCloud-Agent-Skills --Id <DATASOURCE_ID> [--region <REGION_ID> --endpoint dataworks.<REGION_ID>.aliyuncs.com]
任务 1.3:列出数据源(ListDataSources)
aliyun dataworks-public ListDataSources --user-agent AlibabaCloud-Agent-Skills --ProjectId <PROJECT_ID> [--Types '["mysql"]'] [--EnvType <Dev|Prod>] [--PageNumber 1] [--PageSize 20]
返回嵌套结构 DataSources[].DataSource[];Name/Type 在外层,Id/Description 在内层。
任务 1.4:测试连通性(TestDataSourceConnectivity)
流程:查询资源组列表 → 让用户选择资源组 → 执行测试。
步骤 1:查询项目资源组
aliyun dataworks-public ListResourceGroups --user-agent AlibabaCloud-Agent-Skills --ProjectId <PROJECT_ID>
步骤 2:用户选择资源组后执行测试
aliyun dataworks-public TestDataSourceConnectivity --user-agent AlibabaCloud-Agent-Skills --DataSourceId <ID> --ProjectId <PROJECT_ID> --ResourceGroupId "<RG_ID>"
> 如果错误 `"resourceGroupId is not in the project"`,资源组需要先绑定(与用户确认后,执行 `AssociateProjectToResourceGroup`)。
---
模块 2:计算资源管理
支持 Hologres、MaxCompute、Flink、Spark 等类型。创建时系统会自动创建对应数据源。
⚠️ 安全限制 —— 强制预检查见写 API 执行门禁(全局规则)
重要:出于安全原因,本 Skill 不支持修改或删除计算资源。在尝试任何写操作前,agent 必须检查写 API 执行门禁章节。 这些操作被禁用是为了防止:
- 意外数据丢失或服务中断
- 中断运行中的数据开发和调度任务
- 对生产计算资源配置的意外更改
如需修改或删除计算资源,请直接使用 DataWorks 控制台或联系管理员。
authType 规则
- Dev 环境:
authType固定为Executor - Prod 环境:选项为
PrimaryAccount(推荐)、TaskOwner、SubAccount、RamRole。除非用户有特殊要求,默认推荐PrimaryAccount
authType 细节和指引:references/compute-resources/README.md
类型特定说明
- Hologres:仅支持 InstanceMode,需要
instanceId、securityProtocol - MaxCompute:仅支持 UrlMode,需要
project、endpointMode
完整 ConnectionProperties 示例:references/compute-resources/README.md
任务 2.1:创建计算资源(CreateComputeResource)
aliyun dataworks-public CreateComputeResource --user-agent AlibabaCloud-Agent-Skills [--region <REGION_ID> --endpoint dataworks.<REGION_ID>.aliyuncs.com] --ProjectId <PROJECT_ID> --Name <NAME> --Type <TYPE> --ConnectionPropertiesMode <InstanceMode|UrlMode> --ConnectionProperties '<JSON>' [--Description "<DESC>"]
创建后,用 ListDataSources 验证对应数据源已自动生成。
任务 2.2:获取计算资源(GetComputeResource)
aliyun dataworks-public GetComputeResource --user-agent AlibabaCloud-Agent-Skills --Id <ID> --ProjectId <PROJECT_ID>
任务 2.3:列出计算资源(ListComputeResources)
aliyun dataworks-public ListComputeResources --user-agent AlibabaCloud-Agent-Skills --ProjectId <PROJECT_ID> [--Name <FILTER>] [--EnvType <Dev|Prod>] [--PageSize 20] [--SortBy CreateTime] [--Order Desc]
返回嵌套结构 ComputeResources[].ComputeResource[];Name/Type 在外层,Id 在内层。
模块 3:资源组管理
管理 Serverless 资源组的全生命周期。
任务 3.1:创建资源组(CreateResourceGroup)
需要 AliyunBSSOrderAccess 权限。
交互流程(每一步让用户选择,不要自动选择):
- 查询并选择 VPC:
aliyun vpc DescribeVpcs --user-agent AlibabaCloud-Agent-Skills --RegionId "<REGION_ID>" --PageSize 50
如果列表为空,引导用户创建 VPC;不要自动创建。
- 查询并选择 VSwitch:
aliyun vpc DescribeVSwitches --user-agent AlibabaCloud-Agent-Skills --RegionId "<REGION_ID>" --VpcId "<VPC_ID>" --PageSize 50
- 确认名称和规格 → 执行创建:
aliyun dataworks-public CreateResourceGroup --user-agent AlibabaCloud-Agent-Skills [--region <REGION_ID> --endpoint dataworks.<REGION_ID>.aliyuncs.com] --Name "<NAME>" --PaymentType PostPaid --VpcId "<VPC_ID>" --VswitchId "<VSWITCH_ID>" --ClientToken "$(uuidgen 2>/dev/null || echo "token-$(date +%s)")" --Remark "Created by Agent"
创建后,轮询 GetResourceGroup 直到状态变为 Normal(每 10 秒,最多 10 分钟)。
任务 3.2:获取资源组(GetResourceGroup)
aliyun dataworks-public GetResourceGroup --user-agent AlibabaCloud-Agent-Skills --Id "<ID>"
任务 3.3:列出资源组(ListResourceGroups)
aliyun dataworks-public ListResourceGroups --user-agent AlibabaCloud-Agent-Skills [--ProjectId <PROJECT_ID>] [--Statuses '["Normal"]'] --PageSize 100
任务 3.4:绑定资源组(AssociateProjectToResourceGroup)
流程:查询可用资源组 → 显示列表供用户选择 → 用户确认后绑定。
aliyun dataworks-public AssociateProjectToResourceGroup --user-agent AlibabaCloud-Agent-Skills --ResourceGroupId "<RG_ID>" --ProjectId "<PROJECT_ID>"
任务 3.5:查询绑定关系
aliyun dataworks-public ListResourceGroupAssociateProjects --user-agent AlibabaCloud-Agent-Skills --ResourceGroupId "<RG_ID>"
任务 3.6:解绑资源组(DissociateProjectFromResourceGroup)
aliyun dataworks-public DissociateProjectFromResourceGroup --user-agent AlibabaCloud-Agent-Skills --ResourceGroupId "<RG_ID>" --ProjectId "<PROJECT_ID>"
成功验证
所有写操作后,用对应的 Get/List 命令验证结果。
常见错误
| 错误码 | 解决方案 |
|---|---|
| Forbidden.Access / PermissionDenied | 检查 RAM 权限,见 references/ram-policies.md |
| InvalidParameter | 检查 ConnectionProperties JSON 和必需参数 |
| EntityNotExists | 验证 ID 和 Region 正确 |
| QuotaExceeded | 删除未使用资源或申请配额提升 |
| Duplicate* | 使用不同的名称 |
地域
常用:cn-hangzhou、cn-shanghai、cn-beijing、cn-shenzhen。Endpoint:dataworks.<region-id>.aliyuncs.com
完整列表:references/related-apis.md
最佳实践
- 先查后动 —— 创建操作前确认当前状态
- 按环境管理 —— 分别管理 Dev 和 Prod 资源
- 验证操作 —— 每次写操作后用 Get/List 验证
- 主动引导 —— 每步完成后建议下一步
- 保护数据源和计算资源 —— 绝不通过本 Skill 修改或删除数据源或计算资源;此类操作请使用 DataWorks 控制台
参考链接
| 参考 | 说明 |
|---|---|
| references/data-sources/README.md | 数据源类型列表和 ConnectionProperties 示例 |
| references/data-sources/ | 每种数据源类型的详细配置文档(50 个文件) |
| references/cross-account-datasources.md | 跨账号数据源配置指南 |
| references/compute-resources/README.md | 计算资源 ConnectionProperties 示例 |
| references/cli-installation-guide.md | Aliyun CLI 安装指南 |
| references/ram-policies.md | RAM 权限配置和策略示例 |
| references/related-apis.md | API 参数详情和地域 Endpoint |
阿里云skills
◯ 评论 0