Este proyecto muestra cómo implementar el patrón fan-in/fan-out usando Azure Durable Functions en Python, con inyección de dependencias para persistencia en bases de datos y llamados a servicios externos.
Este proyecto sigue el tutorial oficial de learn microsoft en: https://learn.microsoft.com/en-us/azure/azure-functions/durable/quickstart-python-vscode?tabs=windows
- Python 3.8+
- Azure Functions Core Tools
- VS Code (recomendado)
- Extensión Azure Functions para VS Code
-
Clona el repositorio
git clone <URL_DEL_REPOSITORIO> cd durable_test
-
Crea y activa el entorno virtual
python -m venv .venv .\.venv\Scripts\Activate
-
Instala las dependencias
pip install -r requirements.txt
azurite -s -l c:\azurite -d c:\azurite\debug.log
o
azurite --silent --location c:\azurite --debug c:\azurite\debug.log
function_app.py
: Orquestador y actividades de Durable Functions.repositories/db_repository.py
: Lógica de persistencia.services/external_service.py
: Llamados a servicios externos.containers.py
: Configuración de inyección de dependencias.tests/test_function_app.py
: Pruebas unitarias.requirements.txt
: Dependencias del proyecto.
-
Inicia el host de Azure Functions
func start
-
Prueba la función HTTP
Usa Postman o tu navegador para llamar a la ruta:http://localhost:7071/api/orchestrators/hello_orchestrator
- Ejecuta las pruebas
python -m pytest
- Modifica
db_repository.py
yexternal_service.py
para integrar tu base de datos y servicios reales. - El patrón de inyección de dependencias facilita el testeo y la escalabilidad.