Skip to content

johnhtml/durable_function_test

Repository files navigation

Durable Functions Python Fan-In/Fan-Out Example

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

Requisitos

  • Python 3.8+
  • Azure Functions Core Tools
  • VS Code (recomendado)
  • Extensión Azure Functions para VS Code

Instalación

  1. Clona el repositorio

    git clone <URL_DEL_REPOSITORIO>
    cd durable_test
  2. Crea y activa el entorno virtual

    python -m venv .venv
    .\.venv\Scripts\Activate
  3. Instala las dependencias

    pip install -r requirements.txt

Ejecución de azurite

azurite -s -l c:\azurite -d c:\azurite\debug.log

o

azurite --silent --location c:\azurite --debug c:\azurite\debug.log

Estructura del proyecto

  • 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.

Ejecución local

  1. Inicia el host de Azure Functions

    func start
  2. Prueba la función HTTP
    Usa Postman o tu navegador para llamar a la ruta:

    http://localhost:7071/api/orchestrators/hello_orchestrator
    

Pruebas unitarias

  1. Ejecuta las pruebas
    python -m pytest

Notas

  • Modifica db_repository.py y external_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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages