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 в ручных запусках.