SuperAPI AI 工具集

alibabacloud-dataworks-workspace-manage

部署与运维

查看项目

更新于 10-15 13:21

技能介绍

用途

本技能用于管理阿里云 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(撤销成员角色)

使用方式

前置条件

  1. 开通 DataWorks 服务:访问 DataWorks 控制台 https://dataworks.console.aliyun.com/ 按提示完成开通。若创建工作空间时返回错误码 9990010001,表示服务未开通。
  2. 安装 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
  3. 确认凭证:aliyun configure list
  4. 首次配置: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:地域映射表