Commands
Apache Airflow

airflow dags trigger: Запустить DAG вручную: передать конфиг, задать run_id

Запустить DAG вручную: передать конфиг, задать run_id

Команда airflow dags trigger — это ваш ручной выключатель для DAG. Она запускает конкретный DAG Run немедленно, вне расписания. Это основной инструмент для отладки, ад-hoc выполнения или перезапуска задач с новыми параметрами.

Базовый синтаксис

Минимальная команда требует только идентификатора DAG. Такой вызов создаст новый DAG Run с автоматически сгенерированным run_id.

airflow dags trigger my_etl_dag

Команда находит DAG с id my_etl_dag и ставит его в очередь на выполнение. Запуск будет выполнен с текущей временной меткой как логической датой выполнения.

Полезные флаги

Флаг --conf позволяет передать DAG параметры выполнения в формате JSON. Это незаменимо для тестирования с разными входными данными.

airflow dags trigger my_report_dag --conf '{"date":"2024-05-15", "client_id":42}'

Внутри DAG эти параметры доступны через context['dag_run'].conf.

Флаг --run-id задаёт вручную идентификатор запуска. Критично для интеграций, где run_id должен соответствовать внешнему идентификатору (например, ID пайплайна в GitLab CI).

airflow dags trigger my_sync_dag --run-id "manual_run_$(date +%s)"

Флаг --exec-date устанавливает логическую дату выполнения (execution_date). Используется для перезапуска DAG за конкретную дату в прошлом.

airflow dags trigger my_backfill_dag --exec-date "2024-05-10T00:00:00+00:00"

Типичные сценарии

1. Тестирование DAG с новой конфигурацией. Вместо правки кода и долгого деплоя можно быстро проверить поведение на продакшн-среде, передав тестовые параметры через --conf.

2. Интеграция с внешним триггером. Когда ваш CI/CD пайплайн или система мониторинга инициирует запуск, используйте --run-id, чтобы связать запуски в Airflow и внешней системе для сквозного логирования.

3. Ручной перезапуск проваленного DAG с исправленными параметрами. Если DAG упал из-за некорректных входных данных, вы можете исправить JSON в --conf и запустить его заново с тем же --exec-date, чтобы не сбивать расписание.

Частые ошибки

Некорректный JSON в --conf. Самая частая проблема — забытые кавычки или запятые. Всегда проверяйте JSON валидатором, особенно при передаче сложных структур. Ошибка приведёт к невозможности парсинга конфига.

Конфликт run_id. Airflow требует уникальности run_id для каждого DAG. Попытка создать запуск с уже существующим run_id приведёт к ошибке. Используйте временные метки или UUID в ручных запусках.