如何从通过SSHExecuteOperator推送的Airflow XCom中检索值

时间:2017-03-23 10:57:38

标签: ssh airflow

我有以下DAG和两个SSHExecuteOperator任务。第一个任务执行返回参数的存储过程。第二个任务需要此参数作为输入。

请解释一下如何从task1中推送的XCom中提取值,以便在task2中使用它?

String[] array;
String txt = "A String Example";
String output;
array=txt.split(" "); // split the text using space.
output = array[1]; // if you want to keep the second word.

2 个答案:

答案 0 :(得分:6)

所以我找到的解决方案是当task1执行shell脚本时,你必须确保你想要被XCom变量捕获的参数是脚本打印的最后一个东西(使用echo)。

然后我能够使用以下代码片段检索XCom变量值:

{{ task_instance.xcom_pull(task_ids='run_remote_sp_audit_batch_register') }}

答案 1 :(得分:0)

由xcom_push = True插入,尝试do_xcom_push = True,它将通过键return_value将所有stdout带到xcom