Compartir vía


Inicio rápido: Creación de una aplicación de Durable Functions en C#

Use Durable Functions, una característica de Azure Functions, para escribir funciones con estado en un entorno sin servidor. Durable Functions administra el estado, los puntos de control y los reinicios en la aplicación.

Al igual que Azure Functions, Durable Functions admite dos modelos de proceso para las funciones de biblioteca de clases de .NET. Para más información sobre los dos procesos, consulte Diferencias entre el proceso In-Process y el proceso de trabajo aislado .NET Azure Functions.

En este inicio rápido, usará Visual Studio Code para crear y probar localmente una aplicación de Durable Functions "Hola mundo". La aplicación de funciones organiza y encadena llamadas a otras funciones. A continuación, publicará el código de función en Azure. Las herramientas que usa están disponibles a través de la extensión de Azure Functions de Visual Studio Code.

Recorte de pantalla que muestra el código de la aplicación de Durable Functions en Visual Studio Code.

Requisitos previos

Para completar este inicio rápido necesita instalar:

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Creación de un proyecto de Azure Functions

En Visual Studio Code, cree un proyecto local de Azure Functions.

  1. En el menú Ver, seleccione Paleta de comandos (o seleccione Ctrl+Mayús+P).

  2. En la solicitud (>), escriba y seleccione Azure Functions: Crear nuevo proyecto.

    Recorte de pantalla que muestra el comando para crear un proyecto de Functions.

  3. Seleccione Examinar. En el cuadro de diálogo Seleccionar carpeta, vaya a una carpeta que se vaya a usar para el proyecto y, a continuación, elija Seleccionar.

  4. En las indicaciones, seleccione o escriba los siguientes valores:

    Prompt Acción Descripción
    Selección de un lenguaje para el proyecto de la aplicación de funciones seleccione C#. Crea un proyecto local de Functions en C#.
    Selección de una versión Seleccione Azure Functions v4. Solo verá esta opción si Core Tools aún no está instalado. Core Tools se instala la primera vez que se ejecuta la aplicación.
    Seleccione un entorno de ejecución .NET. Seleccione .NET 8.0. aislado. Crea un proyecto de Functions que admite .NET 8 que se ejecuta en un proceso de trabajo aislado y Azure Functions Runtime 4.0. Para más información, consulte Cómo seleccionar un destino para versiones en tiempo de ejecución de Azure Functions.
    Seleccionar una plantilla para la primera función de su proyecto Seleccione Orquestación de Durable Functions. Crea una orquestación de Durable Functions.
    Elección de un tipo de almacenamiento duradero Seleccione Azure Storage. Proveedor de almacenamiento predeterminado de Durable Functions. Para obtener más información, consulte Proveedores de almacenamiento de Durable Functions.
    Proporcionar un nombre de función Escriba HelloOrchestration. Un nombre de la función de orquestación.
    Proporcionar un espacio de nombres Escriba Company.Function. Un espacio de nombres para la clase generada.
    Seleccionar cómo desea que se abra el proyecto Seleccione Abrir en la ventana actual. Abre Visual Studio Code en la carpeta seleccionada.

Visual Studio Code instala Azure Functions Core Tools si es necesario crear el proyecto. También crea el proyecto de una aplicación de funciones en una carpeta. Este proyecto contiene los archivos de configuración host.json y local.settings.json.

Otro archivo, HelloOrchestration.cs, contiene los bloques de creación básicos de una aplicación de Durable Functions:

Method Descripción
HelloOrchestration Define la orquestación de aplicaciones de Durable Functions. En este caso, la orquestación se inicia, crea una lista y, a continuación, le agrega el resultado de tres llamadas a funciones. Una vez finalizadas las tres llamadas a funciones, devuelve la lista.
SayHello Una aplicación de funciones sencilla que devuelve hola. Esta función contiene la lógica de negocios que está orquestada.
HelloOrchestration_HttpStart Una función desencadenada por HTTP que inicia una instancia de la orquestación y devuelve una respuesta de comprobación de estado.

