DataWorks与云效CodeUp的集成,旨在将DataWorks项目内的节点、资源和函数进行代码化(Code)管理。通过这种方式,您可以利用云效CodeUp强大的分支管理、合并请求(Merge Request)等能力,将数据开发全面融入企业级的DevOps/DataOps体系,实现DataWorks与云效的双向同步及跨空间代码管理能力。
准备工作
已开通DataWorks企业版的工作空间。
拥有一个云效CodeUp代码库,并具备该代码库的管理权限。
拥有一个具备公网访问能力的DataWorks资源组,并绑定至目标空间。
在与DataWorks工作空间相同的地域(Region)下,创建一个OSS Bucket。并在DataWorks工作空间的数据源管理中,创建一个指向该Bucket的OSS数据源。
说明仅支持使用访问密钥(Access Key)模式的数据源。并确保所使用的访问凭证具备以下权限:
oss:GetObject、oss:ListObjects、oss:PutObject、oss:DeleteObject。
配置指南
第一步:创建专用的RAM用户
此操作需拥有阿里云主账号或具备RAM访问控制管理权限的账号。
为确保安全与权限隔离,创建一个专用的RAM用户,作为DataWorks与云效CodeUp之间进行自动化代码交互的专属服务账号。
使用主账号登录 RAM 访问控制。
导航至身份管理 > 用户,点击创建用户。
填写用户账号信息:
登录名称:建议设置为具有明确标识的名称,例如
dataworks_pusher。安全邮箱:为其配置一个有效的邮箱地址,此邮箱将用于云效的身份识别。
访问方式:勾选使用控制台访问,并设置登录密码(此密码用于后续生成SSH密钥)。
第二步:配置云效CodeUp代码库
接下来,我们需要在云效CodeUp中授权此RAM用户,并设置保护性规则,确保代码提交的规范性。
将RAM用户添加为代码库成员:
使用主账号登录云效CodeUp平台,进入目标代码库。
在左侧导航栏选择成员。点击 添加成员 > 邀请 > 添加RAM用户,如果列表中未出现
dataworks_pusher,可点击手动同步刷新。将dataworks_pusher添加进入组织。说明如邀请成员时显示:
你还未授权,前往授权并确认即可。选中
dataworks_pusher用户,为其分配开发者角色,将成员添加至代码库。
配置分支保护规则:
目的:仅允许 DataWorks 系统自动推送,人为干预需通过 Merge Request 审核。
进入代码库的设置 > 分支设置 > 保护分支规则页面。
点击新建规则,进行如下配置:
分支名称匹配:填写
dataworks_*。这将保护所有由DataWorks自动创建和管理的分支。允许推送代码:
允许推送的角色:设置为无。
允许推送的成员:仅选择
dataworks_pusher。
允许合并代码:
允许合并的角色/成员:均设置为无。
保存规则。
生成并获取SSH密钥:
登出主账号,使用刚刚创建的RAM用户(
dataworks_pusher)登录云效平台。点击右上角个人头像,进入个人设置 > SSH公钥。
生成 SSH 密钥对(本地或跳板机执行)。
# 将 "your_user_email@example.com" 替换为上一步中配置的账户邮箱 ssh-keygen -t rsa -C "your_user_email@example.com" # 在提示输入口令时,直接按回车键跳过 Enter passphrase (empty for no passphrase): [回车] Enter same passphrase again: [回车] # 查看公钥内容 cat ~/.ssh/id_rsa.pub添加SSH公钥:
将上述公钥内容粘贴到云效的公钥输入框。
作用范围勾选:全部。
不设过期时间 。
注意:DataWorks会自动在您的代码库中创建三个命名格式固定的分支,您无需手动创建。
第三步:验证网络连通性(可选但推荐)
在配置完成后,建议您在DataWorks中创建一个临时的SSH节点,以验证DataWorks的调度资源组能否正常访问云效服务。
在DataWorks中创建一个Shell节点,为该节点配已准备的开通公网访问权限的资源组。
测试网络连通性:运行
telnet命令。如果日志显示“Connected to ...”,表示网络连通,网络连通后,即可停止运行。# 替换为您的Git服务器域名或IP,如云效地址:codeup.aliyun.com telnet codeup.aliyun.com 22以云效为例,当日志出现以下内容,则说明网络已连通,可停止运行任务;否则,需要检查网络配置是否成功。

测试SSH密钥有效性:运行以下脚本。如果日志出现“Welcome to ...”等成功认证信息,表示私钥配置正确。
# SSH私钥是否正确,期望输出“Welcome to xxx,……” # 以下脚本将在一个临时的运行环境中,将您提供的私钥内容写入标准SSH密钥文件(~/.ssh/id_rsa),并以此测试与Git服务器的连接,验证私钥的有效性。 # 将私钥内容编码为Base64 id_rsa_base64=$(cat <<'EOF' | base64 -w 0 # [此处粘贴私钥(id_rsa文件)完整内容] -----BEGIN OPENSSH PRIVATE KEY----- ... -----END OPENSSH PRIVATE KEY----- EOF ) # 在运行环境中重建SSH密钥文件 id_rsa=$(base64 -d <<< "$id_rsa_base64") mkdir ~/.ssh echo "$id_rsa" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub chmod 644 ~/.ssh/id_rsa.pub # 测试SSH连接(将your_git_server_domain替换为您的Git SSH地址,如codeup.aliyun.com) ssh -T git@codeup.aliyun.com单击运行,以云效为例,若运行日志中出现以下内容,说明该账号的私钥正确。

运行该节点,查看日志输出。如果两项测试均成功,则代表配置无误,网络畅通。
第四步:配置DataWorks工作空间
仅支持租户管理员及工作空间管理员设置当前空间的代码同步配置,其他角色无权限新增或者变更该内容。
获取私钥后,返回DataWorks完成最后的绑定。
在DataWorks中,进入 数据开发 > 代码管理。
配置代码同步:
名称
描述
SSH地址
目标Git代码库的SSH地址。
私钥
粘贴步骤二中生成的私钥(
id_rsa文件)的完整内容。重要私钥内容需要包括
-----BEGIN OPENSSH PRIVATE KEY-----和-----END OPENSSH PRIVATE KEY-----。OSS 数据源
选择已准备好的OSS数据源。
说明界面若提示:“未授权当前资源组访问OSS数据源权限,去授权”,点击去授权即可。
OSS 路径
指定一个OSS路径用于存放代码元数据,例如:
dataworks-workspace-code。通用资源组
选择上文准备的Serverless资源组。
配置完成后,单击开始同步。开启同步后,需要对Git代码库进行初始化。单击初始化,系统将自动在Git仓库中创建DataWorks所需的分支并同步当前工作空间中的代码,可能需要数分钟,在此期间,单击右上角的
按钮,可以查看初始化日志。说明关闭同步后,再次开启同步,需要重新初始化。重新初始化之前需要清理
配置生效后,DataWorks会自动在您的Git仓库中创建并管理以下三个分支,请勿手动创建或修改它们:
dataworks_${region}_${projectId}_save:对应在DataWorks中保存操作的代码。dataworks_${region}_${projectId}_release_dev:对应发布到开发环境成功的代码,如工作空间为简单模式,则dev分支不生成。dataworks_${region}_${projectId}_release_prod:对应发布到生产环境成功的代码。
后续步骤
云效同步配置完成后,可以实现代码的协同编辑、统一管理、跨空间合并等场景,详见:Git代码同步与合并。