2017-10-02 9 views
1

Ich habe versucht, den Inhalt einer Variablen an Xcom in einem Bash-Skript zu senden. Ich versage es jedoch.Airflow XCom senden Variablen innerhalb Templating

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) 

In den Code oben abgeschnitten. Wenn ich versuche, es zu ziehen. Ich kann nichts an Xcom senden. Ich habe versucht, Text in einzelnen Zitaten zu senden, und es funktioniert gut.

Gibt es eine Möglichkeit, Variablen aus Bash-Skripten an xcom zu senden?

Dank

Antwort

1

Sie können es anders machen einen BashOperator mit Ihrem Wert drücken:

test_bash = """ 
export test_val='123' 
echo $test_val 
""" 

bash_task = BashOperator(
    task_id='test', 
    bash_command=test_bash, 
    xcom_push=True 
    retries=3, 
    dag=dag) 

task instance > XCom

Und dann ziehen Sie den Wert in einer anderen Aufgabe.