Загрузка переменной из 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
Создайте секрет 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.
- Убедитесь, что в логах есть cтрока
query: SELECT 2
. Это значит, что запрос выполнен успешно.