Перейти к содержанию

Параметры DAG (DAG parameters)

В Airflow момент и способ запуска DAG настраиваются параметрами объекта DAG. Параметры уровня DAG влияют на поведение всего DAG в отличие от параметров уровня задачи (одна задача) и конфигурации Airflow (весь инстанс).

В этом руководстве перечислены все актуальные для пользователя параметры DAG.

Базовые параметры DAG

Есть четыре базовых параметра. Рекомендуется задавать их в каждом DAG:

Параметр Описание
dag_id Имя DAG. Должно быть уникальным в окружении Airflow. При использовании декоратора @dag без явного dag_id в качестве имени берётся имя функции. При использовании класса DAG параметр обязателен.
start_date Дата и время, после которых DAG начинает планироваться. Фактический первый запуск может быть позже в зависимости от расписания. Подробнее: Планирование и timetables в Airflow. По умолчанию: None.
schedule Расписание DAG. Варианты задания: Планирование в Airflow. По умолчанию: None.
catchup Нужно ли планировщику создавать пропущенные DAG run между текущей датой и start_date при включении DAG. По умолчанию: False. Подробнее: Catchup.

Параметры отображения в UI

Часть параметров добавляет описание DAG или меняет его вид в Airflow UI:

Параметр Описание
description Короткая строка, отображаемая в UI рядом с именем DAG.
doc_md Строка, которая показывается как документация DAG в UI. Совет: можно использовать __doc__, чтобы подставить docstring файла. Рекомендуется задавать осмысленную документацию для всех DAG.
tags Список тегов для фильтрации DAG в UI.

Параметры Jinja-шаблонов

Параметры, связанные с Jinja-шаблонированием:

Параметр Описание
template_searchpath Список каталогов, в которых Jinja ищет шаблоны. По умолчанию учитывается каталог с файлом DAG.
template_undefined Поведение Jinja при неопределённой переменной. По умолчанию: StrictUndefined.
render_template_as_native_obj Рендерить ли шаблоны Jinja как нативные объекты Python вместо строк. По умолчанию: False.
user_defined_macros Словарь макросов, доступных в Jinja-шаблонах DAG. Для фильтров используйте user_defined_filters, для дополнительной настройки Jinja — jinja_environment_kwargs. См. Макросы: свои функции и переменные в шаблонах.

Масштабирование

Следующие параметры влияют на использование ресурсов DAG. Подробнее: Scaling Airflow.

Параметр Описание
max_active_tasks Максимальное число экземпляров задач, которые могут выполняться одновременно в рамках одного запуска этого DAG.
max_active_runs Максимальное число одновременных активных DAG run для этого DAG.
max_consecutive_failed_dag_runs (экспериментальный) После какого числа подряд неудачных DAG run планировщик отключает этот DAG.

Параметры callback'ов

Эти параметры настраивают callback'и Airflow:

Параметр Описание
on_success_callback Функция, вызываемая после успешного завершения DAG run.
on_failure_callback Функция, вызываемая после неудачного завершения DAG run.

В Astro вместо или вместе с callback'ами Airflow можно использовать Astro Alerts. См. When to use Airflow or Astro alerts.

Прочие параметры

Другие параметры DAG:

Параметр Описание
end_date Дата, после которой новые DAG run для этого DAG не создаются. По умолчанию: None.
default_args Словарь параметров, применяемых ко всем задачам DAG. Параметры передаются операторам, поэтому должны быть допустимыми для BaseOperator. Значения можно переопределять на уровне задачи.
params Словарь параметров уровня DAG (Airflow params). Подробнее: Airflow params.
dagrun_timeout Время, по истечении которого DAG run этого DAG считается просроченным и помечается как failed.
access_control Права доступа по ролям для данного DAG. См. DAG-level permissions. На Astro не поддерживается; рекомендуется RBAC в Astro.
is_paused_upon_creation Создавать ли DAG в состоянии паузы. Если не задано, используется конфиг core.dags_are_paused_at_creation (по умолчанию True).
auto_register По умолчанию True. При False DAG, созданные через контекст with, не регистрируются автоматически; используется в сценариях динамической генерации DAG.
fail_fast При True выполнение DAG останавливается при первой упавшей задаче. Все ещё выполняющиеся задачи помечаются как failed, ещё не запущенные — как skipped. В DAG с fail_fast=True нельзя использовать trigger rule, отличные от all_success.
dag_display_name Имя DAG в Airflow UI (переопределяет dag_id). Допускает спецсимволы.

← Лучшие практики | К содержанию | Params →