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代碼同步與合并。