Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- Azure Functions (über Durable Functions)
- Selbst gehostet (über die eigenständigen Durable Task SDKs).
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".