Para obtener más información sobre estas funciones, consulte Características y tipos de Durable Functions.

Configuración del almacenamiento

Puede usar Azurite, un emulador de Azure Storage, para probar la función localmente. En local.settings.json, establezca el valor de AzureWebJobsStorage en UseDevelopmentStorage=true como en este ejemplo:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
  }
}

Para instalar e iniciar la ejecución de la extensión Azurite en Visual Studio Code, en la paleta de comandos, escriba Azurite: Iniciar y seleccione Entrar.

Puede usar otras opciones de almacenamiento para la aplicación de Durable Functions. Para obtener más información sobre las opciones y ventajas de almacenamiento, consulte Proveedores de almacenamiento de Durable Functions.

Prueba local de la función

Azure Functions Core Tools ofrece la capacidad de ejecutar un proyecto de Azure Functions en el equipo de desarrollo local. Se le solicita que instale estas herramientas la primera vez que inicie una función en Visual Studio Code.

  1. En Visual Studio Code, establezca un punto de interrupción en el código de función de la actividad SayHello y, a continuación, seleccione F5 para iniciar el proyecto de la aplicación de funciones. El panel Terminal muestra la salida de Core Tools.

    Nota:

    Para obtener más información sobre la depuración, consulte Diagnósticos de Durable Functions.

    Si aparece el mensaje No se encontró ninguna función de trabajo, actualice la instalación de Azure Functions Core Tools a la versión más reciente.

  2. En el panel Terminal, copie el punto de conexión de la dirección URL de la función desencadenada por HTTP.

    Recorte de pantalla de la ventana de salida local de Azure.

  3. Use una herramienta de prueba HTTP para enviar una solicitud HTTP POST al punto de conexión de la dirección URL.

    La respuesta es el resultado inicial de la función HTTP. Le permite saber que la orquestación de aplicaciones de Durable Functions se inició correctamente. Todavía no muestra el resultado final de la orquestación. La respuesta incluye algunas direcciones URL útiles.

    En este momento, se debe alcanzar el punto de interrupción de la función de actividad porque se ha iniciado la orquestación. Recorra paso a paso para obtener una respuesta sobre el estado de la orquestación.

  4. Copie el valor de la dirección URL de statusQueryGetUri, péguelo en la barra de direcciones del explorador y ejecute la solicitud. Como alternativa, también puede seguir usando la herramienta de prueba HTTP para emitir la solicitud GET.

    La solicitud consultará la instancia de orquestación sobre el estado. Debería ver que la instancia finalizó y que incluye las salidas o los resultados de la aplicación de Durable Functions como en este ejemplo:

    {
        "name":"HelloCities",
        "instanceId":"7f99f9474a6641438e5c7169b7ecb3f2",
        "runtimeStatus":"Completed",
        "input":null,
        "customStatus":null,
        "output":"Hello, Tokyo! Hello, London! Hello, Seattle!",
        "createdTime":"2023-01-31T18:48:49Z",
        "lastUpdatedTime":"2023-01-31T18:48:56Z"
    }
    

    Sugerencia

    Obtenga información sobre cómo puede observar el comportamiento de reproducción de una aplicación de Durable Functions a través de los puntos de interrupción.

  5. Para detener la depuración, en Visual Studio Code, seleccione Mayús+F5.

Después de comprobar que la función se ejecuta correctamente en el equipo local, es el momento de publicar el proyecto en Azure.

Inicio de sesión en Azure

Para poder crear recursos de Azure o publicar la aplicación, debe iniciar sesión en Azure.

  1. Si aún no ha iniciado sesión, en la barra de actividad, seleccione el icono de Azure. A continuación, en Recursos, seleccione Iniciar sesión en Azure.

    Captura de pantalla de la ventana de inicio de sesión en Azure en Visual Studio Code.

    Si ya ha iniciado sesión y puede ver las suscripciones existentes, vaya a la siguiente sección. Si aún no tiene una cuenta de Azure, seleccione Crear una cuenta de Azure. Los alumnos pueden seleccionar Crear una cuenta de Azure for Students.

  2. Cuando se le solicite en el explorador, seleccione su cuenta de Azure e inicie sesión con las credenciales de la cuenta de Azure. Si opta por crear una cuenta, podrá iniciar sesión una vez que haya completado el proceso de creación.

  3. Después de iniciar sesión correctamente, puede cerrar la nueva ventana del explorador. Las suscripciones que pertenecen a su cuenta de Azure se muestran en la barra lateral.

