全部產品
Search
文件中心

DataWorks:Shell節點

更新時間:Jan 30, 2026

DataWorks Shell節點面向資料開發工程師,支援標準Shell指令碼的無互動式執行,適用於OSS檔案處理、工具調用等自動化任務。該節點原生整合ossutil,可通過設定檔或命令列參數安全訪問 OSS,並支援調度參數注入、資源引用及基於自訂鏡像的運行環境擴充,滿足生產級調度與營運需求。

許可權說明

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

使用說明

  1. 文法限制

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

  2. 運行環境與網路訪問

    • Shell節點支援Serverless資源群組(推薦)或舊版獨享調度資源群組執行。如需購買使用Serverless資源群組,詳情請參見使用Serverless資源群組

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

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

  3. 擴充開發環境

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

  4. 資源與多指令碼調用

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

    • 任務代碼大小不能超過128 KB。

快速入門

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

節點開發

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

  2. 滑鼠移至上方至建立表徵圖,單擊建立節點 > 通用 > Shell,在建立節點對話方塊輸入節點名稱及路徑。

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

    echo "Hello DataWorks!"
  4. 完成代碼開發後,單擊image,選擇目標資源群組和鏡像,執行通用Shell節點任務。

  5. 指令碼通過調實驗證後,在右側單擊調度配置,完成調度時間屬性,資源屬性等生產級調度策略配置,以支撐節點按計劃周期性自動執行。配置節點調度屬性,詳情請參見節點調度配置

節點發布與營運

  1. 任務調度屬性配置完成後,您可提交節點至開發環境,並發布至生產環境進行周期性調度。

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

進階用法

引用資源

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

    說明

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

  2. 在資料開發左側分類樹下找到已上傳的資源。

  3. 按右鍵該資源,選擇引用資源,則該資源將被引用至當前節點中。您可在節點編輯頁面,通過編寫代碼運行該資源。

    使用資源

    說明

    引用成功後,系統將自動在指令碼頂部插入形如##@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。

附錄:指令碼退出碼說明

根據指令碼退出碼可進一步判斷指令碼是否運行成功。

  • 退出碼0:表示成功。

  • 退出碼-1:表示進程被終止。

  • 退出碼2:需要平台自動重跑一次任務。

  • 其它退出碼:表示失敗。

下圖為Shell節點執行成功(退出碼為 0)時的標準作業記錄樣本。

image

說明

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

相關文檔

瞭解如何在Shell節點使用Python 2或Python 3命令運行Python指令碼:詳情請參見Shell類型節點運行Python指令碼