我是气流中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获得解码后的值。