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节点启动远程主机的某进程执行场景下,当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节点
- 选择SSH数据源(可选)
- 开发代码:简单示例
- 开发代码:使用调度参数
- 步骤二:节点发布与运维