Загрузка переменной из Yandex Lockbox
При работе с Yandex Managed Service for Apache Airflow™ вы можете использовать Yandex Lockbox для хранения артефактов, которые могут использоваться в DAG-файлах: подключений, переменных и конфигурационных данных. Yandex Lockbox интегрируется в Managed Service for Apache Airflow™ через провайдер Yandex Lockbox Secret Backend
Загрузку переменной из Yandex Lockbox можно выполнить с помощью направленого ациклического графа (DAG). Данные для подключения к БД хранятся в Yandex Lockbox и автоматически подставляются в граф.
Перед началом работы
Выдайте своему сервисному аккаунту роль lockbox.payloadViewer.
Роль lockbox.payloadViewer не обязательно выдавать на весь каталог. Достаточно назначить ее на конкретный секрет Yandex Lockbox после его создания.
Создайте секрет Yandex Lockbox
Для корректной работы кластера Apache Airflow™ секрет в Yandex Lockbox должен иметь имя в формате airflow/<тип_артефакта>/<идентификатор_артефакта>, где:
<тип_артефакта>— определяет, какие данные будут храниться в секрете. Возможные значения:connections— подключения;variables— переменные;config— данные конфигурации.
<идентификатор_артефакта>— идентификатор, который будет использоваться для обращения к артефакту в Apache Airflow™.
Создайте секрет Yandex Lockbox с параметрами:
- Имя —
airflow/variables/var_query; - Тип секрета —
Пользовательский; - Ключ —
value; - Значение —
SELECT 2.
В секрете airflow/variables/var_query будет сохранена переменная value со значением SELECT 2.
Подготовьте DAG-файл и запустите граф
-
Создайте локально файл с именем
load_variable_from_lockbox.pyи скопируйте в него скрипт:from airflow.decorators import dag, task from airflow.models import Variable @dag(schedule=None) def load_variable_from_lockbox(): @task def print_var_query(): query = Variable.get_variable_from_secrets("var_query") print("query: ", query) print_var_query() load_variable_from_lockbox() -
Загрузите DAG-файл
load_variable_from_lockbox.pyв созданный ранее бакет. В результате одноименный граф появится в веб-интерфейсе Apache Airflow™ автоматически. -
Убедитесь, что в разделе DAGs появился новый граф
load_variable_from_lockbox.Загрузка DAG-файла из бакета может занять несколько минут.
-
Чтобы запустить граф, в строке с его именем нажмите кнопку
.
Проверьте результат
Чтобы проверить результат в веб-интерфейсе Apache Airflow™:
- В разделе DAGs нажмите на граф
load_variable_from_lockbox. - Перейдите в раздел Graph.
- Выберите задание print_var_query.
- Перейдите в раздел Logs.
- Убедитесь, что в логах есть строка
query: SELECT 2. Это значит, что запрос выполнен успешно.
- В разделе Dags нажмите на граф
load_variable_from_lockbox. - Перейдите в раздел Tasks.
- Выберите задание print_var_query.
- Перейдите в раздел Task Instances.
- Выберите экземпляр задания.
- Откроется раздел Logs.
- Убедитесь, что в логах есть строка
query: SELECT 2. Это значит, что запрос выполнен успешно.