Cree la aplicación de funciones en Azure

Durante el transcurso de esta sección, podrá crear una aplicación de funciones y los recursos relacionados con esta en la suscripción de Azure. Muchas de las decisiones de creación de recursos se toman en función de los comportamientos predeterminados. Para obtener más control sobre los recursos creados, debe crear la aplicación de funciones con opciones avanzadas.

  1. En Visual Studio Code, seleccione F1 para abrir la paleta de comandos. En el símbolo del sistema (>), escriba y seleccione Azure Functions: Crear aplicación de funciones en Azure.

  2. Escriba la siguiente información cuando se le indique:

    Prompt Action
    Seleccionar suscripción Seleccione la suscripción de Azure que se va a usar. El símbolo del sistema no aparece cuando solo tiene una suscripción visible en Recursos.
    Escribir un nombre único global para la aplicación de funciones Escriba un nombre válido en una ruta de acceso de dirección URL. El nombre que escriba se valida para asegurarse de que es único en Azure Functions.
    Seleccione una pila en tiempo de ejecución Seleccione la versión de idioma que se ejecuta actualmente localmente.
    Seleccionar una ubicación para los nuevos recursos Seleccionar una región de Azure. Para mejorar el rendimiento, seleccione una región cerca de usted.

    En el panel Azure: Registro de actividad, la extensión de Azure muestra el estado de los recursos individuales a medida que se crean en Azure.

    Captura de pantalla que muestra el registro de creación de recursos de Azure.

  3. Cuando se crea la aplicación de funciones, se crean los siguientes recursos relacionados en la suscripción de Azure. Los recursos se denominan en función del nombre especificado para la aplicación de funciones.

    • Un grupo de recursos, que es un contenedor lógico de recursos relacionados.
    • Una cuenta de Azure Storage estándar, que mantiene información de estado y de otro tipo sobre los proyectos.
    • Una aplicación de funciones, que proporciona el entorno para ejecutar el código de función. Una aplicación de funciones permite agrupar funciones como una unidad lógica para facilitar la administración, la implementación y el uso compartido de recursos en el mismo plan de hospedaje.
    • Un plan de Azure App Service, que define el host subyacente para la aplicación de funciones.
    • Una instancia de Application Insights conectada a la aplicación de funciones y que realiza un seguimiento del uso de las funciones en la aplicación.

    Una vez que se haya creado la aplicación de función se mostrará una notificación y se aplicará el paquete de implementación.

    Sugerencia

    De forma predeterminada, los recursos de Azure necesarios para la aplicación de funciones se crean según el nombre que escriba para la aplicación de funciones. De manera predeterminada, los recursos se crean con la aplicación de funciones en el mismo grupo de recursos nuevo. Si desea personalizar los nombres de los recursos asociados o reutilizar los recursos existentes, publique el proyecto con opciones de creación avanzadas.

Implementar el proyecto en Azure

Importante

Los procesos de implementación en aplicaciones de funciones existentes siempre sobrescriben el contenido de esas aplicaciones en Azure.

  1. En la paleta de comandos, escriba y seleccione Azure Functions: implementar la aplicación de funciones.

  2. Seleccione la aplicación de funciones que acaba de crear. Cuando se le solicite sobrescribir las implementaciones anteriores, seleccione Implementar para implementar el código de función en el nuevo recurso de aplicación de funciones.

  3. Cuando se complete la implementación, seleccione Ver la salida para ver los resultados de creación e implementación, incluidos los recursos de Azure que creó. Si se pierde la notificación, seleccione el icono de campana en la esquina inferior derecha para verlo de nuevo.

    Captura de pantalla de la vista de la ventana de salida.

