#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
файле.