全部產品
Search
文件中心

DataWorks:SSH節點

更新時間:Aug 02, 2025

DataWorks的SSH節點可通過指定SSH資料來源的方式,在DataWorks遠端存取該資料來源串連的主機,並觸發指令碼在遠程主機執行。本文為您帶來SSH節點的主要開發流程。

節點介紹

SSH節點是通過DataWorks遠端存取SSH資料來源串連的主機,例如您可通過此方式實現在DataWorks遠端存取ECS(Elastic Compute Service)並觸發ECS中的指令碼周期性調度執行。

前提條件

  • RAM帳號添加至對應空間(可選)。

    進行任務開發的RAM帳號已被添加至對應工作空間中,並具有開發空間管理員(許可權較大,謹慎添加)角色許可權。新增成員並授權,詳情請參見為工作空間增加空間成員

  • 對應空間已綁定Serverless資源群組。詳情請參見:使用Serverless資源群組

  • 進行SSH節點開發前,需建立對應的SSH節點,詳情請參見:建立周期任務

  • 已建立SSH資料來源。

    您需先通過建立SSH資料來源遠端存取您的SSH伺服器,才可在SSH節點中進行SSH任務的開發和周期性調度。建立資料來源,請參見建立SSH資料來源

    說明

    SSH節點僅支援使用JDBC串連串方式建立的SSH資料來源。同時,為避免任務運行失敗,請確保資料來源與資源群組網路連通。

使用限制

SSH節點內執行的代碼長度上限為128KB

注意事項

  • 通過SSH節點啟動遠程主機的某進程執行情境下,當SSH節點任務異常退出時(例如,任務逾時等情境),不會影響底層遠程主機中的操作行為,即DataWorks不會主動向遠程主機下發進程終止命令。

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

  • 通過SSH節點遠程觸發ECS指令碼執行時,會在ECS執行個體上產生臨時檔案。請確保ECS執行個體的磁碟空間充足,並且最大檔案數限制滿足需求。

  • 請避免多任務同時操作同一檔案,以免導致SSH節點異常。

步驟一:開發SSH節點

選擇SSH資料來源(可選)

如果您的工作空間建立了多個SSH資料來源,需先在SSH節點編輯頁面選擇合適的資料來源。如果僅建立了一個SSH資料來源,預設使用該資料來源進行開發操作。

說明

SSH節點僅支援使用JDBC串連串方式建立的SSH資料來源。同時,為避免任務運行失敗,請確保資料來源與資源群組網路連通。

開發代碼:簡單樣本

在SSH節點的代碼編輯地區編寫要執行的任務。範例程式碼如下。

# 1. 環境準備
# 請在遠程主機上找到您需要執行的檔案。例如,遠程主機tmp目錄下存在檔案nihao.sh。
# 為便於測試,您可在SSH節點直接執行以下命令建立nihao.sh檔案。
echo "echo nihao,dataworks" >/tmp/nihao.sh
# 2. 通過SSH節點觸發遠程主機檔案執行。
# 通過DataWorks的SSH節點觸發/temp/nihao.sh檔案執行。
sh /tmp/nihao.sh

開發代碼:使用調度參數

DataWorks提供的調度參數可實現周期調度情境下代碼動態入參,您可在節點任務中通過${變數名}的方式定義代碼中的變數,並在節點編輯頁面右側導覽列的調度配置>調度參數,為該變數賦值。調度參數支援的格式及配置詳情,請參見節點調度

您可結合DataWorks的調度參數使用,以下為調度參數在SSH節點的使用樣本:

# 需求:在/tmp/sshnode.log檔案中每日寫入SSH節點的執行時間。
# 實現:sshnode.log檔案使用變數${myDate},並為變數myDate賦值$[yyyy-mm-dd hh24:mi:ss],以該方式在檔案中寫入SSH節點的執行時間。
echo ${myDate} >/tmp/sshnode.log
cat /tmp/sshnode.log

完成SSH節點指令碼開發後,需對SSH節點進行調度配置,以實現SSH任務的周期調度,詳情請參見節點調度

步驟二:節點發布與營運

  1. 完成調度配置後,即可對已完成的SSH節點提交發布至生產環境,詳情請參見:節點/工作流程發布

  2. 發布完成的任務,將按照您配置的調度進行周期運行,可在營運中心 > 任務營運 > 周期任務營運 > 周期任務中查看發行的周期任務,並對任務進行營運操作,詳情請參見:營運中心入門

相關文檔

有關如何?SSH節點的負載平衡和高可用性的詳細資料,請參見SSH節點實現負載平衡高可用