Prueba de una función en Azure

  1. En el panel de salida de Visual Studio Code, copie la dirección URL del desencadenador HTTP. La URL que llama a la función desencadenada mediante HTTP debe tener el siguiente formato:

    https://<function-app-name>.azurewebsites.net/api/HelloOrchestration_HttpStart

  2. Pegue la nueva URL de la solicitud HTTP en la barra de direcciones del explorador. Debe obtener la misma respuesta de estado que obtuvo cuando probó localmente cuando usa la aplicación publicada.

La aplicación de Durable Functions de C# que creó y publicó mediante Visual Studio Code está lista para usarse.

Limpieza de recursos

Si ya no necesita los recursos que creó para completar el inicio rápido, para evitar costos relacionados en la suscripción de Azure, Eliminación del grupo de recursos y todos los recursos relacionados.

En este inicio rápido, usará Visual Studio 2022 para crear y probar localmente una aplicación de Durable Functions "Hola mundo". La función organiza y encadena llamadas a otras funciones. A continuación, publicará el código de función en Azure. Las herramientas que usa están disponibles a través de la carga de trabajo de desarrollo de Azure en Visual Studio 2022.

Recorte de pantalla del código de la aplicación de Durable Functions en Visual Studio 2019.

Requisitos previos

Para completar este inicio rápido necesita instalar:

  • Visual Studio 2022 instalado.

    Asegúrese de que la carga de trabajo de Desarrollo de Azure también está instalada. Visual Studio 2019 también admite el desarrollo de Durable Functions, pero la interfaz de usuario y los pasos son diferentes.

  • El emulador Azurite instalado y en ejecución.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Creación de un proyecto de aplicación de función

La plantilla de Azure Functions crea un proyecto que puede publicar en una aplicación de funciones en Azure. Puede usar una aplicación de funciones para agrupar funciones como una unidad lógica para administrar, implementar, escalar y compartir recursos más fácilmente.

  1. En Visual Studio, en el menú Archivo, seleccione Nuevo>Proyecto.

  2. En Crear un nuevo proyecto, busque funciones, seleccione la plantilla Azure Functions y, a continuación, seleccione Siguiente.

    Recorte de pantalla del cuadro de diálogo Nuevo proyecto en Visual Studio.

  3. Para Nombre del proyecto, escriba un nombre para el proyecto y, a continuación, seleccione Aceptar. El nombre de proyecto debe ser válido como espacio de nombres de C#, por lo que no deberá usar guiones bajos, guiones o caracteres no alfanuméricos.

  4. En Información adicional, use la configuración que se describe en la siguiente tabla.

    Recorte de pantalla del cuadro de diálogo Crear una aplicación de Azure Functions en Visual Studio.

    Configuración Acción Descripción
    Trabajo de Functions Seleccione .NET 8 aislado (compatibilidad a largo plazo). Crea un proyecto de Azure Functions que admite la ejecución de .NET 8 en un proceso de trabajo aislado y Azure Functions Runtime 4.0. Para más información, consulte Cómo seleccionar un destino para versiones de Azure Functions Runtime.
    Función Escriba Orquestación de Durable Functions. Crea una orquestación de Durable Functions.

    Nota:

    Si .NET 8 aislado (soporte técnico a largo plazo) no aparece en el menú trabajador de Functions, es posible que no tenga las plantillas y conjuntos de herramientas de Azure Functions más recientes. Vaya a Herramientas>Opciones>Proyectos y soluciones>Azure Functions>Buscar actualizaciones para descargar la más reciente.

  5. Para usar el emulador Azurite, asegúrese de que la casilla Usar Azurite para la cuenta de almacenamiento en runtime (AzureWebJobStorage) esté activada. Para crear un proyecto de Functions mediante una plantilla de orquestación de Durable Functions, seleccione Crear. El proyecto tiene los archivos de configuración básicos que necesita para ejecutar las funciones.

    Nota:

    Puede elegir otras opciones de almacenamiento para la aplicación de Durable Functions. Para obtener más información, consulte Proveedores de almacenamiento de Durable Functions.

