python - 从 SSHOperator 解码 UTF-8 编码的 Xcom 值
问题描述
我有两个要交流的 Airflow 任务。SSHOperator 返回打印的最后一行,在本例中为“remote_IP”。但是,SSHOperator 的返回值是使用 UTF-8 编码的。
Read_remote_IP = SSHOperator(
task_id='Read_remote_IP',
ssh_hook=hook,
command="echo remote_IP ",
)
Read_SSH_Output = BashOperator(
task_id='Read_SSH_Output',
bash_command="echo {{ti.xcom_pull(task_ids='Read_remote_IP')}} ",
)
SSHOperator 如何Read_remote_IP
返回未编码的值?另外,BashOperator 如何Read_SSH_Output
解码编码值?
解决方案
我目前的解决方案是引入另一个 Python 运算符来将字符串转换回来,请随时提供其他解决方案。
import base64
from airflow.operators.python import PythonOperator
def _decode_message(task_name, ti):
message = ti.xcom_pull(task_ids=task_name)
print(message)
return base64.b64decode(message).decode()
Decode_SSH_Output = PythonOperator(
task_id='Decode_SSH_Output',
python_callable=_decode_message,
op_args=['Read_remote_IP'],
)
推荐阅读
- node.js - MongoParseError:在 Heroku 上部署应用程序时,URI 没有主机名、域名和 tld
- javascript - How to match 2 separate numbers in Javascript
- node.js - 在 Lambda 函数中使用 axios 时根据先前的请求设置 cookie
- java - 具有状态 Groovy / Java 的方法
- flutter - MediaQuery 导致整个应用程序消失 Flutter
- mysql - 计算 Datediff 的平均值
- spring-boot - 自定义spring initializr实例——添加自定义java类
- wordpress - WordPress中的视频背景全屏
- javascript - React onChange 重新渲染动态输入字段奇怪
- c++ - 我的数独板生成函数陷入无限循环