HTTP节点(Beta)

更新时间:
复制为 MD 格式

DataWorks HTTP节点提供低代码方式调用外部HTTP/HTTPS接口的能力,无需通过ShellPython节点封装请求即可在工作流中集成第三方服务、获取远程数据或触发外部任务。HTTP节点的返回结果会自动写入输出参数(outputs),下游节点可直接消费。

权限说明

进行节点开发的RAM账号已被添加至对应工作空间中,并具有开发空间管理员角色权限。详情请参见为工作空间添加空间成员

使用限制

重要

该功能目前正在灰度测试中,下游节点若需消费HTTP节点的参数,需要联系技术人员升级下游节点镜像。

  • 资源组:HTTP节点仅支持在Serverless资源组上运行,请确保工作空间已绑定可用的Serverless资源组。

  • 协议支持:仅支持HTTPHTTPS协议,协议类型由您填写的URL自动解析。

  • 网络访问:若目标接口存在IP白名单限制,需将Serverless资源组的出口IP添加至目标端白名单。详情请参见添加Serverless资源组对应IP

  • 输出参数:HTTP节点会将响应结果整体写入outputs参数,单次最大传递值为2 MB。下游节点引用outputs消费数据时,推荐响应内容为JSON格式以便结构化解析。

  • 同步执行:HTTP节点为同步调用节点,不适用于长连接或长轮询场景。需轮询等待的外部任务,建议采用「触发 + 多次HTTP查询」的工作流编排模式。

快速入门

以下示例介绍HTTP节点的创建、调试、调度配置与发布全流程,目标接口以公开的https://httpbin.org/get为例。

节点开发

  1. 登录DataWorks控制台,切换至目标地域后,在左侧导航栏单击数据开发与运维 > 数据开发,在下拉框中选择目标工作空间后单击进入

  2. 在数据开发(Data Studio)页面,新建HTTP节点。

  3. HTTP节点编辑页填写请求配置项,主要配置项如下表所示,完整说明请参见节点配置项

    配置项

    示例值

    请求地址

    https://httpbin.org/get

    请求类型

    GET

    安全认证

    无认证

    校验条件

    默认响应码(响应码2xx视为成功)

  4. 完成配置后,在右侧单击运行配置,选择目标Serverless调试资源组及其他必要执行参数,随后单击运行按钮,触发本地化调试执行。运行结束后,在下方结果面板查看HTTP响应状态码与响应体内容。

  5. 调试通过后,在右侧单击调度配置,完成调度周期、依赖关系、参数设置等生产级调度策略配置,以支撑节点按计划周期性自动执行。

  6. 完成任务调度配置后,需对节点进行保存后,才可进行下一步操作。

节点发布与运维

  1. 完成调度配置后,可将HTTP节点提交发布至生产环境,实现从开发态到生产态的正式部署。具体操作及发布流程,请参见节点/工作流发布

  2. 发布成功后,任务将按照您配置的调度进行周期运行。您可前往运维中心 > 周期任务运维 > 周期任务查看已发布的HTTP节点,并在实例日志中查看请求与响应详情。运维中心对HTTP节点的展示逻辑与赋值节点一致,重点展示输出参数。详情请参见运维中心入门

节点配置项

HTTP节点的配置项分为基础信息、请求参数、超时设置、安全认证与校验条件五类,各配置项说明如下。

基础信息

配置项

是否必填

说明

请求地址

完整的HTTPHTTPS请求URL,例如https://api.example.com/v1/users。支持在URL中引用调度参数,例如https://api.example.com/v1/logs?date=${bizdate}

请求类型

支持GETPOSTPUTDELETEPATCHHEAD六种请求方法。请求参数项会随请求类型自动联动(例如GET请求不显示Body配置项)。

请求参数

请求参数支持以键值对形式填写以下三类内容,每一类均支持引用调度参数。

参数类型

说明

查询参数

URL查询参数(Query String),以?key=value&key2=value2的形式拼接到URL末尾。适用于全部请求类型。

请求头

请求头,可填写Content-TypeAccept、自定义业务Header等键值对。适用于全部请求类型。

请求体

请求体内容,可填写JSON、表单或纯文本数据。仅POSTPUTPATCH请求支持配置请求体。

超时设置

配置项

默认值

说明

连接超时

30000 ms

