2.5 KiB
2.5 KiB
Configuración (Airflow Variables)
Fuente de configuración real
El código en SaveUrl.py obtiene configuración principalmente desde Airflow Variables usando airflow.models.Variable.get(...).
Esto implica:
- Debes definir estas Variables en tu instancia de Airflow (UI o CLI).
- El archivo
.env.examplesirve como referencia de nombres, pero no es la fuente en ejecución si corres bajo Airflow.
Variables requeridas
SQL Server
DB_MSSQ_SERVER: hostname o IP del SQL ServerDB_MSSQ_USER: usuarioDB_MSSQ_PASSWORD: password
Notas:
- La conexión ODBC usa
ODBC Driver 18 for SQL Server. - La tabla destino es fija:
URL_FTP. - El nombre de “database” (catálogo) se toma de la lista
INFORMATIONSdentro del código (ej.glm_pmi,IS001, etc.).
FTP
FTP_000oqta_SERVERFTP_000oqta_USERFTP_000oqta_PASSWORD
Notas:
- El código construye el path como
FTP_BASE_PATH + code_folder. code_folderse calcula como<name_folder><MM>(mes actual), por ejemploglmpmi04.
Kafka
BOOTSTRAP_SERVERS_DOCKER: brokers accesibles desde el entorno Airflow (por ejemplokafka-kraft:9092)KAFKA_USE_SSL:"True"o"False"
Si KAFKA_USE_SSL == "True", además se leen (desde variables de entorno del proceso, vía os.getenv, no Airflow Variables):
SECURITY_PROTOCOL(ej.SASL_SSL)SASL_MECHANISM(ej.SCRAM-SHA-256)SASL_PLAIN_USERNAMESASL_PLAIN_PASSWORDSSL_CAFILE(path al CA dentro del contenedor/host)SSL_CHECK_HOSTNAME(True/False)
Importante: en el código actual,
BOOTSTRAP_SERVERS_DOCKERyKAFKA_USE_SSLse obtienen como Airflow Variables, pero los demás parámetros de seguridad se obtienen desdeos.getenv. En despliegues en contenedores, asegúrate de definir esas variables en el entorno del scheduler/worker.
Webhook de notificación
WEBHOOK_URL_NOTIFICATION: endpoint que aceptaPOSTcon JSON{"message": "..."}
Plantilla .env.example
El archivo .env.example contiene los nombres esperados (útil para referencia), pero:
- el proyecto no debería versionar un
.envreal con secretos - en Airflow, se recomienda gestionar secretos con backend (Vault/Secrets Manager/etc.) o Variables protegidas
Validación recomendada (pre-flight)
Antes de activar el DAG en producción, valida:
- Variables existen (sin typos)
- SQL user tiene
SELECTeINSERTsobreURL_FTP - FTP credenciales permiten
NLSTsobre el path base - Kafka accesible desde el contenedor/worker que ejecuta el DAG