如何使用xcoms或任何其他方式捕获SSH操作员对气流中变量的输出



我是气流中xcoms的新手,无法获得确切的信息,我们有一个ssh操作员任务,如下所示:;回声;命令

task_id = SSHOperator(
task_id="task_id",
ssh_conn_id="CONNECTION_ID",
command="echo Failed"
)

有什么方法可以将上面的任务输出捕获到像这样的变量中吗

variablea = "Failed"

有什么建议请。。我尝试了xcom push=True,但它显示的是空值。。

当尝试使用xcom push时,它显示一些输出为"VHJ1ZQo=";或者具有不同的字符。任何建议请

SSH操作符在未启用pickle的情况下返回字节对象(请参阅源代码(如果enable_xcom_pickling为false(这是默认值(,则命令的返回值将用Base64编码,然后推送到Xcom。如果您将从Base64解码VHJ1ZQo=,您将获得True

在使用Xcom之前,您需要对从中读取的值进行解码。你可能只需要运行

import base64
....
xcom_pull_value = func_to_get_xcom() # replace how you retrieve the xcom
value = base64.b64decode(xcom_pull_value).decode('utf-8')
print(value)

以从base64获得解码后的值。

最新更新