You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow新手求助:如何实现DAG加载后自动激活?

让Airflow DAG加载后自动激活的几种方法

嘿,作为Airflow新手碰到这个默认暂停的问题太常见啦!我给你整理了几个实用的方法,帮你的DAG一加载就自动处于激活状态:

1. 在单个DAG定义中设置参数

这是最直接的方法,针对单个DAG配置。在定义DAG时,添加is_paused_upon_creation=False参数,就能让这个DAG创建时直接激活。

代码示例:

from airflow import DAG
from datetime import datetime
from airflow.operators.bash import BashOperator

default_args = {
    'owner': 'your_username',
    'start_date': datetime(2024, 5, 1)
}

with DAG(
    dag_id='auto_activate_dag',
    default_args=default_args,
    schedule_interval='@daily',
    is_paused_upon_creation=False  # 核心参数,控制初始状态
) as dag:
    # 示例任务
    hello_task = BashOperator(
        task_id='say_hello',
        bash_command='echo "Hello Airflow!"'
    )

这个参数从Airflow 1.10.2版本开始支持,2.x版本完全兼容。

2. 全局配置:让所有新DAG默认激活

如果你希望所有新创建的DAG都自动激活,不用逐个添加参数,可以修改Airflow的配置文件airflow.cfg:

找到[core]部分的dags_are_paused_at_creation选项,把值改成False:

[core]
dags_are_paused_at_creation = False

修改完成后,记得重启Airflow的webserver和scheduler服务,这个配置才会生效。注意:这个设置只对修改之后创建的DAG生效,已经存在的DAG还是保持原来的暂停状态。

3. 手动激活已存在的DAG

如果是已经创建好的DAG,想把它从暂停状态改成激活,除了在UI里手动点开开关,还可以用Airflow CLI命令:

# 激活单个DAG
airflow dags unpause your_target_dag_id

要是有一堆DAG需要批量激活,可以结合jq工具(需要提前安装)批量处理:

# 列出所有暂停的DAG并批量激活
airflow dags list --output json | jq -r '.[] | select(.is_paused == true) | .dag_id' | xargs airflow dags unpause

内容的提问来源于stack exchange,提问作者gotch4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:48:54