Variables (переменные)
Variables — механизм runtime-конфигурации в Airflow: общее глобальное хранилище «ключ — значение», к которому можно обращаться из задач, задавать значения через UI Airflow или загружать пачкой из JSON-файла.
Чтобы использовать переменные, импортируйте модель Variable и вызовите метод get:
from airflow.sdk import Variable
# Обычный вызов
foo = Variable.get("foo")
# Автоматическая десериализация JSON-значения
bar = Variable.get("bar", deserialize_json=True)
# Возвращает default (None), если переменная не задана
baz = Variable.get("baz", default=None)
Доступ к переменным возможен и через контекст задачи с помощью get_current_context():
from airflow.sdk import get_current_context
def my_task():
context = get_current_context()
var = context["var"]
my_variable = var.get("my_variable_name")
return my_variable
Их можно использовать в шаблонах:
# Сырое значение
echo {{ var.value.<variable_name> }}
# Автодесериализация JSON
echo {{ var.json.<variable_name> }}
Variables глобальны и предназначены только для общей конфигурации всей установки. Для передачи данных между задачами/операторами используйте XComs.
Рекомендуется по возможности хранить настройки и конфигурацию в файлах DAG, чтобы они версионировались в системе контроля версий. Variables уместны лишь для значений, которые действительно зависят от runtime.
Подробнее о создании и управлении переменными: Managing Variables.
Источник: Airflow 3.1.7 — Variables. Перевод неофициальный.