Auswählen Ihres Hostingmodells für dauerhafte Aufgaben

Dieser Artikel hilft Ihnen bei der Entscheidung zwischen den beiden Hostingmodellen für dauerhafte Aufgaben – Durable Functions (Azure Functions) und den standalone Durable Task SDKs (selbst gehostet) – basierend auf Ihrer Hostingplattform, Skalierungsanforderungen und betrieblichen Anforderungen.

Tipp

Kennen Sie Ihre Hostingplattform bereits? Springen Sie zur Plattform-Nachschlagetabelle, um schnell eine Antwort zu erhalten.

Wie in "What is Durable Task?" beschrieben, unterstützt Durable Task zwei Hostingmodelle:

Beide Hostingmodelle bieten dieselben grundlegenden dauerhaften Ausführungsfunktionen (Orchestrierungen, Aktivitäten, Zeitgeber, externe Ereignisse und mehr), unterscheiden sich jedoch darin, wie Ihre Anwendung gehostet, skaliert und bereitgestellt wird.

Im Allgemeinen bestimmt der Ort, an dem Ihre Anwendung ausgeführt wird, welches Hostingmodell Sie verwenden. Wenn Sie auf Azure Functions aufbauen, verwenden Sie Durable Functions. Wenn Sie auf einer anderen Computeplattform aufbauen, verwenden Sie die eigenständigen SdKs für dauerhafte Aufgaben.

Wählen Sie basierend auf der Hostingplattform

Wenn Sie die Hostingplattform Ihrer Anwendung bereits kennen, können Sie anhand der folgenden Tabelle ermitteln, welches Hostingmodell verwendet werden soll:

Hostingplattform Hostingmodell
Azure Functions (Verbrauch, Flexverbrauch, Premium) Durable Functions
Azure Container Apps (mit Azure Functions Laufzeit) Entweder
Azure App Service (mit Azure Functions Runtime) Entweder
Azure Kubernetes Service (AKS) Eigenständige Durable Task-SDKs
Virtuelle Maschinen oder vor Ort Eigenständige Durable Task-SDKs

Hinweis

Azure App Service und Azure Container Apps können die Azure Functions Laufzeit hosten, entweder über die vollständig verwaltete Azure Functions Integration oder durch direkte Bereitstellung der Azure Functions Laufzeit. Daher unterstützen beide Plattformen beide Hostingmodelle. Weitere Informationen zu Azure Functions Hostingmodellen finden Sie unter Azure Functions Hostingpläne.

Vergleichen der Hostingmodelle

In der folgenden Tabelle sind die wichtigsten Unterschiede zwischen den beiden Hostingmodellen zusammengefasst:

