Compartir a través de


Introducción a Durable Functions en el trabajo aislado de .NET

Este artículo es una introducción a Durable Functions en el trabajador aislado de .NET. El trabajo aislado permite que la aplicación de Durable Functions se ejecute en una versión de .NET diferente de la del host de Azure Functions.

¿Por qué usar Durable Functions en el trabajo aislado de .NET?

El uso de este modelo le permite obtener todas las grandes ventajas que vienen con el Azure Functions .NET proceso de trabajo aislado. Para más información, consulte Ventajas del modelo de trabajo aislado. Además, este nuevo SDK incluye algunas características nuevas.

Mejoras de características sobre Durable Functions en proceso

  • La entrada de orquestación se puede insertar directamente:
  • Compatibilidad con llamadas fuertemente tipadas y actividades y orquestaciones basadas en clases (NOTA: en versión preliminar). Para obtener más información, consulte Generador de código fuente y actividades y orquestaciones basadas en clases.
  • Además de todas las ventajas del trabajo aislado de Azure Functions .NET.

Generador de código fuente y actividades y orquestaciones basadas en clases

Requisito: agregar al proyecto.

Al agregar el paquete del generador de origen, obtendrá acceso a dos características nuevas:

  • Actividades y orquestaciones basadas en clases, una manera alternativa de escribir Durable Functions. En lugar de "basado en funciones", se escriben clases fuertemente tipadas, que heredan tipos del SDK de Durable.
  • Métodos de extensión fuertemente tipados para invocar suborquestaciones y actividades. Estos métodos de extensión también pueden emplearse en actividades y orquestaciones que se basan en funciones.

Ejemplo basado en funciones

public static class MyFunctions
{
    [Function(nameof(MyActivity))] 
    public static async Task<string> MyActivity([ActivityTrigger] string input)
    {
        // implementation
    }

    [Function(nameof(MyOrchestration))] 
    public static async Task<string> MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, string input)
    {
        // implementation
        return await context.CallActivityAsync(nameof(MyActivity), input);
    }
}

Ejemplo basado en clases

[Function(nameof(MyOrchestration))]
public static async Task<string> MyOrchestration(
    [OrchestrationTrigger] TaskOrchestrationContext context)
{
    string input = context.GetInput<string>()!;
    return await context.CallActivityAsync<string>(nameof(MyActivity), input);
}

[Function(nameof(MyActivity))]
public static string MyActivity([ActivityTrigger] string input)
{
    return $"Processed: {input}";
}

Entidades duraderas

Las entidades duraderas se admiten en el trabajo aislado de .NET. Para obtener más información, consulte la guía del desarrollador.

Guía de migración

Para migrar la aplicación de Durable Functions desde el modelo en proceso al trabajo aislado de .NET, consulte Migrate del modelo de trabajo en proceso al modelo de trabajo aislado. En esa guía se tratan la configuración del proyecto, las referencias de paquetes, los cambios de espacio de nombres, las asignaciones de API, las diferencias de comportamiento y los problemas comunes de migración.