You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取Cloud Data Fusion运行时信息:管道完成后传递runid至函数求助

获取Cloud Data Fusion管道Run ID并传递至指定函数

我来帮你搞定这个问题——Cloud Data Fusion其实自带了访问管道Run ID的方式,只是这个变量藏在内置宏里,下面是几种靠谱的实现方案:

方法1:直接使用内置宏${runtime.run.id}

这是最省心的方式,管道运行时Cloud Data Fusion会自动注入这个宏变量,你可以在管道的任意组件里直接引用它:

  • 比如在Shell Action组件里调用你的函数,把Run ID作为参数传递:
    # 示例:通过POST请求把Run ID传给你的函数
    curl -X POST "your-function-endpoint" -H "Content-Type: application/json" -d '{"run_id": "${runtime.run.id}"}'
    
  • 如果是自定义Java/Python函数组件,直接在配置参数里填入${runtime.run.id},函数内部读取该参数就能拿到Run ID。

方法2:管道结束后通过REST API获取(外部回调场景)

如果你的函数需要在管道外部触发(比如管道完成后的异步回调),可以在管道最后一步加一个HTTP Action组件,调用Cloud Data Fusion的API获取当前Run ID:

  1. 调用API:GET /v3/namespaces/{你的命名空间}/apps/{管道ID}/runs
  2. 结合${runtime.run.start}这个宏变量(管道启动时间戳),过滤出当前运行的记录
  3. 从返回的JSON结果里提取id字段,就是当前的Run ID,再把它传给你的指定函数

方法3:自定义组件中通过Execution Context获取(高级场景)

如果你在开发自定义Java组件,可以通过SDK直接访问Execution Context拿到Run ID:

import com.google.cloud.datafusion.v1beta1.ExecutionInfo;

// 在自定义组件的逻辑中获取Execution Context
ExecutionInfo execInfo = context.getExecutionInfo();
String runId = execInfo.getRunId();

// 将runId传递给你的函数
yourTargetFunction(runId);

小提示

  • 确认你的Cloud Data Fusion版本在2.0以上,这个版本开始正式支持${runtime.run.id}宏
  • 跨环境调用函数时,要提前配置好权限,确保管道有访问函数的权限,函数也能接收来自Cloud Data Fusion的请求

内容的提问来源于stack exchange,提问作者SUDHIR GARG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 19:07:53