2.1 KiB
2.1 KiB
Despliegue en Apache Airflow
Qué se despliega
- DAG:
dag_save_url_ftp.py - Módulo Python:
SaveUrl.py(debe ser importable por el DAG)
Ruta esperada por el DAG
En dag_save_url_ftp.py se define un sys.path.insert:
sys.path.insert(0, '/opt/airflow/dags/save_url_ftp')
Por tanto, dentro del contenedor/host donde corre Airflow, se espera:
/opt/airflow/dags/save_url_ftp/SaveUrl.py/opt/airflow/dags/save_url_ftp/dag_save_url_ftp.py
Si tu instalación usa otra ruta de
dags_folder, ajusta el montaje/volumen para que esa estructura exista dentro del runtime.
Parámetros del DAG
En dag_save_url_ftp.py:
dag_id:save_url_ftp- schedule:
0 */2 * * *(cada 2 horas) retries: 2retry_delay: 5 minutoscatchup:Falsemax_active_runs: 1
Estructura de tareas:
inicio(EmptyOperator) →save_url_ftp(PythonOperator) →fin(EmptyOperator)
Variables de Airflow necesarias
Define las Variables descritas en 03_CONFIGURACION_VARIABLES.md.
En particular, SaveUrl.py requiere:
WEBHOOK_URL_NOTIFICATIONBOOTSTRAP_SERVERS_DOCKERKAFKA_USE_SSLFTP_000oqta_SERVER,FTP_000oqta_USER,FTP_000oqta_PASSWORDDB_MSSQ_USER,DB_MSSQ_PASSWORD,DB_MSSQ_SERVER
Permisos y conectividad
- Worker/Scheduler que ejecute el PythonOperator debe tener:
- salida a red hacia FTP, SQL Server y Kafka
- driver ODBC instalado (si se usa
pyodbcen el worker)
Operación esperada en Airflow
Durante la ejecución, el task save_url_ftp escribe logs tipo:
- inicio/final
- estado por “BD” lógica (cada item de
INFORMATIONS) - conteos: archivos FTP, registros existentes, registros a insertar
Si ocurre un error en FTP/SQL/INSERT:
- registra
FAILEDen Kafka - envía webhook con el mensaje de alerta
- continúa con la siguiente “BD” (no falla toda la corrida por un único item)
Checklist de despliegue
- DAG visible y sin errores de importación
SaveUrl.pyimportable desde la ruta insertada ensys.path- Variables creadas (y protegidas si aplica)
- Driver ODBC disponible en el runtime
- Conectividad validada (FTP/SQL/Kafka/webhook)