airflow dags list-import-errors: Ошибки импорта DAG: почему DAG не появился в UI
Ошибки импорта DAG: почему DAG не появился в UI
Команда airflow dags list-import-errors — это ваш главный детектив, когда DAG внезапно пропал из интерфейса. Она показывает файлы, в которых Airflow не смог выполнить импорт из-за синтаксических ошибок или проблем с зависимостями.
Базовый синтаксис
Самый частый вариант использования — с флагом --output для удобного чтения. Запускается из среды, где установлен и настроен Airflow.
airflow dags list-import-errors --output table
Что делает каждая часть:
airflow dags— обращение к подсистеме управления DAG.list-import-errors— конкретная команда для вывода списка ошибок импорта.--output table— форматирует вывод в виде читабельной таблицы с колонкамиFileиTraceback.
Полезные флаги
Основной флаг — --output. Помимо table, полезен вариант json, когда вывод нужно пропустить через другой скрипт для автоматической обработки, например, в CI/CD.
airflow dags list-import-errors --output json
Это понадобится, если вы пишете скрипт для алертинга в Slack или создания тикета при обнаружении новых ошибок. JSON легко парсится.
Типичные сценарии
Сценарий 1: Проверка после деплоя. Вы залили несколько новых DAG-файлов через Git, но в UI их нет. Вместо долгого просмотра логов веб-сервера сразу смотрите на ошибки импорта.
# Быстро понять, в каких файлах проблема
airflow dags list-import-errors --output table
Сценарий 2: Поиск “хромых” DAG. Некоторые DAG могут появляться в UI, но периодически пропадать из-за плавающих ошибок (например, проблемы с динамическим импортом модулей). Можно создать cron-задачу, которая считает количество строк в выводе команды.
# Если ошибок больше нуля — отправить алерт
airflow dags list-import-errors --output table | wc -l
Сценарий 3: Интеграция в CI/CD. В пайплайне деплоя, перед тем как пушить изменения в прод, можно выполнить проверку.
# Если команда вернула непустой вывод — пайплайн падает
airflow dags list-import-errors --output json | jq 'length > 0'
Частые ошибки
Ошибка: “airflow: command not found”. Часто возникает при запуске команды вне виртуального окружения или из-под неправильного пользователя. Убедитесь, что вы активировали окружение Airflow или используете полный путь к бинарнику.
Ошибка: “Can’t find a viable Airflow core settings file…”. Команда запущена не из корневой директории Airflow (AIRFLOW_HOME) или не указаны нужные переменные окружения. Перейдите в AIRFLOW_HOME или явно экспортируйте эту переменную перед вызовом.