[Документация Yandex Cloud](../../../index.md) > [Yandex Cloud Stackland](../../index.md) > [Пошаговые инструкции](../index.md) > Оркестрация данных > Managed Service for Apache Airflow™ > Настроить Variables в Apache Airflow™

# Настроить Variables в Apache Airflow™

Variables хранят общие значения для DAG в формате ключ-значение. Инструкция описывает веб-интерфейс Apache Airflow™ 3.1.8. Для значения, которое должно отличаться только в одном запуске, используйте [параметры запуска](run-dag.md#parameters).

## Создать переменную {#create}

1. [Откройте веб-интерфейс](connect-ui.md) с учетной записью администратора Apache Airflow™ или пользователя с правами на Variables.
1. Выберите **Admin** → **Variables** и нажмите **Add Variable**.
1. Заполните:

    * **Key** — уникальное имя, например `example_message`.
    * **Value** — значение, например `Hello from Variable!`.
    * **Description** — назначение переменной, если требуется.

1. Нажмите **Save** и найдите переменную по ключу.

Чтобы прочитать ее при выполнении задачи, добавьте в функцию с декоратором `@task`:

```python
from airflow.sdk import Variable

message = Variable.get("example_message")
```

Для проверки замените получение `message` в задаче `greet` из [примера DAG](upload-dags.md#prepare-dag) этими строками с соответствующим отступом, затем [обновите DAG](upload-dags.md#update-dag). После запуска в логе и XCom задачи должно появиться `Hello from Variable!`. Не выводите в логи значения переменных, содержащих секреты.

Подробнее о чтении Variables — в [документации Apache Airflow™](https://airflow.apache.org/docs/apache-airflow/3.1.8/core-concepts/variables.html).

## Изменить или удалить переменную {#edit-delete}

1. В **Admin** → **Variables** найдите нужный ключ.
1. Для изменения нажмите кнопку с карандашом **Edit Variable**, задайте новое значение или описание и нажмите **Save**.
1. Чтобы удалить переменную, нажмите кнопку удаления в ее строке, проверьте ключ и подтвердите удаление кнопкой **Delete**.

Изменение не запускает DAG автоматически. Проверьте значение в новом запуске задачи, которая читает переменную. Если удалить используемую переменную, чтение без значения по умолчанию завершится ошибкой.

## Экспортировать выбранные значения через UI {#export}

1. В **Admin** → **Variables** отметьте нужные строки. Если список занимает несколько страниц, проверьте, что выбраны все нужные ключи.
1. На панели действий нажмите **Export** и сохраните JSON-файл.

Экспорт из UI содержит выбранные ключи и значения без описаний. Если значение или поле JSON скрыто маской `***`, в файл может попасть маска. Для переноса секретных значений и сохранения описаний используйте [экспорт через CLI](export-settings.md#export). Храните файлы с настройками в защищенном месте.

## Импортировать значения через UI {#import}

1. Подготовьте JSON-файл с ключами и значениями, например:

    ```json
    {
      "example_message": "Hello from Variable!",
      "environment": "test"
    }
    ```

1. В **Admin** → **Variables** снимите выделение строк, если оно есть, и нажмите **Import Variables**.
1. В **Upload a JSON File** выберите файл.
1. В **Select Variable Conflict Resolution** выберите поведение при совпадении ключей:

    * **Fail** — остановить импорт, если такой ключ уже существует;
    * **Skip** — сохранить существующее значение и пропустить этот ключ;
    * **Overwrite** — заменить существующее значение импортированным.

1. Нажмите **Import**, дождитесь результата и найдите импортированные ключи в списке. Проверьте значения с помощью задачи, которая их использует.

Перед **Overwrite** сохраните прежние настройки. Файл с масками `***` не восстанавливает исходные секретные значения. Для восстановления полной копии из CLI используйте [отдельную процедуру](export-settings.md#restore).

Переменные, заданные через окружение или внешнее хранилище секретов, не входят в эту процедуру. Подробнее — в [описании хранения Variables](https://airflow.apache.org/docs/apache-airflow/3.1.8/howto/variable.html).