Dauerhafte Funktionen (Azure-Funktionen) Eigenständige SDKs für Durable Tasks (selbst gehostet)
Hosting Azure Functions (Verbrauch, Flexverbrauch, Premium), App Service und Container-Apps (mit Functions runtime) Jede Plattform: Azure Container Apps, AKS, App Service, VMs, lokal
Skalierung Von der Azure Functions verwaltete automatische Skalierungsinfrastruktur Sie verwalten die Skalierung selbst oder verwenden die plattformeigene automatische Skalierung (z. B. KEDA auf Kubernetes)
Auslöser Integrierte Unterstützung für HTTP-, Warteschlangen-, Timer-, Ereignisraster- und andere Azure Functions-Trigger Sie definieren Ihre eigenen Einstiegspunkte (z. B. HTTP-Endpunkte, Nachrichtenkonsumenten usw.)
Statusspeicher Durable Task Scheduler (empfohlen), Azure Storage, MSSQL, Netherite Dauerhafter Aufgabenplaner
Sprachen .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell .NET (C#/F#), JavaScript/TypeScript, Python, Java
Überwachung Integrierte Integration mit Azure-Portal, Application Insights Sie richten Ihre eigene Überwachungslösung ein (z. B. Azure Monitor, Prometheus oder Grafana)

Hinweis

Kaltstart tritt auf, wenn eine Funktions-App nach dem Leerlauf gestartet wird. Premium- und Dedizierte Hostingpläne halten Instanzen warm, um die Latenz von Kaltstarts zu reduzieren.

Der Flex Consumption-Hosting-Plan bietet das Konzept „always ready instances“ zur Kaltstartvermeidung.

Erfahren Sie mehr über Azure Functions Hostingmodelle.

Integrierte HTTP-APIs

Azure Functions stellt HTTP-Endpunkte für Ihre Funktionen-App bereit, die die Durable Functions Erweiterung nutzt, um integrierte Unterstützung für die Instanzverwaltung über HTTP bereitzustellen.

Bei Verwendung der Durable Task SDKs müssen Sie abhängig von Ihrer Hosting-Umgebung eigene HTTP-Endpunkte implementieren.

Funktion Durable Functions Robuste Aufgaben-SDKs
HTTP-APIs für die Verwaltung ✅ Integriert ❌ Implementieren Sie Ihre eigene
URLs für den automatischen Status ✅ Integriert ❌ Implementieren Sie Ihre eigene

Durable Functions HTTP-Funktionen

Durable Functions macht HTTP-Endpunkte automatisch zum Starten von Orchestrierungen, Abfragen des Status, Auslösen von Ereignissen und Beenden von Instanzen verfügbar. Diese APIs folgen dem asynchronen HTTP-Abrufmuster und erleichtern die Integration in externe Systeme.

Hinweis

Durable Functions unterstützt die direkte Verwendung der DurableTaskClient Klasse, wenn Sie die Verwendung der Klasse anstelle der integrierten HTTP-APIs bevorzugen.

Weitere Informationen: HTTP-Features in Durable Functions | HTTP-API-Referenz

Verwaltung von SDKs für langlebige Aufgaben

Mit den SdKs für dauerhafte Aufgaben verwenden Sie die DurableTaskClient Klasse direkt zum Verwalten von Orchestrierungsinstanzen. Wenn Sie HTTP-Endpunkte benötigen, implementieren Sie sie selbst mit Ihrem bevorzugten Webframework.

Weitere Informationen: Verwalten von Orchestrierungsinstanzen

Speicher-Back-Ends

Beide Hostingmodelle verwenden den Durable Task Scheduler – einen vollständig verwalteten Azure Dienst für die Persistenz und Ausführung des Orchestrierungszustands (pricing). Durable Functions unterstützt zusätzlich Bring-your-own Storage-Back-Ends (Azure Storage, MSSQL und Netherite). Die SDKs des Durable Task verwenden ausschließlich den Durable Task Scheduler.

Weitere Informationen: Speicheranbieter

Aufgabenhubkonfiguration

Durable Functions konfiguriert Aufgabenhubs in der Datei host.json. Die Durable Task SDKs konfigurieren Aufgaben-Hubs in Code und Umgebungsvariablen (Connection String/Endpunkt).

Weitere Informationen: Task-Hubs

Diagnose und Versionsverwaltung

Funktion Durable Functions Robuste Aufgaben-SDKs
Dashboard für dauerhafte Aufgabenplanung ✅ Ja ✅ Ja
Anwendungsanalysen ✅ Integriert Manuelle Einrichtung
Bereitstellung ohne Ausfallzeiten ✅ Funktionsslots Plattformspezifisch

Weitere Informationen:Diagnose | Versionsverwaltung

Wann jedes Modell ausgewählt werden soll

Berücksichtigen Sie bei der Auswahl zwischen den beiden Hostingmodellen die folgenden Faktoren:

Wählen Sie Durable Functions aus, wenn... Wählen Sie eigenständige Durable Task SDKs aus, wenn...
Sie möchten integrierte Azure Functions Trigger (HTTP, Warteschlange, Timer usw.) verwenden. Sie möchten vollzugriff auf Ihren Container und seine Einstiegspunkte.
Sie sind bereits mit dem Azure Functions Hostingmodell vertraut. Sie bevorzugen ein einfaches SDK ohne den Azure Functions Laufzeitaufwand.
Sie möchten Azure Portalintegration für die Funktionsverwaltung. Sie möchten, dass derselbe Code über Containerplattformen hinweg portierbar ist (AKS, App Service usw.).
Sie müssen aus mehreren Speicher-Back-Ends wählen. Sie verfügen über vorhandenen Nicht-Funktionen-basierten Anwendungscode, den Sie integrieren können.
Sie benötigen serverlose, ereignisgesteuerte Apps, die auf Null skaliert werden. Sie benötigen immer verfügbare Workloads mit niedriger Latenz ohne Kaltstartverzögerung.
Sie sollten eine Abrechnung pro Ausführung mit dem Verbrauchsplan verwenden. Sie benötigen Szenarien mit hohem Durchsatz , die für die Batchverarbeitung optimiert sind.
Sie benötigen schnelle Prototypen mit deklarativen Triggern und Bindungen. Sie verfügen über containerisierte oder Kubernetes-Anwendungen.

Migration

Wenn Sie bereits Durable Functions verwenden und zu einer containerbasierten Bereitstellung wechseln oder die Hostingflexibilität der dauerhaften Aufgaben-SDKs nutzen möchten, ist die Migration einfach. Der Orchestrierungscode ist in beiden Frameworks sehr ähnlich.

Detaillierte Anleitungen zur Migration finden Sie unter Migrate von Durable Functions zu den SDKs für dauerhafte Aufgaben.

Hinweis

Durable Task Framework (DTFx): Das Durable Task Framework ist eine von der Community gepflegte, quelloffene .NET-Bibliothek für dauerhafte Orchestrierung. Sie wird intern als Abhängigkeit von Durable Functions verwendet, bietet aber keinen offiziellen Microsoft Support. Wenn Sie ein neues Projekt starten, verwenden Sie stattdessen die modernen sdKs für dauerhafte Aufgaben oder Durable Functions.

Nächste Schritte

Erste Schritte mit dem von Ihnen ausgewählten Framework:

Erfahren Sie dann mehr über den Back-End-Anbieter "Durable Task Scheduler".