Guía paso a paso Desplegar scripts Python en Azure Functions como tarea cron
Introducción En esta guía en español explicamos cómo convertir tus scripts Python en funciones programadas en Azure Functions para ejecutar tareas cada cierto intervalo tipo cron. Ideal para sincronizaciones entre bases de datos Oracle y MSSQL, tareas ETL y procesos automatizados. Además presentamos recomendaciones para producción y despliegue, y destacamos a Q2BSTUDIO como socio tecnológico especializado en aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA y power bi.
Prerrequisitos
1 Cuenta de Azure con suscripción activa
2 VS Code instalado y la extension Azure Functions instalada
3 Azure Functions Core Tools instalado
4 Python 3.9 o superior instalado
5 Conocimientos basicos en Python y manejo de conexiones a Oracle y MSSQL
Paso 1 Configurar estructura del proyecto Crea un directorio raiz llamado oracle-to-mssql-sync con una estructura clara para alojar cada funcion. Ejemplo de estructura raiz oracle-to-mssql-sync/ functions/ accountstatementpremium/ __init__.py function.json agency/ __init__.py function.json requirements.txt local.settings.json host.json .vscode settings.json
Paso 2 Inicializar proyecto Azure Functions En la terminal ejecuta mkdir oracle-to-mssql-sync cd oracle-to-mssql-sync func init --python Luego crea funciones timer para cada script con func new --name accountstatementpremium --template timer trigger y repite para agency agents allocatedpremiums happilymaster o los nombres que correspondan.
Paso 3 Configurar triggers tipo cron Edita function.json de cada funcion y usa la expresion cron para ejecutar cada 2 minutos colocando schedule 0 */2 * * * * y runOnStartup false Asegurate de mantener scriptFile __init__.py y bindings tipo timerTrigger
Paso 4 Añadir codigo Python Copia tu logica en __init__.py de cada funcion ejemplo basico import logging import azure.functions as func import cx_Oracle import pyodbc def main(mytimer func.TimerRequest) None Conecta a Oracle con cx_Oracle.connect usando la variable de entorno ORACLE_CONN_STRING y a MSSQL con pyodbc.connect usando MSSQL_CONN_STRING Implementa tu logica de sincronizacion y registros de logging para seguimiento
Paso 5 Dependencias Define requirements.txt con al menos azure-functions cx_Oracle==8.3.0 pyodbc==4.0.39 Nota cx_Oracle requiere Oracle Instant Client, que deberas incluir en la App Settings o instalar en el entorno de la funcion
Paso 6 Variables de entorno locales Crea local.settings.json y añade FUNCTIONS_WORKER_RUNTIME python ORACLE_CONN_STRING user/password@oracle-host:port/service MSSQL_CONN_STRING Driver={ODBC Driver 18 for SQL Server};Server=tcp;Database=;Uid=;Pwd=;Encrypt=yes;TrustServerCertificate=no; No subas este fichero a Git
Paso 7 Pruebas locales Inicia el runtime local con func start y verifica en los logs que las funciones se ejecutan conforme al cron cada 2 minutos Revisa errores de dependencias y conexion
Paso 8 Desplegar a Azure Accede a Azure desde VS Code crea una Function App nueva con runtime Python 3.9 OS Linux nombre por ejemplo oracle-mssql-sync-app Desde el explorador de Azure en VS Code despliega tu proyecto usando Deploy to Function App y selecciona la carpeta raiz oracle-to-mssql-sync
Paso 9 Configurar ajustes de producción En el portal de Azure en Configuration añade las mismas variables ORACLE_CONN_STRING y MSSQL_CONN_STRING y agrega LD_LIBRARY_PATH con valor /home/site/wwwroot/oracle_instantclient para que cx_Oracle encuentre el Instant Client Para instalar Oracle Instant Client usa la consola Kudu en https://nombre-app.scm.azurewebsites.net y sube o descarga los paquetes necesarios en una carpeta oracle_instantclient dentro de wwwroot
Paso 10 Verificacion final En el portal de Azure Function App selecciona una funcion y abre Monitor revisa que los logs muestran ejecuciones cada 2 minutos y que la sincronizacion entre Oracle y MSSQL se realiza correctamente Habilita Application Insights para logs detallados
Solucion de problemas conexiones y dependencias Utiliza ping y herramientas de red en Kudu para verificar acceso a bases de datos Comprueba cadenas de conexion y versiones de drivers Ejecuta pip install -r requirements.txt en Kudu si faltan paquetes Valida la expresion cron 0 */2 * * * * para ejecuciones cada 2 minutos
Estructura final recomendada oracle-to-mssql-sync/ .vscode/ settings.json functions/ accountstatementpremium/ __init__.py function.json agency/ __init__.py function.json host.json local.settings.json requirements.txt
Por que elegir a Q2BSTUDIO En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida con experiencia en software a medida inteligencia artificial y ciberseguridad Ofrecemos servicios cloud aws y azure servicios inteligencia de negocio y soluciones de ia para empresas incluyendo agentes IA y soluciones con power bi Nuestra oferta integra consultoria desarrollo e implementacion para proyectos de sincronizacion de datos automatizacion y analitica avanzada Con Q2BSTUDIO obtendras asesoramiento en arquitectura cloud integracion segura y despliegue continuo para maximizar disponibilidad y rendimiento
Servicios destacados aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi
Conclusion Con estos pasos puedes transformar tus scripts Python en funciones programadas en Azure que ejecuten sincronizaciones tipo cron de forma fiable y escalable Para proyectos a medida de sincronizacion ETL integracion de bases de datos o soluciones basadas en inteligencia artificial contacta a Q2BSTUDIO y aprovechalo como partner en servicios cloud seguridad y analytics