DataWorks Shell節點面向資料開發工程師,支援標準Shell指令碼運行,適用於檔案操作、OSS/NAS資料互動等情境。使用者可配置調度參數、引用資源、通過預裝ossutil工具安全訪問OSS,以及通過關聯RAM角色運行節點。
許可權說明
進行節點開發的RAM帳號已被添加至對應工作空間中,並具有開發或空間管理員角色許可權。詳情請參見:為工作空間增加空間成員。
使用說明
文法限制
支援標準Shell文法,不支援互動性文法。
運行環境與網路訪問
Serverless資源群組上運行Shell節點時,如果您需要訪問的目標端有白名單限制,請添加Serverless資源群組對應IP至目標端應用。
使用Serverless資源群組,單任務支援最大配置
64CU,建議不超過16CU,以避免CU過大導致資源不足,影響任務啟動。
擴充開發環境
如任務需要特定的開發環境支援,可使用DataWorks提供的自訂鏡像功能,定製化構建任務執行所需的鏡像。更多資訊,請參見自訂鏡像。
資源與多指令碼調用
避免在Shell節點中啟動大量子進程,由於目前Shell節點沒有資源限制,大量子進程可能會影響運行在該調度資源群組上的其他任務。
若Shell節點調用了其他指令碼(例如Python),Shell節點會等待被呼叫指令碼執行完成後才結束。
快速入門
下面將以一個輸出"Hello DataWorks!"樣本,帶您完成Shell節點的建立、調試、配置與發布全流程。
節點開發
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,在下拉框中選擇對應工作空間後單擊進入資料開發。
在資料開發(Data Studio)頁面,建立Shell節點。
在指令碼編輯區內輸入標準shell代碼(不支援互動式文法):
echo "Hello DataWorks!"完成代碼開發後,在右側單擊回合組態,選擇目標調試資源群組及其他必要執行參數,隨後單擊
運行按鈕,觸發本地化調試執行。指令碼通過調實驗證後,需在右側單擊調度配置,完成調度周期、依賴關係、參數設定等生產級調度策略配置,以支撐節點按計劃周期性自動執行。
完成任務調度配置後,需對節點進行儲存後,才可進行下一步操作。
節點發布與營運
進階用法
引用資源
DataWorks支援通過資源管理將需要在Shell節點中使用的資源上傳至DataWorks,詳情請參見資源管理。
說明資源需要發布後才可被節點引用。若生產任務需使用該資源,還需將該資源發布至生產環境。
開啟已建立的Shell節點進入指令碼編輯頁面。
單擊左側導覽列中的
,進入資源管理菜單,然後找到需要引用的資源。選中資源後,右鍵選擇引用資源,即可在Shell指令碼中引用該資源。
說明引用成功後,系統將自動在指令碼頂部插入形如
##@resource_reference{resource_name}的聲明注釋。該注釋是 DataWorks 識別資源依賴、在任務運行時自動掛載對應資源至執行環境的必要標識,請勿手動修改或刪除。
使用調度參數
調度參數以位置參數形式注入 Shell 節點,不支援自訂變數名:DataWorks 將您在節點中設定的參數值,按順序作為 $1、$2、$3 … 等位置參數傳遞給 Shell 指令碼。當參數數量超過9時,需使用 ${10}、${11} 等大括弧文法以確保正確解析。多個參數值需用空格分隔,且順序必須與指令碼中引用的位置嚴格一致。

例如,本樣本中:
參數$1賦值為目前時間:$[yyyymmdd]。
參數$2賦值為固定值:
Hello DataWorks。
若某個參數值包含空格,可用引號包裹,此時引號內的整個內容被視為一個獨立參數。
如需擷取上遊節點的輸出參數,您需要在中添加參數,設定參數值為上遊節點的輸出參數。
使用ossutil訪問OSS
DataWorks Shell節點原生支援阿里雲OSS命令列工具 ossutil,支援Bucket 管理、檔案上傳/下載、大量操作等任務。您可通過設定檔方式或命令列參數方式配置訪問憑證使用ossutil訪問OSS。
通過命令列參數方式使用ossutil訪問OSS,詳情可參見:命令列參數方式訪問OSS。
通過設定檔方式使用ossutil訪問OSS,詳情可參見:設定檔方式訪問OSS。
特別地,在新版資料開發中,針對Shell節點,除了上述兩種方式,其支援通過綁定RAM角色,利用阿里雲 STS(Security Token Service)動態擷取該角色的臨時安全憑證,並使用ossutil訪問OSS。此方式無需在代碼中明文配置長期有效 AccessKey,即可安全地獲得訪問目標雲資源的許可權。詳情請參見相關文檔:配置節點關聯角色。
ossutil 已預裝在DataWorks環境中,無需手動安裝。預設路徑為 /home/admin/usertools/tools/ossutil64。
使用資料集訪問OSS/NAS
DataWorks支援建立OSS或NAS類型的資料集,然後在Shell節點開發中使用資料集,實現Shell節點運行過程中讀寫OSS或NAS儲存中的資料。
通過關聯角色運行節點
支援配置節點關聯角色,使用特定RAM角色運行節點任務,實現許可權的細粒度控制和安全管控。
附錄:指令碼退出碼說明
根據指令碼退出碼可進一步判斷指令碼是否運行成功。
退出碼0:表示成功。
退出碼-1:表示進程被終止。
退出碼2:需要平台自動重跑一次任務。
其它退出碼:表示失敗。
下圖為Shell節點執行成功(退出碼為 0)時的標準作業記錄樣本。

基於Shell底層機制,Shell節點中整個指令碼的退出碼 = 最後一條被執行命令的退出碼。
表徵圖,在彈出導航頁中依次選擇