Gibt es eine Möglichkeit, ein Befehlszeilenargument an Airflow BashOperator zu übergeben. Zur Zeit habe ich ein Python-Skript, das ein date-Argument akzeptiert und einige spezifische Aktivitäten ausführt, wie z. B. das Bereinigen bestimmter Ordner, die älter sind als das angegebene Datum.Übergeben eines Befehlszeilenarguments an den Luftstrom BashOperator
Vereinfacht Code mit nur einer Aufgabe, was würde Ich mag zu tun ist,
from __future__ import print_function
from airflow.operators import BashOperator
from airflow.models import DAG
from datetime import datetime, timedelta
default_args = {
'owner' : 'airflow'
,'depends_on_past' : False
,'start_date' : datetime(2017, 01, 18)
,'email' : ['[email protected]']
,'retries' : 1
,'retry_delay' : timedelta(minutes=5)
}
dag = DAG(
dag_id='data_dir_cleanup'
,default_args=default_args
,schedule_interval='0 13 * * *'
,dagrun_timeout=timedelta(minutes=10)
)
cleanup_task = BashOperator(
task_id='task_1_data_file_cleanup'
,bash_command='python cleanup.py --date $DATE 2>&1 >> /tmp/airflow/data_dir_cleanup.log'
#--------------------------------------^^^^^^-- (DATE variable which would have been given on command line)
#,env=env
,dag=dag
)
Vielen Dank im Voraus,
Ich habe diese Lösung versucht, aber DS wurde dort nicht gerendert Ich kann keinen Weg finden, ds als param zu übergeben !! – Omar14