用途
本技能用于管理阿里云 DataWorks 工作空间的生命周期,覆盖工作空间创建、查询,以及工作空间成员与角色的添加和查询。它通过 Aliyun CLI 调用 DataWorks OpenAPI 完成操作。
主要能力
- 工作空间生命周期:创建工作空间(CreateProject)、查询工作空间列表(ListProjects)、查询工作空间详情(GetProject)。
- 成员角色管理:添加成员(CreateProjectMember)、授予角色(GrantMemberProjectRoles)、查询成员列表(ListProjectMembers)、查询成员详情(GetProjectMember)。
- 角色管理:查询角色列表(ListProjectRoles)、查询角色详情(GetProjectRole)。
明确禁止的操作
以下操作被永久禁止,任何情况下都不得执行,也不得生成对应 CLI 命令,即使用户确认、坚持或提供授权也不得进行,必须拒绝并引导至 DataWorks 控制台 https://dataworks.console.aliyun.com/ :
- UpdateProject(更新工作空间)
- DeleteProject(删除工作空间)
- DeleteProjectMember(移除工作空间成员)
- RevokeMemberProjectRoles(撤销成员角色)
使用方式
前置条件
- 开通 DataWorks 服务:访问 DataWorks 控制台 https://dataworks.console.aliyun.com/ 按提示完成开通。若创建工作空间时返回错误码 9990010001,表示服务未开通。
- 安装 Aliyun CLI(版本需 >= 3.3.1):
- macOS:
brew install aliyun-cli - Linux:
curl -fsSL --max-time 30 https://aliyuncli.alicdn.com/install.sh | bash - 验证版本:
aliyun version
- macOS:
- 确认凭证:
aliyun configure list - 首次配置:
aliyun configure set --auto-plugin-install true
CLI 调用规范
- 凭证处理:依赖默认凭证链,严禁显式处理 AK/SK 凭证。
- User-Agent:所有阿里云服务调用必须设置为 AlibabaCloud-Agent-Skills。
- 超时:read-timeout 与 connect-timeout 统一设置为 4 秒。
- Endpoint:每次调用必须指定,格式为 dataworks.{region}.aliyuncs.com。
- 参数确认:执行任何命令或 API 调用前,所有用户可自定义参数(如 RegionId、工作空间名称、成员 ID、角色代码等)必须经用户确认,不得假设或使用默认值。
关键参数
- --Name:必填,工作空间唯一标识名称。
- --DisplayName:可选,工作空间显示名称。
- --ProjectId:必填(视具体 API),工作空间 ID。
- --UserId:必填(视具体 API),成员用户 ID。
- --RoleCodes:必填(视具体 API),角色代码列表。
- --region:可选,地域 ID,默认 cn-hangzhou。
- --endpoint:必填,API endpoint。
- --DevEnvironmentEnabled:可选,是否启用开发环境(标准模式),默认 true。
- --PaiTaskEnabled:可选,是否启用 PAI 任务调度。
创建工作空间规则:除非用户明确要求禁用开发环境,否则执行 CreateProject 时必须始终传入 --DevEnvironmentEnabled true。
核心工作流示例
创建工作空间:
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
查询工作空间列表(支持按 ID、名称、状态过滤及分页):
aliyun dataworks-public ListProjects \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
查询工作空间详情:
aliyun dataworks-public GetProject \
--Id <project-id> \
--region <region-id> \
--endpoint dataworks.<region-id>.aliyuncs.com \
--user-agent AlibabaCloud-Agent-Skills
添加成员并授予角色:
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
授予成员新角色:
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
查询成员列表、成员详情、角色列表、角色详情分别使用 ListProjectMembers、GetProjectMember、ListProjectRoles、GetProjectRole。
预设角色
- role_project_owner:项目所有者,拥有全部工作空间权限,不可移除。
- role_project_admin:工作空间管理员,管理所有工作空间配置和成员。
- role_project_dev:开发者,数据开发与任务调试权限。
- role_project_pe:运维人员,任务运维与监控权限。
- role_project_deploy:部署人员,任务发布权限。
- role_project_guest:访客,只读权限。
- role_project_security:安全管理员,数据安全配置权限。
适用场景
- 创建 DataWorks 工作空间并查询其信息。
- 为工作空间添加成员并分配角色。
- 查询工作空间成员与角色信息。
- 创建工作空间后通过 URL 访问:https://dataworks.data.aliyun.com/{regionId}/sc?defaultProjectId={projectId}
限制与注意事项
- 禁止更新、删除工作空间,禁止移除成员和撤销角色,需前往控制台操作。
- 工作空间从简单模式升级到标准模式(启用开发环境)时,必须阻止并提示:"Workspace upgrade capability is currently not available. Please go to the console to complete the upgrade manually.",需前往控制台手动升级。
- 开发角色(DevRoleDisabled)和开发环境(DevEnvironmentEnabled)一旦启用,无法禁用,建议创建时仔细规划。
- 新建的 RAM 角色无法直接通过 API 添加为工作空间成员,需先在控制台刷新同步。
- UserId 格式:阿里云主账号和 RAM 子账号直接使用 UID;RAM 角色需加 ROLE_ 前缀,如 ROLE_345678901234567890。
- 使用本技能需要相应的 RAM 权限,包括 dataworks:CreateProject、dataworks:GetProject、dataworks:ListProjects、dataworks:CreateProjectMember、dataworks:GrantMemberProjectRoles、dataworks:GetProjectMember、dataworks:ListProjectMembers、dataworks:GetProjectRole、dataworks:ListProjectRoles。
- 最佳实践:遵循最小权限原则、生产环境使用标准模式、使用规范命名、使用 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 安装与配置指南
- references/endpoint-regions.md:地域映射表