Разница между переменной среды Airflow и секретной переменной среды

#airflow

#воздушный поток

Вопрос:

В чем разница между переменной среды Airflow (например. AIRFLOW__CORE__SQL_ALCHEMY_CONN ) и секретной переменной среды ( AIRFLOW__CORE__SQL_ALCHEMY_CONN_SECRET )?

Ответ №1:

AIRFLOW__CORE__SQL_ALCHEMY_CONN Вы предоставляете информацию о подключении напрямую.

AIRFLOW__CORE__SQL_ALCHEMY_CONN_SECRET Это позволяет вам указать имя секрета, который содержит информацию о вашем подключении.

Это приведет к извлечению параметра конфигурации из секретных бэкэндов, например, хранилища Hashicorp. Для получения более подробной информации см. Secrets Backends .

https://airflow.readthedocs.io/en/stable/howto/set-config.html

Ответ №2:

Вы можете настроить конфигурации Airflow, содержащие конфиденциальные данные, используя либо команду для запуска, переданную через переменную среды ( AIRFLOW__CORE__SQL_ALCHEMY_CONN_CMD ), либо используя секреты Airflow (например AIRFLOW__CORE__SQL_ALCHEMY_CONN_SECRET ).

Например, если вы используете Hashicorp Vault в качестве серверной части Airflow Secert (docs):

Вы можете добавить секретное значение в хранилище следующим образом:

 ❯ vault kv put secret/config/sql_alchemy_conn value=sqlite:////Users/airflow/airflow/airflow.db
Key              Value
---              -----
created_time     2020-11-20T20:05:21.517705Z
deletion_time    n/a
destroyed        false
version          1
 

и установите следующие переменные среды:

 ❯ env | grep AIRFLOW
AIRFLOW__CORE__SQL_ALCHEMY_CONN_SECRET=sql_alchemy_conn
AIRFLOW__SECRETS__BACKEND=airflow.contrib.secrets.hashicorp_vault.VaultBackend
AIRFLOW__SECRETS__BACKEND_KWARGS='{"url":"http://127.0.0.1:8200","auth_type":"token", "token": "s.OddaHiiDdddpW6gNnqtd2lJ"}'
 

Таким образом, вам не нужно раскрывать свои секреты в airflow.cfg файле.