从发起TCP连接到完成建立的最长等待时间。超出该时间未建立连接视为请求失败。

Socket超时

60000 ms

连接建立后,单次数据读取的最长等待时间。超出该时间未收到响应数据视为请求失败。

安全认证

HTTP节点支持以下四种安全认证方式,您可根据接口要求选择。

认证方式

说明

无认证

不携带任何认证信息,适用于公开接口或已通过IP白名单授权的内部接口。

Basic Auth

基于用户名 + 密码的HTTP基础认证。配置用户名和密码后,HTTP节点会自动在请求头中添加Authorization: Basic <base64(user:password)>

Bearer Token

直接配置静态Token,HTTP节点会在请求头中携带该Token。适用于已经签发好的长期Token场景。

API-Key

通过API-key进行认证,请在「请求头」中添加自定义 Header(如 X-API-Key)。

说明

敏感凭证(如密码、Token、客户端密钥)通过DataWorks工作空间参数-密文参数来注入,避免在节点配置中明文存储。

校验条件

HTTP节点根据校验条件判断本次请求是否成功,仅当校验条件命中时节点才视为运行成功。支持以下四种校验方式,可叠加使用。

校验类型

说明

状态码校验

默认行为:HTTP响应状态码为2xx视为请求成功,其它响应码视为失败。选择此项后会展开响应码输入框,您可填写期望的响应码(例如200,201,204),仅当实际响应码命中其中之一时,节点才视为成功。

内容包含

选择此项后会展开内容输入框,您可填写期望出现的字符串。仅当响应体中包含该字符串时,节点才视为成功。适用于响应码不可靠、但响应内容有固定标识的接口。

内容不包含

选择此项后会展开内容输入框,您可填写不应出现的字符串(例如"error""failed")。仅当响应体中不包含该字符串时,节点才视为成功。

调度配置与参数

HTTP节点的调度配置与MaxCompute SQL等调度类节点保持一致,支持调度周期、依赖关系、调度参数等设置。详情请参见节点调度配置

调度参数可在请求地址请求参数请求头请求体中通过${参数名}的方式引用。例如:

  • 在请求地址中按业务日期分区拉取数据:https://api.example.com/v1/logs?date=${bizdate}

  • 在请求体中按调度参数构造JSON:{"date":"${bizdate}","region":"cn-hangzhou"}

说明
  • 仅支持选择Serverless资源组作为调度资源组。

  • 如需引用上游节点的输出参数,可在调度配置 > 节点上下文 > 本节点输入参数中添加参数,再通过${参数名}方式注入到请求中。

输出参数与下游消费

HTTP节点会将本次请求的响应结果整体写入名为outputs的节点输出参数,下游节点可通过节点上下文参数引用该值并在代码中消费。该机制与赋值节点一致。

为便于下游节点结构化解析,建议被调用接口返回JSON格式响应。

常见问题

  • Q:HTTP节点与HTTP触发器节点有什么区别?

    A:两者用途完全不同。

    • HTTP节点(本文):是主动发起HTTP请求的执行节点,由DataWorks调度运行,向外部接口发送请求并取回响应。

    • HTTP触发器节点:是被动等待触发的虚拟节点,等待外部系统通过DataWorks OpenAPI触发后,启动其下游节点的调度。

  • Q:为什么HTTP节点只能在Serverless资源组上运行?

    A:HTTP节点底层依赖Serverless资源组的运行时环境,独享调度资源组或公共调度资源组尚未集成此节点类型。请确保工作空间已绑定可用的Serverless资源组。

  • Q:返回的响应不是JSON格式,下游节点应如何消费?

    A:响应非JSON时,outputs会以字符串形式保存原始响应内容。下游节点引用${参数名}可获取整段字符串,再由下游节点(Shell、Python等)自行解析。

  • Q:目标接口存在IP白名单限制,请求被拒绝怎么办?

    A:将工作空间所绑定的Serverless资源组对应的出口IP添加到目标接口的IP白名单。详情请参见添加Serverless资源组对应IP至目标端

  • Q:请求超时频繁失败,如何调优?

    A:根据被调用接口的实际响应耗时调整连接超时Socket超时。若接口本身耗时较长,建议采用「异步任务编排」模式:HTTP节点触发任务后,使用循环节点 + HTTP节点轮询任务状态,而不是单个HTTP节点长时间等待。

相关文档