全部產品
Search
文件中心

DataWorks:Shell節點

更新時間:Jan 29, 2026

DataWorks Shell節點面向資料開發工程師,支援標準Shell指令碼運行,適用於檔案操作、OSS/NAS資料互動等情境。使用者可配置調度參數、引用資源、通過預裝ossutil工具安全訪問OSS,以及通過關聯RAM角色運行節點。

許可權說明

進行節點開發的RAM帳號已被添加至對應工作空間中,並具有開發或空間管理員角色許可權。詳情請參見:為工作空間增加空間成員

使用說明

  1. 文法限制

    • 支援標準Shell文法,不支援互動性文法。

  2. 運行環境與網路訪問

    • Serverless資源群組上運行Shell節點時,如果您需要訪問的目標端有白名單限制,請添加Serverless資源群組對應IP至目標端應用。

    • 使用Serverless資源群組,單任務支援最大配置64CU,建議不超過16CU,以避免CU過大導致資源不足,影響任務啟動。

  3. 擴充開發環境

    • 如任務需要特定的開發環境支援,可使用DataWorks提供的自訂鏡像功能,定製化構建任務執行所需的鏡像。更多資訊,請參見自訂鏡像

  4. 資源與多指令碼調用

    • 避免在Shell節點中啟動大量子進程,由於目前Shell節點沒有資源限制,大量子進程可能會影響運行在該調度資源群組上的其他任務。

    • 若Shell節點調用了其他指令碼(例如Python),Shell節點會等待被呼叫指令碼執行完成後才結束。

快速入門

下面將以一個輸出"Hello DataWorks!"樣本,帶您完成Shell節點的建立、調試、配置與發布全流程。

節點開發

  1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的數據開發與營運 > 数据开发,在下拉框中選擇對應工作空間後單擊進入資料開發

  2. 在資料開發(Data Studio)頁面,建立Shell節點。

  3. 在指令碼編輯區內輸入標準shell代碼(不支援互動式文法):

    echo "Hello DataWorks!"
  4. 完成代碼開發後,在右側單擊回合組態,選擇目標調試資源群組及其他必要執行參數,隨後單擊image運行按鈕,觸發本地化調試執行。

  5. 指令碼通過調實驗證後,需在右側單擊調度配置,完成調度周期、依賴關係、參數設定等生產級調度策略配置,以支撐節點按計劃周期性自動執行。

  6. 完成任務調度配置後,需對節點進行儲存後,才可進行下一步操作。

節點發布與營運

  1. 完成調度配置後,可將Shell節點提交發布至生產環境,實現從開發態到生產態的正式部署。具體操作及發布流程,請參見:節點/工作流程發布

  2. 發布成功後,任務將按照您配置的調度進行周期運行。您可通過單擊左上方image表徵圖,在彈出導航頁中依次選擇全部產品 > 資料開發與營運 > 營運中心,進入營運中心,隨後在左側功能表列定位至任務營運 > 周期任務營運 > 周期任務,即可查看發行的周期任務。詳細功能說明請參見:營運中心入門

進階用法

引用資源

  1. DataWorks支援通過資源管理將需要在Shell節點中使用的資源上傳至DataWorks,詳情請參見資源管理

    說明

    資源需要發布後才可被節點引用。若生產任務需使用該資源,還需將該資源發布至生產環境。

  2. 開啟已建立的Shell節點進入指令碼編輯頁面。

  3. 單擊左側導覽列中的image,進入資源管理菜單,然後找到需要引用的資源。選中資源後,右鍵選擇引用資源,即可在Shell指令碼中引用該資源。

    image

    說明
    • 引用成功後,系統將自動在指令碼頂部插入形如##@resource_reference{resource_name} 的聲明注釋。

    • 該注釋是 DataWorks 識別資源依賴、在任務運行時自動掛載對應資源至執行環境的必要標識,請勿手動修改或刪除。

使用調度參數

調度參數以位置參數形式注入 Shell 節點,不支援自訂變數名:DataWorks 將您在節點調度配置 > 調度參數中設定的參數值,按順序作為 $1$2$3 … 等位置參數傳遞給 Shell 指令碼。當參數數量超過9時,需使用 ${10}${11} 等大括弧文法以確保正確解析。多個參數值需用空格分隔,且順序必須與指令碼中引用的位置嚴格一致。

image

例如,本樣本中:

  • 參數$1賦值為目前時間:$[yyyymmdd]

  • 參數$2賦值為固定值:Hello DataWorks

說明
  • 若某個參數值包含空格,可用引號包裹,此時引號內的整個內容被視為一個獨立參數。

  • 如需擷取上遊節點的輸出參數,您需要在調度配置 > 節點上下文參數 > 節點輸入參數中添加參數,設定參數值為上遊節點的輸出參數。

使用ossutil訪問OSS

DataWorks Shell節點原生支援阿里雲OSS命令列工具 ossutil,支援Bucket 管理、檔案上傳/下載、大量操作等任務。您可通過設定檔方式或命令列參數方式配置訪問憑證使用ossutil訪問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)時的標準作業記錄樣本。

image

說明

基於Shell底層機制,Shell節點中整個指令碼的退出碼 = 最後一條被執行命令的退出碼。