DataWorks Shell節點面向資料開發工程師,支援標準Shell指令碼的無互動式執行,適用於OSS檔案處理、工具調用等自動化任務。該節點原生整合ossutil,可通過設定檔或命令列參數安全訪問 OSS,並支援調度參數注入、資源引用及基於自訂鏡像的運行環境擴充,滿足生產級調度與營運需求。
許可權說明
進行節點開發的RAM帳號已被添加至對應工作空間中,並具有開發或空間管理員角色許可權。詳情請參見:為工作空間增加空間成員。
使用說明
文法限制
支援標準Shell文法,不支援互動性文法。
運行環境與網路訪問
Shell節點支援Serverless資源群組(推薦)或舊版獨享調度資源群組執行。如需購買使用Serverless資源群組,詳情請參見使用Serverless資源群組。
Serverless資源群組上運行Shell節點時,如果您需要訪問的目標端有白名單限制,請添加Serverless資源群組對應IP至目標端應用。
使用Serverless資源群組,單任務支援最大配置
64CU,建議不超過16CU,以避免CU過大導致資源不足,影響任務啟動。
擴充開發環境
如任務需要特定的開發環境支援,可使用DataWorks提供的自訂鏡像功能,定製化構建任務執行所需的鏡像。更多資訊,請參見自訂鏡像。
資源與多指令碼調用
避免在Shell節點中啟動大量子進程,由於目前Shell節點沒有資源限制,大量子進程可能會影響運行在該調度資源群組上的其他任務。
任務代碼大小不能超過128 KB。
快速入門
下面將以一個輸出"Hello DataWorks!"樣本,帶您完成Shell節點的建立、調試、配置與發布全流程。
節點開發
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,在下拉框中選擇對應工作空間後單擊進入資料開發。
滑鼠移至上方至
表徵圖,單擊,在建立節點對話方塊輸入節點名稱及路徑。在指令碼編輯區內輸入標準shell代碼(不支援互動式文法):
echo "Hello DataWorks!"完成代碼開發後,單擊
,選擇目標資源群組和鏡像,執行通用Shell節點任務。指令碼通過調實驗證後,在右側單擊調度配置,完成調度時間屬性,資源屬性等生產級調度策略配置,以支撐節點按計劃周期性自動執行。配置節點調度屬性,詳情請參見節點調度配置。
節點發布與營運
進階用法
引用資源
DataWorks支援通過資源管理將需要在Shell節點中使用的資源上傳至DataWorks,詳情請參見資源管理。
說明資源需要提交後才可被節點引用。若生產任務需使用該資源,還需將該資源發布至生產環境。詳情請參見發布任務。
在資料開發左側分類樹下找到已上傳的資源。
按右鍵該資源,選擇引用資源,則該資源將被引用至當前節點中。您可在節點編輯頁面,通過編寫代碼運行該資源。
說明引用成功後,系統將自動在指令碼頂部插入形如
##@resource_reference{resource_name}的聲明注釋。該注釋是 DataWorks 識別資源依賴、在任務運行時自動掛載對應資源至執行環境的必要標識,請勿手動修改或刪除。
使用調度參數
調度參數以位置參數形式注入 Shell 節點,不支援自訂變數名:DataWorks 將您在節點調度配置中設定的調度參數值,按順序作為 $1、$2、$3 … 等位置參數傳遞給 Shell 指令碼,當參數數量超過9時,需使用 ${10}、${11} 等大括弧文法以確保正確解析。多個參數值需用空格分隔,且順序必須與指令碼中引用的位置嚴格一致。
例如,本樣本中:
內建參數$1賦值取業務時間:$bizdate。
自訂參數$2賦值取業務時間:${yyyymmdd}。
自訂參數$3賦值取業務時間: $[yyyymmdd]。
若某個參數值包含空格,可用引號包裹,此時引號內的整個內容被視為一個獨立參數。
關於更多配置及使用調度參數資訊,詳情請參見配置並使用調度參數。
使用ossutil訪問OSS
DataWorks Shell節點原生支援阿里雲OSS命令列工具 ossutil,支援Bucket 管理、檔案上傳/下載、大量操作等任務。您可通過設定檔方式或命令列參數方式配置訪問憑證使用ossutil訪問OSS。
通過命令列參數方式使用ossutil訪問OSS,詳情可參見:命令列參數方式訪問OSS。
通過設定檔方式使用ossutil訪問OSS,詳情可參見:設定檔方式訪問OSS。
附錄:指令碼退出碼說明
根據指令碼退出碼可進一步判斷指令碼是否運行成功。
退出碼0:表示成功。
退出碼-1:表示進程被終止。
退出碼2:需要平台自動重跑一次任務。
其它退出碼:表示失敗。
下圖為Shell節點執行成功(退出碼為 0)時的標準作業記錄樣本。

基於Shell底層機制,Shell節點中整個指令碼的退出碼 = 最後一條被執行命令的退出碼。
相關文檔
瞭解如何在Shell節點使用Python 2或Python 3命令運行Python指令碼:詳情請參見Shell類型節點運行Python指令碼。
表徵圖,在彈出導航頁中依次選擇