airflow connections add: Добавить connection через CLI: для автоматизации, CI/CD
Добавить connection через CLI: для автоматизации, CI/CD
Базовый синтаксис
Команда airflow connections add создает новое подключение в Airflow через командную строку. Это основа для автоматизации развертывания.
airflow connections add \
my_postgres_conn \
--conn-type postgres \
--conn-host localhost \
--conn-login airflow \
--conn-password airflow
Разберем по частям:
my_postgres_conn— уникальный идентификатор подключения (conn_id), который используется в DAG.--conn-type— тип системы (postgres, http, ssh, snowflake и т.д.).--conn-host,--conn-login,--conn-password— параметры для доступа.
Полезные флаги
Помимо базовых, часто нужны флаги для тонкой настройки.
--conn-port — обязателен, если сервис работает не на стандартном порту.
airflow connections add \
prod_clickhouse \
--conn-type http \
--conn-host clickhouse.prod.example.com \
--conn-port 8443 \
--conn-login report_user
--conn-extra — передает JSON-строку с дополнительными параметрами. Например, для S3 нужно указать регион и уровень доступа.
airflow connections add \
s3_raw_data \
--conn-type aws \
--conn-extra '{"region_name": "eu-central-1", "role_arn": "arn:aws:iam::123456789012:role/airflow-s3"}'
Типичные сценарии
1. Настройка в CI/CD пайплайне. При деплое новой среды в скрипте развертывания создаются все подключения.
# Скрипт deploy.sh
airflow connections add \
dwh_postgres \
--conn-type postgres \
--conn-host ${DWH_HOST} \
--conn-login ${DWH_USER} \
--conn-password ${DWH_PASSWORD} \
--conn-schema analytics
2. Автоматическое создание тестовых подключений. Для разработки можно сгенерировать набор подключений к тестовым базам из скрипта.
#!/bin/bash
# Генерация подключений для тестового окружения
for tenant in tenant1 tenant2 tenant3; do
airflow connections add \
"test_db_${tenant}" \
--conn-type postgres \
--conn-host "test-db.${tenant}.internal" \
--conn-login "reader" \
--conn-password "test123"
done
Частые ошибки
1. Пробелы и кавычки в --conn-extra. JSON должен быть передан как одна строка. Всегда используйте одинарные кавычки для обертки.
# Неправильно: аргументы разбились на несколько слов
airflow connections add test_conn --conn-extra {"key": "value with spaces"}
# Правильно: весь JSON в одинарных кавычках
airflow connections add test_conn --conn-extra '{"key": "value with spaces"}'
2. Пароль в истории команд. Пароль, переданный через --conn-password, может сохраниться в истории shell. Для production используйте переменные окружения или флаг --conn-password без значения (интерактивный ввод), а лучше — секреты в Airflow.
# Безопаснее: пароль запросится интерактивно
airflow connections add prod_db \
--conn-type postgres \
--conn-host db.prod.example.com \
--conn-login deploy_user \
--conn-password