SSH节点

更新时间:2025-01-27 06:16:55

DataWorksSSH节点可通过指定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节点启动远程主机的某进程执行场景下,当SSH节点任务异常退出时(例如,任务超时等场景),不会影响底层远程主机中的操作行为,即DataWorks不会主动向远程主机下发进程终止命令。

  • SSH节点支持标准Shell语法,不支持交互性语法。

步骤一:开发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. 发布完成的任务,将按照您配置的调度进行周期运行,可在运维中心 > 任务运维 > 周期任务运维 > 周期任务中查看已发布的周期任务,并对任务进行运维操作,详情请参见:运维中心入门

  • 本页导读 (1)
  • 节点介绍
  • 前提条件
  • 注意事项
  • 步骤一:开发SSH节点
  • 选择SSH数据源(可选)
  • 开发代码:简单示例
  • 开发代码:使用调度参数
  • 步骤二:节点发布与运维