En la carpeta de la aplicación, un archivo denominado Function1.cs contiene tres funciones. Las tres funciones son los bloques de creación básicos de una aplicación de Durable Functions:

Method Descripción
RunOrchestrator Define la orquestación de aplicaciones de Durable Functions. En este caso, la orquestación se inicia, crea una lista y, a continuación, le agrega el resultado de tres llamadas a funciones. Una vez finalizadas las tres llamadas a funciones, devuelve la lista.
SayHello Una aplicación de funciones sencilla que devuelve hola. Esta función contiene la lógica de negocios que está orquestada.
HttpStart Una función desencadenada por HTTP que inicia una instancia de la orquestación y devuelve una respuesta de comprobación de estado.

Para obtener más información sobre estas funciones, consulte Características y tipos de Durable Functions.

Prueba local de la función

Azure Functions Core Tools ofrece la capacidad de ejecutar un proyecto de Azure Functions en el equipo de desarrollo local. Se le solicita que instale estas herramientas la primera vez que inicie una función en Visual Studio Code.

  1. En Visual Studio Code, establezca un punto de interrupción en el código de función de la actividad SayHello y, a continuación, seleccione F5. Si se le solicita, acepte la solicitud de Visual Studio para descargar e instalar herramientas de Azure Functions Core (línea de comandos). También es preciso que habilite una excepción de firewall para que las herramientas para controlen las solicitudes de HTTP.

    Nota:

    Para obtener más información sobre la depuración, consulte Diagnósticos de Durable Functions.

  2. Copie la dirección URL de la función de los resultados del runtime de Azure Functions.

    Recorte de pantalla del runtime local de Azure.

  3. Pegue la dirección URL de la solicitud HTTP en la barra de direcciones del explorador y ejecútela. En el siguiente recorte de pantalla se muestra la respuesta a la solicitud GET local que devuelve la función en el explorador:

    Captura de pantalla de la ventana del navegador con statusQueryGetUri llamado.

    La respuesta es el resultado inicial de la función HTTP. Le permite saber que la orquestación de Durable se inició correctamente. Todavía no muestra el resultado final de la orquestación. La respuesta incluye algunas direcciones URL útiles.

    En este momento, el punto de interrupción de la función de actividad debe alcanzarse porque se inició la orquestación. Recorra paso a paso para obtener una respuesta sobre el estado de la orquestación.

  4. Copie el valor de la dirección URL de statusQueryGetUri, péguelo en la barra de direcciones del explorador y ejecute la solicitud.

    La solicitud consultará la instancia de orquestación sobre el estado. Debería ver que la instancia finalizó y que incluye las salidas o los resultados de la función de Durable, como en este ejemplo:

    {
        "name":"HelloCities",
        "instanceId":"668814ac6ce84a43a9e6757f81dbc0bc",
        "runtimeStatus":"Completed",
        "input":null,
        "customStatus":null,
        "output":"Hello, Tokyo! Hello, London! Hello Seattle!",
        "createdTime":"2023-01-31T16:44:34Z",
        "lastUpdatedTime":"2023-01-31T16:44:37Z"
    }
    

    Sugerencia

    Obtenga información sobre cómo puede observar el comportamiento de reproducción de una aplicación de Durable Functions a través de los puntos de interrupción.

  5. Para detener la depuración, seleccione Mayús+F5.

Después de comprobar que la función se ejecuta correctamente en el equipo local, es el momento de publicar el proyecto en Azure.

Publicar el proyecto en Azure

