DataWorks 基础设施管理

统一管理阿里云 DataWorks 工作空间中的数据源计算资源资源组,支持创建和查询操作。

架构

DataWorks
├── 工作空间 ─── 查询和搜索工作空间
│   ├── 数据源 ─── 50 种类型:MySQL、Hologres、MaxCompute……
│   └── 计算资源 ─── Hologres、MaxCompute、Flink、Spark
└── 资源组 ─── Serverless 资源组管理(跨工作空间)

依赖关系:
  工作空间 ◀── 数据源、计算资源(必须属于某个工作空间)
  工作空间 ◀── 资源组(通过绑定关联;一个资源组可绑定多个工作空间)
  连通性测试 ──依赖──▶ 资源组(必须绑定到数据源所在的工作空间)
  标准模式 ──需要──▶ Dev(开发)+ Prod(生产)双数据源和计算资源

全局规则

前置条件

  1. Aliyun CLI >= 3.3.1aliyun version(安装指南:references/cli-installation-guide.md
  2. 首次使用aliyun configure set --auto-plugin-install true
  3. jq(资源组操作必需):which jq
  4. 凭证状态aliyun configure list,验证存在有效凭证
  5. DataWorks 版本:需要基础版或以上
安全规则不要读取 / 打印 / 回显 AK/SK 值,不要让用户直接输入 AK/SK,使用 aliyun configure list 检查凭证状态。

命令格式

  • User-Agent(强制):所有 aliyun CLI 命令必须包含 --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) | UpdateDataSourceDeleteDataSource | 防止意外数据丢失、凭证泄露、中断运行中的任务 |
| 计算资源(模块 2) | UpdateComputeResourceDeleteComputeResource | 防止中断运行中的开发和调度任务 |
允许的写 APICreateDataSourceCreateComputeResourceCreateResourceGroupAssociateProjectToResourceGroupDissociateProjectFromResourceGroupTestDataSourceConnectivity

RAM 权限

所有操作都需要 dataworks:<APIAction> 权限。创建资源组额外需要 AliyunBSSOrderAccessvpc:DescribeVpcsvpc:DescribeVSwitches

完整权限矩阵:references/ram-policies.md

快速开始:新工作空间基础设施初始化

当用户不确定具体操作或需求模糊时,引导他们完成以下流程:

  1. 环境检查 —— 按前置条件检查 CLI 和凭证
  2. 确认工作空间 —— 用 ListProjects 定位工作空间,用 GetProject 确认模式(Simple/Standard)
  3. 创建计算资源 —— 引导选择引擎类型;系统将自动创建对应数据源。标准模式需要 Dev+Prod 对。只有纯存储型数据源(MySQL、Kafka 等)需要单独创建数据源
  4. 创建 / 绑定资源组 —— 查询现有资源组 → 让用户选择 → 绑定。无可用资源组时引导创建
  5. 测试连通性 —— 用绑定的资源组测试;全部通过时告知"基础设施配置完成"
每一步后,主动建议下一步操作。

下一步指引

每个写操作完成并验证后,主动建议后续动作:

已完成操作推荐的下一步
创建计算资源标准模式:"创建对应的 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 执行门禁(全局规则)

重要DeleteDataSourceUpdateDataSource API 由 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、kafka16
仅 InstanceModehologres、dlf、opensearch3
仅 UrlModeoracle、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、bigquery31
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":"&lt;IP&gt;","port":&lt;PORT&gt;}],"database":"&lt;DB&gt;","username":"&lt;USER&gt;","password":"&lt;PWD&gt;"}
  • InstanceMode{"envType":"Prod","instanceId":"&lt;ID&gt;","regionId":"&lt;REGION&gt;","database":"&lt;DB&gt;","username":"&lt;USER&gt;","password":"&lt;PWD&gt;"}
特殊类型结构(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(推荐)、TaskOwnerSubAccountRamRole。除非用户有特殊要求,默认推荐 PrimaryAccount
authType 细节和指引:references/compute-resources/README.md

类型特定说明

  • Hologres:仅支持 InstanceMode,需要 instanceIdsecurityProtocol
  • MaxCompute:仅支持 UrlMode,需要 projectendpointMode
完整 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 权限。

交互流程(每一步让用户选择,不要自动选择):

  1. 查询并选择 VPC
aliyun vpc DescribeVpcs --user-agent AlibabaCloud-Agent-Skills --RegionId "<REGION_ID>" --PageSize 50

如果列表为空,引导用户创建 VPC;不要自动创建。

  1. 查询并选择 VSwitch
aliyun vpc DescribeVSwitches --user-agent AlibabaCloud-Agent-Skills --RegionId "<REGION_ID>" --VpcId "<VPC_ID>" --PageSize 50
  1. 确认名称和规格 → 执行创建:
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-hangzhoucn-shanghaicn-beijingcn-shenzhen。Endpoint:dataworks.&lt;region-id&gt;.aliyuncs.com

完整列表:references/related-apis.md

最佳实践

  1. 先查后动 —— 创建操作前确认当前状态
  2. 按环境管理 —— 分别管理 Dev 和 Prod 资源
  3. 验证操作 —— 每次写操作后用 Get/List 验证
  4. 主动引导 —— 每步完成后建议下一步
  5. 保护数据源和计算资源 —— 绝不通过本 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.mdAliyun CLI 安装指南
references/ram-policies.mdRAM 权限配置和策略示例
references/related-apis.mdAPI 参数详情和地域 Endpoint