Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Как я сделал Variables в Airflow 3 удобнее

Дата публикации: 24-04-2026 01:09:45

Ровно год назад, 22 апреля, вышел Airflow 3, который сильно изменил архитектуру и UX платформы. Но одно из изменений неожиданно ухудшило повседневную работу — Variables: маленькое поле ввода, неудобный JSON и отсутствие нормального редактирования. В статье разбираю, что именно сломалось в привычном сценарии и как я решил это с помощью собственного плагина.

Основное содержимое страницы с новостью.

Ровно год назад 22 апреля 2025 свет увидела новая версия Airflow 3.0.0. Среди ключевых изменений — DAG versioning, улучшенный backfill и переход к event-driven scheduling, позволяющий реагировать на внешние события и изменения данных. Также была переработана архитектура выполнения задач: появились Task Execution Interface и Task SDK, что упростило масштабирование и повысило безопасность.

Но если отбросить архитектурные изменения, на практике больше всего ощущается именно новый UI. Он изменился настолько сильно, что даже простые операции по миграции или ежедневной работе первое время требуют заметно больше времени — к новому подходу приходится буквально привыкать заново.


Отдельно стоит отметить изменения в работе с Variables.

Если раньше можно было спокойно хранить там JSON-конфиги и редактировать их прямо в UI, то теперь:

  • поле ввода стало заметно меньше — большие структуры просто не помещаются

  • переменную нельзя переименовать — приходится создавать новую

  • вплоть до версии 3.1.8 JSON отображался одной строкой

В итоге даже простое изменение одного поля в конфиге превращается в прокрутку, копирование и попытки не ошибиться в одной длинной строке — особенно если структура нетривиальная.

В моём случае это стало критично — я активно использую Variables как JSON-конфиги для DAG’ов. Готовых решений под новый UI я не нашёл, поэтому решил сделать свой плагин, который возвращает нормальную работу с JSON и в целом упрощает взаимодействие с переменными.

Немного про 'большие' переменные

Да, формально хранить большие структуры в Variables не рекомендуется — Airflow регулярно парсит DAG’и и связанные данные. Но на практике (по крайней мере в моих кейсах) это не вызывало проблем. Зато возможность хранить весь конфиг в одном месте и менять его без деплоя DAG’а — сильно упрощает жизнь.

Если вы еще не пробовали, но хотите, то вот кусок кода, с примером того, как это происходит:

from airflow.sdk import Variable

config = Variable.get('my_dag_config', deserialize_json=True)
batch_size = config['batch_size']

Код плагина в значительной степени был сгенерирован с помощью LLM, поэтому основная ценность здесь — не в сложности реализации, а в готовом инструменте и удобстве использования.

Начало работы

Для старта достаточно установить пакет:

pip install airflow-variable-json-viewer

Если Airflow изолирован от интернета — можно просто скопировать папку плагина в $AIRFLOW_HOME/plugins и перезапустить сервисы.

После установки плагин появится в разделе Admin:

Пункт меню

Пункт меню

Либо можете попасть в него по прямой ссылке: http://<your-airflow-host>/variable-json/

Сравнение

Что даёт плагин:

  • форматированное отображение JSON

  • редактирование без “одной строки”

  • список и просмотр в одном окне

  • поиск по названиям

  • возможность переименования

Сам плагин выглядит вот так:

Интерфейс плагина

Интерфейс плагина

Светлая тема
Светлая тема

Светлая тема

Для сравнения эта же переменная в оригинальном UI версии 3.1.2 будет отображаться следующим образом:

Стандартный интерфейс Variables

Стандартный интерфейс Variables

Изменение после 3.1.8

Как я уже говорил, потерю форматирования пофиксили в Airflow 3.1.8, что произошло совсем недавно, 12 марта 2026. После фикса переменная будет выглядеть уже так:

Стандартный интерфейс Variables в версии 3.1.8 и выше

Стандартный интерфейс Variables в версии 3.1.8 и выше

Стандартный интерфейс всё ещё:

  • разделяет список и редактирование

  • не даёт переименовывать переменные

  • не очень удобен для навигации по большим структурам

Именно здесь плагин даёт основное улучшение.

Итог

На практике это даёт более удобный сценарий работы: список переменных и их содержимое находятся в одном окне, можно быстро переключаться между значениями и сразу видеть структуру. Есть поиск по названиям и описание, а через кнопку + New можно добавить новую переменную. В отличие от стандартного UI, имя переменной можно изменить даже после создания.

Если вы активно используете Variables как конфигурацию, возможно, такой подход с отдельным UI тоже окажется полезным. Буду рад фидбеку и идеям. Если инструмент пригодился — можно поддержать проект звездой на GitHub: MrNightSky/airflow-variable-json-viewer

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Airflow TaskFlow API: внутреннее устройство современного способа писать DAG-и010.4114-05-2026
2Невозможно быть вне политики с Airflow Cluster Policies07.0115-06-2026
3В CSV было 11 строк, до BI дошло 7. Куда пропали остальные четыре?015.0128-07-2026
4Почему автотесты пропускают изменения в API и как это исправить с Pydantic05.9326-04-2026
5Руководство по настройке отчётов через плагины в Allure 3010.4127-02-2026
6Не всё деплоем правится: как мы вынесли интерфейс из кода с помощью Server-Driven UI011.1125-04-2026
7flake8-lazy: Detect Lazy-Importable Modules in Python 3.15+052.8601-06-2026
8Хватит засовывать всё в контейнеры: возвращаем комфорт в локальную разработку08.8427-06-2026
9Explicit Lazy Imports Are Coming to Python 3.15022.527-06-2026
10От сложности к простоте: как я переписал систему логирования Discord-серверов и сделал её в 10 раз проще012.8618-07-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 9.71. Источник: pythondigest.ru.