DataWorks Shell节点面向数据开发工程师,支持标准Shell脚本的无交互式执行,适用于OSS文件处理、工具调用等自动化任务。该节点原生集成ossutil,可通过配置文件或命令行参数安全访问 OSS,并支持调度参数注入、资源引用及基于自定义镜像的运行环境扩展,满足生产级调度与运维需求。
权限说明
进行节点开发的RAM账号已被添加至对应工作空间中,并具有开发或空间管理员角色权限。详情请参见:为工作空间添加空间成员。
使用说明
语法限制
支持标准Shell语法,不支持交互性语法。
运行环境与网络访问
Shell节点支持Serverless资源组(推荐)或旧版独享调度资源组执行。如需购买使用Serverless资源组,详情请参见使用Serverless资源组。
Serverless资源组上运行Shell节点时,如果您需要访问的目标端有白名单限制,请添加Serverless资源组对应IP至目标端应用。
使用Serverless资源组,单任务支持最大配置
64CU,建议不超过16CU,以避免CU过大导致资源不足,影响任务启动。
扩展开发环境
如任务需要特定的开发环境支持,可使用DataWorks提供的自定义镜像功能,定制化构建任务执行所需的镜像。更多信息,请参见自定义镜像。
资源与多脚本调用
避免在Shell节点中启动大量子进程,由于目前Shell节点没有资源限制,大量子进程可能会影响运行在该调度资源组上的其他任务。
任务代码大小不能超过128 KB。
快速入门
下面将以一个输出"Hello DataWorks!"示例,带您完成Shell节点的创建、调试、配置与发布全流程。
节点开发
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的,在下拉框中选择对应工作空间后单击进入数据开发。
鼠标悬停至
图标,单击,在新建节点对话框输入节点名称及路径。在脚本编辑区内输入标准shell代码(不支持交互式语法):
echo "Hello DataWorks!"完成代码开发后,单击
,选择目标资源组和镜像,执行通用Shell节点任务。脚本通过调试验证后,在右侧单击调度配置,完成调度时间属性,资源属性等生产级调度策略配置,以支撑节点按计划周期性自动执行。配置节点调度属性,详情请参见节点调度配置。
节点发布与运维
高级用法
引用资源
DataWorks支持通过资源管理将需要在Shell节点中使用的资源上传至DataWorks,详情请参见资源管理。
说明资源需要提交后才可被节点引用。若生产任务需使用该资源,还需将该资源发布至生产环境。详情请参见发布任务。
在数据开发左侧目录树下找到已上传的资源。
右键单击该资源,选择引用资源,则该资源将被引用至当前节点中。您可在节点编辑页面,通过编写代码运行该资源。
说明引用成功后,系统将自动在脚本顶部插入形如
##@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。
通过命令行参数方式使用ossutil访问OSS,详情可参见:命令行参数方式访问OSS。
通过配置文件方式使用ossutil访问OSS,详情可参见:配置文件方式访问OSS。
附录:脚本退出码说明
根据脚本退出码可进一步判断脚本是否运行成功。
退出码0:表示成功。
退出码-1:表示进程被终止。
退出码2:需要平台自动重跑一次任务。
其它退出码:表示失败。
下图为Shell节点执行成功(退出码为 0)时的标准运行日志示例。

基于Shell底层机制,Shell节点中整个脚本的退出码 = 最后一条被执行命令的退出码。
相关文档
了解如何在Shell节点使用Python 2或Python 3命令运行Python脚本:详情请参见Shell类型节点运行Python脚本。
图标,在弹出导航页中依次选择