Inicio rápido: Configurar una aplicación de Durable Functions para usar el programador de tareas duraderas

Use el Programador de tareas duraderas como back-end para sus aplicaciones de Durable Functions para almacenar el estado de ejecución de la orquestación y de las entidades. En este inicio rápido, clonará un ejemplo de Hello Cities que ya está configurado para usar durable Task Scheduler, lo ejecutará localmente con el emulador y, a continuación, lo implementará en Azure.

  • Clone el ejemplo Hello Cities preconfigurado para Durable Task Scheduler.
  • Configure el emulador de Durable Task Scheduler para el desarrollo local.
  • Ejecute el ejemplo y compruebe la salida de orquestación.
  • Implemente su aplicación en Azure y supervísela mediante el panel de Durable Task Scheduler.

Prerrequisitos

Sugerencia

Una vez que el emulador esté en ejecución, puedes acceder al panel de Durable Task Scheduler en http://localhost:8082 para supervisar las orquestaciones.

Ejecución del ejemplo de inicio rápido

Instale la versión más reciente de la Microsoft. Azure. Functions.Worker.Extensions.DurableTask.AzureManaged paquete 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

  1. Compile e inicie la aplicación de funciones:

    dotnet build
    func start
    

En host.json, actualice la propiedad para usar la extensionBundle versión 4.32.0 o posterior, que incluye compatibilidad con el Programador de tareas durables:

{
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.32.0, 5.0.0)"
  }
}
  1. Inicie la aplicación de funciones:

    func start
    
  1. Compile e inicie la aplicación de funciones:

    mvn clean package
    mvn azure-functions:run
    
  1. En un terminal independiente, desencadene una orquestación:

    $response = Invoke-RestMethod -Method POST -Uri http://localhost:7071/api/DurableFunctionsOrchestrationCSharp1_HttpStart
    $response
    
  1. En un terminal independiente, desencadene una orquestación:

    $response = Invoke-RestMethod -Method POST -Uri http://localhost:7071/api/StartChaining
    $response
    
  1. La respuesta contiene direcciones URL de estado para la instancia de orquestación. Consulte statusQueryGetUri para comprobar el resultado:

    Invoke-RestMethod -Uri $response.statusQueryGetUri
    

    Cuando el runtimeStatus de la orquestación es Completed, la salida contiene resultados de saludo. Si runtimeStatus muestra Running o Pending, espere un momento y vuelva a realizar la consulta.

  2. Vea más detalles sobre la instancia de la orquestación en el Panel del programador de tareas duraderas en http://localhost:8082.

Descripción de la configuración del Programador de tareas duraderas

La configuración de clave que hace que estos ejemplos usen durable Task Scheduler se encuentra en dos archivos.

host.json

La sección storageProvider indica Durable Functions que use el Programador de tareas durables (azureManaged) en lugar del back-end de Azure Storage predeterminado:

{
  "extensions": {
    "durableTask": {
      "hubName": "default",
      "storageProvider": {
        "type": "azureManaged",
        "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
      }
    }
  }
}

local.settings.json

La cadena de conexión apunta al emulador local para desarrollo:

{
  "Values": {
    "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None"
  }
}

Nota:

Para migrar una aplicación de Durable Functions existente, actualice estos dos archivos y agregue el paquete de extensión adecuado para el idioma. Para .NET, instale el Microsoft.Azure. Functions.Worker.Extensions.DurableTask.AzureManaged paquete NuGet. Para otros lenguajes, actualice la agrupación de extensiones en host.json a la versión [4.32.0, 5.0.0).

Ejecución de la aplicación en Azure

Creación de los recursos necesarios

Cree una instancia de Durable Task Scheduler y una aplicación de Azure Functions en Azure siguiendo el flujo de creación integrada de la aplicación Function. 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.

  1. Vaya a la hoja de creación de aplicaciones de funciones.

    Captura de pantalla de las opciones de hospedaje para aplicaciones de funciones.

  2. En la hoja Crear aplicación de funciones (consumo flexible), rellene la información de la pestaña Aspectos básicos.

    Captura de pantalla de la pestaña Aspectos básicos para crear una aplicación de funciones del plan de consumo flexible.

    Campo Descripción
    Subscription Seleccione su suscripción a 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 función 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.
    Region Seleccione alguna de las regiones admitidas.
    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.
    Tamaño de instancia Seleccione un tamaño de instancia o use la selección predeterminada. Obtenga más información sobre los tamaños de instancia.
    Redundancia de zona Deje como valor predeterminado Deshabilitado .
  3. Seleccione la pestaña Durable Functions.

  4. Elija Azure managed: Durable Task Scheduler como proveedor de back-end para Durable Functions.

  5. Cree un recurso de programador. Esta acción crea automáticamente un centro de tareas.

    Captura de pantalla de la creación de una aplicación de Flex Consumption Function.

    Campo Descripción
    Backend de almacenamiento Seleccione Azure managed: Durable Task Scheduler.
    Region Asegúrese de que las regiones del programador y de la aplicación de funciones son las mismas.
    Programador de tareas duraderas Use el nombre del programador ofrecido o haga clic en Crear nuevo para crear un nombre personalizado.
    Planificación Seleccione el plan de precios que mejor se adapte a su proyecto. Consulte la guía Elegir un marco de orquestación para determinar qué plan es mejor para su uso en producción.
    Unidades de capacidad Solo es aplicable cuando se selecciona el plan de precios "Dedicado". Puede seleccionar hasta 3 unidades de capacidad.
  6. 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

      Recorte de pantalla de campos y propiedades elegidas y en revisión en la pestaña Revisar y crear.

  7. Haga clic en Crear una vez superada la validación.

La implementación de recursos puede tardar entre 15 y 20 minutos. Una vez que haya finalizado, puede implementar la aplicación en Azure.

Implementación de la aplicación de funciones en Azure

Importante

La implementación en una aplicación de funciones existente siempre sobrescribe el contenido de esa aplicación en Azure.

  1. En la paleta de comandos, escriba y seleccione Azure Functions: Implementar en Function App.

  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 View Output 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.

    Recorte de pantalla de la ventana Ver salida.

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 de una central de tareas específica. Si necesita acceso a todos los centros de tareas de un programador, realice la asignación en el nivel del programador.

  1. Vaya al recurso Programador de tareas durables en el portal.

  2. Haga clic en un nombre de la central de tareas.

  3. En el menú izquierdo, seleccione Control de acceso (IAM) .

  4. Haga clic en Agregar para agregar una asignación de roles.

    Captura de pantalla de agregar la asignación de roles en el panel de control de acceso del portal.

  5. Busque y seleccione Colaborador de datos de Durable Task. Haga clic en Next.

    Recorte de pantalla de la selección de la asignación de roles Colaborador de datos de Durable Task en el portal.

  6. En la pestaña Miembros, en Asignar acceso a, seleccione Usuario, grupo o entidad de servicio.

  7. En Miembros, haga clic en + Seleccionar miembros.

  8. En el panel Seleccionar miembros, busque el nombre o el correo electrónico:

    Recorte de pantalla de la selección del tipo de identidad administrada asignada por el usuario en el portal.

  9. Elija el correo electrónico y haga clic en el botón Seleccionar.

  10. Haga clic en Revisar y asignar para terminar de asignar el rol.

  11. 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, delete el grupo de recursos y todos los recursos relacionados.

Pasos siguientes