Airflow DAG 的可选参数
Optional param for Airflow DAG
我是 Airflow 的新手。我需要创建一个 dag,其中一个参数可以是可选的。我不确定如何指定。也许这更像是一个 python 问题...
有人可以建议吗?
提前谢谢你。
参数必须有默认值。
因此,如果您在没有特定参数的情况下触发 DAG,Airflow 将使用默认值添加它。
如果您想在任何情况下忽略此参数,那么您可以在默认值中放置一个唯一值,以帮助您了解此参数的状态。
例如你可以在默认值中放入空字符串
import pendulum
from airflow import DAG
from airflow.models import Param
from airflow.operators.empty import EmptyOperator
from airflow.operators.python import PythonOperator
with DAG(
"demo",
schedule_interval=None,
start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
catchup=False,
params={
"test": Param("", type="string")
},
tags=["demo"],
) as dag:
def print_task(**context):
value = context["params"]["test"]
if value :
print(value)
else:
print("no value")
start_dag = EmptyOperator(task_id="start")
task1 = PythonOperator(task_id="print", python_callable=print_task)
start_dag >> task1
我是 Airflow 的新手。我需要创建一个 dag,其中一个参数可以是可选的。我不确定如何指定。也许这更像是一个 python 问题... 有人可以建议吗? 提前谢谢你。
参数必须有默认值。 因此,如果您在没有特定参数的情况下触发 DAG,Airflow 将使用默认值添加它。
如果您想在任何情况下忽略此参数,那么您可以在默认值中放置一个唯一值,以帮助您了解此参数的状态。
例如你可以在默认值中放入空字符串
import pendulum
from airflow import DAG
from airflow.models import Param
from airflow.operators.empty import EmptyOperator
from airflow.operators.python import PythonOperator
with DAG(
"demo",
schedule_interval=None,
start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
catchup=False,
params={
"test": Param("", type="string")
},
tags=["demo"],
) as dag:
def print_task(**context):
value = context["params"]["test"]
if value :
print(value)
else:
print("no value")
start_dag = EmptyOperator(task_id="start")
task1 = PythonOperator(task_id="print", python_callable=print_task)
start_dag >> task1