Freigeben über


Auswählen Ihres Hostingmodells

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.

Auswählen 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.

Vergleich 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-Verbrauch-Hostingplan bietet das Konzept „Always Read Instances“ zum Schutz vor Problemen beim Kaltstart.

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 Dauerhafte 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

Durable Functions unterstützt mehrere Speicher-Back-Ends, während die Durable Task SDKs ausschließlich den Durable Task Scheduler verwenden.

Tipp

Der Durable Task Scheduler ist ein vollständig verwalteter Azure-Dienst, der die Persistenz und Ausführung des Orchestrierungszustands behandelt. Sie wird als separate Azure Ressource mit einer eigenen Preisgestaltung bereitgestellt. Es ist das empfohlene Back-End für Durable Functions und das einzige unterstützte Back-End für die Durable Task SDKs.

Speicheranbieter Durable Functions Dauerhafte Aufgaben-SDKs
Dauerhafter Aufgabenplaner ✅ Empfohlen ✅ Erforderlich
Azure Storage ✅ Unterstützt ❌ Nicht unterstützt
Microsoft SQL Server ✅ Unterstützt ❌ Nicht unterstützt
Netherite ⚠️ Unterstützt, wird aber eingestellt ❌ Nicht unterstützt

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 Dauerhafte Aufgaben-SDKs
Dashboard für dauerhafte Aufgabenplanung ✅ Ja ✅ Ja
Anwendungsanalysen ✅ Integriert Manuelle Einrichtung
Bereitstellung ohne Ausfallzeiten ✅ Functions-Slots Plattformspezifisch

Weitere Informationen:Diagnose | Versionsverwaltung

Beide Hostingmodelle unterstützen den Durable Task Scheduler als Zustandsspeicher-Back-End, das sowohl Zustandsspeicher als auch zusätzliche Überwachungsfunktionen bereitstellt. Durable Functions unterstützt auch mehrere BYO-Speicheroptionen (Bring Your Own, BYO) für Szenarien, in denen sie benötigt werden. Weitere Informationen finden Sie unter "Speicheranbieter".

Weitere Überlegungen

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 Always-On-Workloads mit niedriger Latenz ohne Kaltstartverzögerungen.
Sie möchten eine Abrechnung pro Ausführung mit dem Verbraucherplan. 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.

Durable Task Framework (DTFx)

Das Durable Task Framework (DTFx) ist eine Community-verwaltete Open-Source.NET-Bibliothek für dauerhafte Orchestrierung. Es bietet ähnliche Orchestrierungsgrundtypen wie die modernen sdKs für dauerhafte Aufgaben und wird weiterhin aktiv in der Produktion von vielen Teams verwendet, einschließlich in Microsoft. Insbesondere wird DTFx intern als Abhängigkeit von Azure Durable Functions verwendet, was einer der Gründe dafür ist, dass es weiterhin verwaltet wird. Es gibt jedoch keinen offiziellen Microsoft-Support – Fehler und Funktionsanforderungen werden nach bestem Wissen und Gewissen behoben. Außerdem müssen Sie die Hosting- und Betriebsinfrastruktur selbst verwalten.

Wenn Sie ein neues Projekt starten oder offiziellen Microsoft-Support benötigen, empfehlen wir stattdessen die Verwendung der modernen dauerhaften Aufgaben-SDKs oder dauerhaften Funktionen.

Nächste Schritte

Erste Schritte mit dem von Ihnen ausgewählten Framework:

Übersicht über Durable Functions

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