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.
Escriba funciones con estado en un entorno sin servidor mediante Durable Functions, una característica de Azure Functions. Los escenarios en los que Durable Functions es útil incluyen orquestar microservicios y flujos de trabajo, patrones con estado, como fan-out/fan-in y tareas de larga duración.
Puede usar el programador de tareas duraderas como back-end para Durable Functions, para almacenar el estado de runtime de la orquestación y la entidad.
En esta guía de inicio rápido:
- Configure una aplicación de Durable Functions existente para usar el Programador de tareas durables.
- Configure el emulador de Durable Task para el desarrollo local.
- Implemente la aplicación en Azure en el plan de App Service mediante Visual Studio Code.
- Supervise el estado de la aplicación y el centro de tareas en el panel del Programador de tareas durable.
Nota:
Durable Task Scheduler actualmente solo admite Durable Functions que se ejecutan en planes de Functions Premium y App Service.
Prerrequisitos
En este inicio rápido se da por supuesto que ya tiene un proyecto de Azure Functions en el equipo local con:
- Durable Functions agregado al proyecto, entre los que se incluyen:
- Una función de orquestador.
- Función cliente que desencadena la aplicación Durable Functions.
- Proyecto configurado para la depuración local.
Si no cumple estos requisitos previos, se recomienda comenzar con uno de los siguientes inicios rápidos para configurar un proyecto de Functions local:
También necesita lo siguiente:
- Docker instalado para ejecutar el emulador de Durable Task Scheduler.
- Azurite instalado.
- Una Herramienta de prueba HTTP que mantiene los datos seguros.
Agregar el paquete del Programador de tareas durables
Instale la versión más reciente del paquete Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged mediante el comando dotnet add package:
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease
Nota:
La extensión Durable Task Scheduler requiere la versión Microsoft.Azure.Functions.Worker.Extensions.DurableTask o superior.1.2.2
En host.json, actualice la extensionBundle
propiedad para usar la versión preliminar que contiene el paquete del Programador de tareas durable:
{
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.29.0, 5.0.0)"
}
}
Actualización de host.json
Actualice el host.json de la manera siguiente para usar el programador de tareas duraderas como back-end.
{
"extensions": {
"durableTask": {
"hubName": "%TASKHUB_NAME%",
"storageProvider": {
"type": "azureManaged",
"connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
}
}
}
}
Configuración de local.settings.json
Agregue información de conexión para el desarrollo local:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
"TASKHUB_NAME": "default"
}
}
Configuración del emulador de Durable Task
Extraiga la imagen de Docker que contiene el emulador.
docker pull mcr.microsoft.com/dts/dts-emulator:latest
Ejecutar el emulador.
docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
La salida siguiente indica que el emulador se ha iniciado correctamente.
Anote los puertos expuestos en el escritorio de Docker. El programador expone varios puertos para diferentes propósitos:
-
8080
: punto de conexión de gRPC que permite a una aplicación conectarse al programador -
8082
: punto de conexión para el panel del programador de tareas duraderas
-
Probar localmente
Vaya al directorio raíz de la aplicación e inicie Azurite.
azurite start
Ejecute la aplicación.
func start
Debería ver una lista de las funciones de la aplicación. Si ha creado la aplicación después de una de las guías de inicio rápido de Durable Functions, debería ver algo similar a la salida siguiente:
Inicie una instancia de orquestación mediante el envío de una solicitud HTTP
POST
al punto de conexión de dirección URL mediante la Herramienta de prueba HTTP que eligió.Copie el valor de dirección URL de
statusQueryGetUri
y péguelo en la barra de direcciones del explorador. Debería ver el estado en la instancia de orquestación:{ "name": "DurableFunctionsOrchestrationCSharp1", "instanceId": "b50f8b723f2f44149ab9fd2e3790a0e8", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2025-02-21T21:09:59Z", "lastUpdatedTime": "2025-02-21T21:10:00Z" }
Para ver más detalles sobre la instancia de orquestación, vaya a http://localhost:8082/ para acceder al panel del programador de tareas duraderas.
Haga clic en el centro de tareas predeterminado para ver su panel.
Nota:
Obtenga más información sobre el panel del Programador de tareas durables.
El emulador del programador de Durable Task almacena los datos de orquestación en la memoria, lo que significa que todos los datos se pierden cuando se apaga.
¿Tiene problemas para probar? Consulte la guía para la solución de problemas.
Ejecución de la aplicación en Azure
Creación de los recursos necesarios
Cree una instancia de Programador de Tareas Duraderas y una aplicación de Azure Functions en Azure siguiendo el flujo de creación integrado de la aplicación de funciones. Esta experiencia configurará automáticamente el acceso basado en identidades y configurará las variables de entorno necesarias para que la aplicación acceda al programador.
Vaya a la hoja Creación de aplicaciones de Functions y seleccione Functions Premium o App Service como opción de hospedaje.
En la hoja Crear aplicación Function (App Service) rellene la información de la pestaña Aspectos básicos.
Campo Descripción Suscripción Seleccione la suscripción de Azure. Grupo de recursos Seleccione uno existente o haga clic en Crear para crear un grupo de recursos nuevo. Nombre de la aplicación de funciones Cree un nombre único para su aplicación de funciones. ¿Desea implementar código o imágenes de contenedor? Mantenga seleccionada la opción Código. Pila en tiempo de ejecución Seleccione el entorno de ejecución que usa para este inicio rápido. Versión Seleccione la versión de la pila en tiempo de ejecución. Región Seleccione alguna de las regiones admitidas. Sistema operativo Seleccione su sistema operativo. Seleccione la pestaña Durable Functions.
Elija Programador de tareas duraderas (Durable Task Scheduler) como proveedor de back-end para las funciones duraderas.
Cree un recurso de programador. Esta acción crea automáticamente un centro de tareas.
Campo Descripción Back-end de almacenamiento Seleccione Programador de tareas duraderas (Durable Task Scheduler). Región Se recomienda que las regiones del programador y de la aplicación de funciones sean las mismas. Programador de tareas duradera Use el nombre del programador ofrecido o haga clic en Crear nuevo para crear un nombre personalizado. Planificación Solo Dedicated (Dedicado) está disponible en este momento. Unidades de capacidad Actualmente, solo puede elegir una unidad de capacidad como opción. Haga clic en Revisar y crear para revisar la creación de recursos.
Se crea automáticamente una identidad administrada asignada por el usuario con el permiso de control de acceso basado en rol (RBAC) necesario y se agrega a la aplicación de funciones. Puede encontrar en la información de vista de resumen relacionada con el recurso de identidad administrada, como:
El rol asignado a él (Colaborador de datos de Durable Task)
La asignación delimitada al nivel central de tareas
Haga clic en Crear una vez superada la validación.
La implementación de recursos puede tardar entre 15 y 20 minutos. Una vez finalizado, puede implementar la aplicación en Azure.
Implementación de la aplicación de funciones 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.
Aplicaciones en el plan Premium de Functions
Si la aplicación se ejecuta en el plan Functions Premium, active la configuración Supervisión de escalado en tiempo de ejecución después de la implementación para asegurarse de que la aplicación se escala automáticamente en función de la carga:
az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites
Prueba de la aplicación de funciones
Ejecute el siguiente comando para obtener la dirección URL de la función:
az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME> --query '[].{Function:name, URL:invokeUrlTemplate}' --output json
Comprobación del estado de la orquestación
Compruebe el estado de la instancia de orquestación y los detalles de la actividad en el panel del Programador de tareas duraderas. El acceso al panel requiere que inicie sesión.
Nota:
En la siguiente instrucción se muestra una asignación de roles con ámbito a un centro de tareas específico. Si necesita acceso a todos los centros de tareas de un programador, realice la asignación en el nivel del programador.
Vaya al recurso del programador de tareas duradero en el portal.
Haga clic en un nombre del centro de tareas.
En el menú izquierdo, seleccione Control de acceso (IAM).
Haga clic en Agregar para agregar una asignación de roles.
Busque y seleccione Colaborador de datos de Durable Task. Haga clic en Next.
En la pestaña Miembros, en Asignar acceso a, seleccione Usuario, grupo o entidad de servicio.
En Miembros, haga clic en + Seleccionar miembros.
En el panel Seleccionar miembros, busque el nombre o el correo electrónico:
Elija el correo electrónico y haga clic en el botón Seleccionar.
Haga clic en Revisar y asignar para terminar de asignar el rol.
Una vez asignado el rol, haga clic en Información general en el menú izquierdo del recurso del centro de tareas y vaya a la dirección URL del panel ubicada en la sección Essentials superior.
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.
Pasos siguientes
- Obtenga más información sobre el panel del Programador de tareas durables.
- Solucione los errores que pueda encontrar al usar el Programador de tareas durables.