我一直在尝试在bash脚本中将变量的内容发送到Xcom。但是,我没有成功。
test_bash = """
export test_val='123'
{{ ti.xcom_push(key='1',value=test_val) }}
echo $test_val
"""
bash_tash = BashOperator(
task_id='test',
bash_command=test_bash,
retries=3,
dag=dag)
在上面的代码中。当我试图拉它。我无法向Xcom发送任何内容。我尝试用单引号发送文本,但它运行正常。
有没有办法将变量从bash脚本发送到xcom?
由于
答案 0 :(得分:2)
您可以使用BashOperator以不同方式执行此操作:
var qsToObj = function(qs) {
qs = qs.substring(1);
if (!qs) return {};
return qs.split("&").reduce(function(prev, curr, i, arr) {
var p = curr.split("=");
prev[decodeURIComponent(p[0])] = decodeURIComponent(p[1]);
return prev;
}, {});
}
var qs = '?'; // window.location.search;
var obj = qsToObj(qs);
delete obj.state;
console.log(obj);
var newQs = $.param(obj);
console.log(newQs);
然后你把价值拉进另一个任务。