Debe tener una aplicación de función en la suscripción de Azure para publicar el proyecto. Puede crear una aplicación de funciones en Visual Studio.

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Publicar. En Destino, seleccione Azure y, a continuación, seleccione Siguiente.

    Recorte de pantalla del panel de publicación.

  2. En Destino específico, seleccione Azure Function App (Windows). Se crea una aplicación de funciones que se ejecuta en Windows. Seleccione Siguiente.

    Recorte de pantalla del panel de publicación que tiene un destino específico.

  3. En la Instancia de Functions, seleccione Crear una función de Azure.

    Recorte de pantalla que muestra Crear una nueva instancia de aplicación de funciones.

  4. Cree una nueva instancia con los valores especificados en la siguiente tabla:

    Configuración valor Descripción
    Nombre Nombre único globalmente Nombre que identifica de forma única la nueva aplicación de función. Acepte este nombre o escriba uno nuevo. Los caracteres válidos son a-z, 0-9 y -.
    Suscripción Su suscripción La suscripción de Azure que se va a usar. Acepte esta suscripción o seleccione una nueva en la lista desplegable.
    Grupo de recursos Nombre del grupo de recursos Nombre del grupo de recursos en el que quiere crear la aplicación de funciones. Seleccione Nuevo para crear un nuevo grupo de recursos. También puede elegir usar un grupo de recursos existente en la lista desplegable.
    Tipo de plan Consumo Cuando publique el proyecto en una aplicación de funciones que se ejecute en un plan Consumo, solo pagará por las ejecuciones de la aplicación. Otros planes de hospedaje suponen costos más elevados.
    Ubicación Ubicación de la instancia de App Service Seleccione una ubicación en una región de Azure próxima a usted o a otros servicios a los que las funciones accedan.
    Almacenamiento de Azure Cuenta de almacenamiento de uso general El runtime de Functions necesita una cuenta de almacenamiento de Azure. Seleccione Nueva para configurar una cuenta de almacenamiento de uso general. También puede elegir usar una cuenta existente que cumpla los requisitos de la cuenta de almacenamiento.
    Application Insights Instancia de Application Insights Debe habilitar la integración de Azure Application Insights para la aplicación de funciones. Seleccione Nuevo para crear una nueva instancia, ya sea en un área de trabajo de Log Analytics nueva o en una existente. También puede elegir usar una cuenta existente.

    Recorte de pantalla del cuadro de diálogo Crear App Service.

  5. Seleccione Crear para crear una aplicación de funciones y sus recursos relacionados en Azure. El estado de la creación del recurso se muestra en la equina inferior izquierda de la ventana.

  6. En Instancia de Functions, asegúrese de que la casilla Ejecutar archivo de paquete esté activada. La aplicación de funciones se implementa con la implementación de un archivo zip y con el modo de ejecución desde el paquete habilitado. La implementación de archivo ZIP es el método de implementación recomendado para el proyecto de Functions para mejorar el rendimiento.

    Recorte de pantalla del panel Finalizar creación del perfil.

  7. Seleccione Finalizary, en el panel Publicar, seleccione Publicar para implementar el paquete que contiene los archivos del proyecto en la nueva aplicación de funciones de Azure.

    Una vez completada la implementación, la dirección URL raíz de la aplicación de funciones en Azure se muestra en la pestaña Publicar.

  8. En la pestaña Publicar, en la sección Hosting, seleccione Abrir en Azure Portal. El nuevo recurso de Azure de la aplicación de funciones se abre en Azure Portal.

    Recorte de pantalla del mensaje Publicación correcta.

Prueba de una función en Azure

  1. En la página Publicar perfil, copie la dirección URL base de la aplicación de funciones. Reemplace la parte localhost:port de la dirección URL que usó al probar la función localmente por la nueva dirección URL base.

    La URL que llama al desencadenador HTTP de la función duradera deberá tener el siguiente formato:

    https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>_HttpStart

  2. Pegue la nueva URL de la solicitud HTTP en la barra de direcciones del explorador. Cuando pruebe la aplicación publicada, debe obtener la misma respuesta de estado que cuando la probó localmente.

La aplicación de Durable Functions de C# que creó y publicó mediante Visual Studio está lista para usarse.

Limpieza de recursos

Si ya no necesita los recursos que creó para completar el inicio rápido, para evitar costos relacionados en la suscripción de Azure, Eliminación del grupo de recursos y todos los recursos relacionados.