Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Requisitos previos
Para completar este inicio rápido necesita instalar:
Visual Studio Code instalado.
Las siguientes extensiones de Visual Studio Code instaladas:
La última versión de Azure Functions Core Tools instalada.
Suscripción a Azure. Para usar Durable Functions, debe tener una cuenta de Azure Storage.
SDK de .NET Core versión 3.1 o posterior instalada.
Una herramienta de prueba HTTP que mantiene los datos seguros. Para obtener más información, consulte Herramientas de prueba HTTP.
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
Creación de un proyecto de Azure Functions
En Visual Studio Code, cree un proyecto local de Azure Functions.
En el menú Ver, seleccione Paleta de comandos (o seleccione Ctrl+Mayús+P).
En la solicitud (
>), escriba y seleccione Azure Functions: Crear nuevo proyecto.
Haga clic en Examinar. En el cuadro de diálogo Seleccionar carpeta , vaya a una carpeta que se usará para el proyecto y, a continuación, elija Seleccionar.
En las indicaciones, seleccione o escriba los siguientes valores:
Pronto Acción Descripción Seleccionar un lenguaje para el proyecto de 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 del 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. Especifique un espacio de nombres Escriba Company.Function. Un espacio de nombres para la clase generada. Seleccionar cómo desea abrir 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:
| Método | 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, vea Tipos y características de Durable Functions o este código de ejemplo de C# para 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.
En Visual Studio Code, establezca un punto de interrupción en el código de función de la actividad
SayHelloy, 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.
En el panel Terminal, copie el punto de conexión de la dirección URL de la función desencadenada por HTTP.
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.
Copie el valor de 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.
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.
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.
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.
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.
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
En esta sección, creará una aplicación de funciones en el plan de Consumo flexible junto con los recursos relacionados de 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, en su lugar debe crear la aplicación de funciones con opciones avanzadas.
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.Escriba la siguiente información cuando se le indique:
Pronto Acción Selección de la 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. Escriba un nuevo nombre de aplicación de funciones. Escriba un nombre único global que sea válido en una ruta del URL. El nombre que escriba se valida para asegurarse de que es único en Azure Functions. Seleccionar una ubicación para los nuevos recursos Seleccione una región de Azure. Para mejorar el rendimiento, seleccione una región cerca de usted. Solo se muestran las regiones admitidas por los planes de consumo flexible. Seleccione una pila en tiempo de ejecución Seleccione la versión de idioma que se ejecuta actualmente localmente. Selección del tipo de autenticación de recursos Seleccione Identidad administrada, que es la opción más segura para conectarse a la cuenta de almacenamiento de host predeterminada. 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.
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 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 cuenta estándar de Azure Storage, que el host de Functions utiliza para mantener el estado y otra información sobre su aplicación de función.
- 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 identidad administrada asignada por el usuario que se agrega al rol Colaborador de datos de Storage Blob en la nueva cuenta de almacenamiento de host predeterminada.
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.
En la paleta de comandos, escriba y seleccione Azure Functions: implementar la aplicación de funciones.
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.
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.
Prueba de una función en Azure
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_HttpStartPegue la nueva dirección 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.
Contenido relacionado
- Obtenga información acerca de Patrones comunes de aplicaciones de Durable Functions.
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.
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 cuenta de Azure, cree una cuenta gratuita antes de comenzar.
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.
En Visual Studio, en el menú Archivo, seleccione Nuevo>Proyecto.
En Crear un nuevo proyecto, busque funciones, seleccione la plantilla Azure Functions y, a continuación, seleccione Siguiente.
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.
En Información adicional, use la configuración que se describe en la siguiente tabla.
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. Function 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.
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:
| Método | 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.
En Visual Studio Code, establezca un punto de interrupción en el código de función de la actividad
SayHelloy, 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.
Copie la dirección URL de la función de los resultados del runtime de Azure Functions.
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:
La respuesta es el resultado inicial de la función HTTP. Le permite saber que la orquestación duradera 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.
Copie el valor de 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 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.
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.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Publicar.
En la página Publicar , realice las siguientes selecciones:
- En Destino, seleccione Azure y, a continuación, seleccione Siguiente.
- En Destino específico, seleccione Aplicación de funciones de Azure y, a continuación, seleccione Siguiente.
- En la instancia de Functions, seleccione Crear nuevo.
Cree una nueva instancia con los valores especificados en la siguiente tabla:
Configuración Valor Descripción Nombre Un nombre único global El nombre debe identificar de forma única la nueva aplicación de funciones. Acepte el nombre sugerido o escriba un nombre nuevo. Los caracteres siguientes son válidos: a-z,0-9y-.Nombre de la suscripción Nombre de la suscripción La aplicación de funciones se crea en una suscripción de Azure. Acepte la suscripción predeterminada o seleccione una diferente de la lista. Grupo de recursos Nombre del grupo de recursos La aplicación de funciones se crea en un grupo de recursos. Seleccione Nuevo para crear un nuevo grupo de recursos. También puede seleccionar un grupo de recursos existente en la lista. Tipo de plan Consumo flexible Al publicar el proyecto en una aplicación de funciones que se ejecuta en un plan de consumo flexible, es posible que solo pague por las ejecuciones de la aplicación de funciones. Otros planes de hospedaje pueden incurrir en costos mayores. IMPORTANTE:
Al crear un plan de Flex Consumption, primero debe seleccionar Plan de App Service y luego volver a seleccionar Flex Consumption para resolver un problema con el cuadro de diálogo.Sistema operativo Linux Actualmente, el plan flex Consumption requiere Linux. Ubicación Ubicación del servicio de aplicaciones Seleccione una ubicación en una región de Azure compatible con el plan de consumo flexible. Cuando se selecciona una región no admitida, el botón Crear aparece atenuado. Tamaño de memoria de instancia 2048 El tamaño de memoria de las instancias de máquina virtual en las que se ejecuta la aplicación es único para el plan de consumo flexible. Azure Storage Una cuenta de almacenamiento de uso general El entorno de ejecución de Functions requiere una cuenta de almacenamiento. Seleccione Nueva para configurar una cuenta de almacenamiento de uso general. También puede usar una cuenta existente que cumpla los requisitos de la cuenta de almacenamiento. Application Insights Una instancia de Application Insights Debe activar la integración de 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 usar una instancia existente.
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.
Selecciona Finalizar. Aparece la ventana progreso de creación del perfil de publicación. Cuando se cree el perfil, seleccione Cerrar.
En la página Perfil de publicación, 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 página del perfil de publicación.
En la página de perfil de publicación, vaya a la sección Hospedaje. Seleccione los puntos suspensivos (...) y, a continuación, seleccione Abrir en Azure Portal. El nuevo recurso de Azure de la aplicación de funciones se abre en Azure Portal.
Prueba de una función en Azure
En la página Publicar perfil, copie la dirección URL base de la aplicación de funciones. Reemplace la parte
localhost:portde 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>_HttpStartPegue la nueva dirección 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.
Contenido relacionado
- Obtenga información acerca de Patrones comunes de aplicaciones de Durable Functions.