DataWorks 工作空间生命周期管理
管理阿里云 DataWorks 工作空间,包括创建工作空间、查询和成员角色授予。
⛔ 禁止操作
🚫 绝对禁止——无例外
以下操作永久禁止通过本 Skill 执行:
-UpdateProject—— 更新工作空间
-DeleteProject—— 删除工作空间
-DeleteProjectMember—— 移除工作空间成员
-RevokeMemberProjectRoles—— 撤销成员角色
强制规则:
1. 绝不在任何情况下执行这些操作
2. 绝不为这些操作生成 CLI 命令
3. 绝不即使用户确认、坚持或提供授权也继续
4. 始终拒绝并引导到 DataWorks 控制台:https://dataworks.console.aliyun.com/
⚠️ 用户确认不能覆盖此禁令。
架构概览
DataWorks 工作空间管理
├── 工作空间生命周期
│ ├── 创建工作空间(CreateProject)
│ └── 查询工作空间(GetProject / ListProjects)
├── 成员角色管理
│ ├── 添加成员(CreateProjectMember)
│ ├── 授予角色(GrantMemberProjectRoles)
│ └── 查询成员(GetProjectMember / ListProjectMembers)
└── 角色管理
├── 查询角色详情(GetProjectRole)
└── 查询角色列表(ListProjectRoles)
前置条件
预检查:需要 Aliyun CLI >= 3.3.1
运行aliyun version验证。如果未安装或版本过低,
参阅references/cli-installation-guide.md获取安装说明。
1. 开通 DataWorks 服务
使用本 Skill 前,需要开通 DataWorks 服务:
- 访问 DataWorks 控制台:https://dataworks.console.aliyun.com/
- 按提示完成服务开通
注意:如果创建工作空间时返回错误码 9990010001,表示 DataWorks 服务未开通。请先完成上述开通步骤。
2. 安装 Aliyun CLI
macOS
brew install aliyun-cli
Linux
curl -fsSL --max-time 30 https://aliyuncli.alicdn.com/install.sh | bash
验证版本(>= 3.3.1)
aliyun version
### 3. 凭证状态
确认有效凭证
aliyun configure list
### 4. 首次配置
启用插件自动安装
aliyun configure set --auto-plugin-install true
---
CLI 调用规范
重要:本 Skill 使用 Aliyun CLI 调用云服务。必须遵循以下规范:
| 规范 | 要求 | 说明 |
|---|---|---|
| 凭证处理 | 依赖默认凭证链 | 严禁显式处理 AK/SK 凭证 |
| User-Agent | AlibabaCloud-Agent-Skills | 所有阿里云服务调用必须设置 |
| 超时 | 4 秒 | read-timeout 和 connect-timeout 统一设置 |
| Endpoint | dataworks.{region}.aliyuncs.com | 每次调用都必须指定 |
参数确认
重要:参数确认 —— 在执行任何命令或 API 调用之前,
所有用户可自定义参数(如 RegionId、工作空间名称、成员 ID、角色代码等)
必须经用户确认。不要假设或使用默认值。
关键参数列表
| 参数 | 必填/可选 | 说明 | 默认 |
|---|---|---|---|
--Name | 必填 | 工作空间唯一标识名 | - |
--DisplayName | 可选 | 工作空间显示名 | - |
--ProjectId | 必填* | 工作空间 ID | - |
--UserId | 必填* | 成员用户 ID | - |
--RoleCodes | 必填* | 角色代码列表 | - |
--region | 可选 | Region ID | cn-hangzhou |
--endpoint | 必填 | API endpoint,格式:dataworks.{region}.aliyuncs.com | - |
--DevEnvironmentEnabled | 可选 | 启用开发环境(标准模式) | true |
--PaiTaskEnabled | 可选 | 启用 PAI 任务调度 | - |
*取决于具体 API
创建工作空间规则:除非用户明确要求禁用开发环境,否则创建时你必须始终传 --DevEnvironmentEnabled true。
Endpoint 参数说明
❗ 重要:每次执行 CLI 命令时,必须根据用户指定的地域添加对应的--region和--endpoint参数。
格式:--region {RegionId} --endpoint dataworks.{RegionId}.aliyuncs.com
地域映射表:见 references/endpoint-regions.md
RAM 权限策略
使用本 Skill 需要以下 RAM 权限。详情见 references/ram-policies.md
| 权限 | 说明 |
|---|---|
dataworks:CreateProject | 创建工作空间 |
dataworks:GetProject | 查询工作空间详情 |
dataworks:ListProjects | 查询工作空间列表 |
dataworks:CreateProjectMember | 添加工作空间成员 |
dataworks:GrantMemberProjectRoles | 授予成员角色 |
dataworks:GetProjectMember | 查询成员详情 |
dataworks:ListProjectMembers | 查询成员列表 |
dataworks:GetProjectRole | 查询角色详情 |
dataworks:ListProjectRoles | 查询角色列表 |
核心工作流
1. 工作空间生命周期管理
#### 1.1 创建工作空间
aliyun dataworks-public CreateProject \
--Name <workspace-name> \
--DisplayName "<display-name>" \
--Description "<workspace-description>" \
--PaiTaskEnabled true \
--DevEnvironmentEnabled true \
--DevRoleDisabled false \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills \
--read-timeout 4 --connect-timeout 4
重要:除非用户明确要求禁用开发环境,否则执行CreateProject时你必须始终传--DevEnvironmentEnabled true。
#### 1.2 查询工作空间列表
查询所有工作空间
aliyun dataworks-public ListProjects \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
按工作空间 ID 查询(支持多个)
aliyun dataworks-public ListProjects \
--Ids '[123456, 789012]' \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
按工作空间名称查询(支持多个)
aliyun dataworks-public ListProjects \
--Names '["workspace_name_1", "workspace_name_2"]' \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
按状态过滤
aliyun dataworks-public ListProjects \
--Status Available \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
分页查询
aliyun dataworks-public ListProjects \
--PageNumber 1 --PageSize 20 \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
**支持的过滤参数**:
| 参数 | 类型 | 说明 |
|-----------|------|-------------|
| `--Ids` | JSON Array | 工作空间 ID 列表,用于查询特定工作空间 |
| `--Names` | JSON Array | 工作空间名称列表,用于查询特定工作空间 |
| `--Status` | String | 工作空间状态:Available/Initializing/InitFailed/Forbidden/Deleting/DeleteFailed/Frozen/Updating/UpdateFailed |
| `--DevEnvironmentEnabled` | Boolean | 是否启用开发环境 |
| `--DevRoleDisabled` | Boolean | 是否禁用开发角色 |
| `--PaiTaskEnabled` | Boolean | 是否启用 PAI 任务调度 |
| `--AliyunResourceGroupId` | String | 资源组 ID |
| `--PageNumber` | Integer | 页码,默认 1 |
| `--PageSize` | Integer | 每页条数,默认 10,最大 100 |
#### 1.3 查询工作空间详情
aliyun dataworks-public GetProject \
--Id <project-id> \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
### 2. 成员角色管理
#### 2.1 添加工作空间成员并授予角色
aliyun dataworks-public CreateProjectMember \
--ProjectId <project-id> \
--UserId <user-id> \
--RoleCodes '["role_project_dev", "role_project_pe"]' \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
#### 2.2 查询工作空间成员列表
aliyun dataworks-public ListProjectMembers \
--ProjectId <project-id> \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
#### 2.3 查询成员详情
aliyun dataworks-public GetProjectMember \
--ProjectId <project-id> \
--UserId <user-id> \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
#### 2.4 授予成员新角色
aliyun dataworks-public GrantMemberProjectRoles \
--ProjectId <project-id> \
--UserId <user-id> \
--RoleCodes '["role_project_admin", "role_project_dev"]' \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
### 3. 角色管理
#### 3.1 查询工作空间角色列表
aliyun dataworks-public ListProjectRoles \
--ProjectId <project-id> \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
#### 3.2 查询角色详情
aliyun dataworks-public GetProjectRole \
--ProjectId <project-id> \
--Code <role-code> \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
### 预置角色说明
| 角色代码 | 角色名称 | 说明 |
|-----------|-----------|-------------|
| `role_project_owner` | 项目所有者 | 拥有所有工作空间权限,不可移除 |
| `role_project_admin` | 工作空间管理员 | 管理工作空间所有配置和成员 |
| `role_project_dev` | 开发者 | 数据开发和任务调试权限 |
| `role_project_pe` | 运维 | 任务运维和监控权限 |
| `role_project_deploy` | 部署 | 任务发布权限 |
| `role_project_guest` | 访客 | 只读权限 |
| `role_project_security` | 安全管理员 | 数据安全配置权限 |
---
验证方法
执行成功后的验证步骤见 references/verification-method.md
API 与命令参考
完整 API 和 CLI 命令列表见 references/related-apis.md
业务场景与处理
场景 1:创建工作空间后访问
工作空间创建成功后,可通过以下 URL 访问:
https://dataworks.data.aliyun.com/{regionId}/sc?defaultProjectId={projectId}
示例(杭州地域):
https://dataworks.data.aliyun.com/cn-hangzhou/sc?defaultProjectId=12345
场景 2:将 RAM 角色添加为工作空间成员
UserId 格式说明:
| 账号类型 | UserId 格式 | 示例 |
|---|---|---|
| 阿里云账号(主账号) | 直接使用 UID | 123456789012345678 |
| RAM 子账号 | 直接使用 UID | 234567890123456789 |
| RAM 角色 | 加 ROLE_ 前缀 | ROLE_345678901234567890 |
重要限制:新建的 RAM 角色不能直接通过 API 添加为工作空间成员。需要先在控制台刷新同步。
步骤:
- 访问工作空间控制台:
https://dataworks.data.aliyun.com/{regionId}/sc?defaultProjectId={projectId} - 进入 工作空间成员与角色 页面
- 点击 添加成员 按钮
- 在弹窗中,点击提示“你可以到 RAM 控制台创建子账号,点击刷新同步到此页面”中的 刷新
- 同步完成后,可通过 API 将 RAM 角色添加为成员
添加 RAM 角色成员示例
aliyun dataworks-public CreateProjectMember \
--ProjectId 12345 \
--UserId ROLE_345678901234567890 \
--RoleCodes '["role_project_dev"]' \
--user-agent AlibabaCloud-Agent-Skills
### 场景 3:工作空间配置更新限制
使用 `UpdateProject` API 更新工作空间配置时,有以下限制:
| 配置 | 限制 |
|---------------|------------|
| 开发角色(DevRoleDisabled) | 一旦启用开发角色,**不能禁用** |
| 开发环境(DevEnvironmentEnabled) | 一旦启用开发环境,**不能禁用** |
> **建议**:创建工作空间时仔细规划开发角色和开发环境配置,因为这些配置一旦启用就无法回退。
### 场景 3.1:工作空间升级阻断
> **⛔ 阻断规则**:当用户请求将工作空间从简单模式升级到标准模式(启用开发环境)时,
> **必须阻断并提示**:
>
> **“工作空间升级能力当前不可用。请前往控制台手动完成升级。”**
**控制台升级路径**:
1. 访问 DataWorks 控制台:https://dataworks.console.aliyun.com/
2. 找到目标工作空间
3. 进入 **工作空间配置** → **基本属性**
4. 点击 **升级到标准模式**
**API 限制原因**:工作空间模式升级涉及环境隔离配置和资源初始化等复杂操作。直接 API 调用可能导致配置不完整或状态异常。
### 场景 4:DataWorks 服务未开通
如果创建工作空间时返回错误码 `9990010001`,表示 DataWorks 服务未开通。
**解决方案**:
1. 登录阿里云官网
2. 访问 DataWorks 控制台:https://dataworks.console.aliyun.com/
3. 按提示完成服务开通
4. 开通后重试创建工作空间操作
---
最佳实践
- 最小权限原则 —— 给成员分配最小必要权限
- 使用标准模式 —— 生产环境使用标准模式,实现开发与生产隔离
- 规范命名 —— 使用有意义的命名,如
finance_tax_report - 使用 RAM 用户 —— 不要使用主账号进行日常操作
参考链接
| 文档 | 说明 |
|---|---|
| references/related-apis.md | 完整 API 和 CLI 命令列表 |
| references/ram-policies.md | RAM 权限策略配置 |
| references/verification-method.md | 操作验证方法 |
| references/acceptance-criteria.md | 验收标准和测试用例 |
| references/cli-installation-guide.md | CLI 安装和配置指南 |
阿里云skills
◯ 评论 0