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.
Wenn Sie Workflows mit Durable Functions oder Durable Task SDKs erstellen, müssen Ihre Orchestrierungen den Zustand speichern. Speicheranbieter behandeln dies, indem sie den Orchestrierungsverlauf, den Entitätsstatus und interne Nachrichten an ein Back-End Ihrer Wahl beibehalten. Dieser dauerhafte Speicher macht Ihre Workflows zuverlässig – sie können anhalten, skalieren, neu starten und wiederherstellen, ohne den Fortschritt zu verlieren.
Durable Functions unterstützen verschiedene Backend-Speicheranbieter. Sie können Ihre Apps so konfigurieren, dass sie die beiden Arten von Speicheranbietern verwenden, die für den dauerhaften Vorgang verfügbar sind:
- Azure verwaltet:
- Dauerhafter Vorgangsplaner (empfohlen)
- „Bring your own“ (BYO)-Speicher:
- Azure Storage
- Netherite
- Microsoft SQL Server (MSSQL)
Hinweis
Derzeit können Sie keine Daten von einem Speicheranbieter zu einem anderen migrieren. Wenn Sie einen neuen Anbieter verwenden möchten, erstellen Sie eine neue App, die mit dem neuen Anbieter konfiguriert ist.
Die SDKs für Durable Task unterstützen den von Azure verwalteten Durable Task Scheduler als Speicheranbieter.
Dauerhafter Aufgabenplaner
Der Durable Task Scheduler ist ein vollständig verwalteter, leistungsstarker Back-End-Anbieter, der in Zusammenarbeit mit Microsoft Research entwickelt und entwickelt wurde. Es zielt darauf ab, die beste Benutzererfahrung in Aspekten wie Verwaltung, Observierbarkeit, Leistung und Sicherheit zu bieten.
Die wichtigsten Vorteile des Durable Task Scheduler umfassen:
- Geringerer Verwaltungs- und Betriebsaufwand im Vergleich zu BYO-Back-End-Anbietern
- Beobachtbarkeits- und Verwaltungsdashboard.
- Unterstützt heute den höchsten Durchsatz aller Backends.
- Unterstützung für die Authentifizierung mithilfe der verwalteten Identität.
Vorhandene Durable Functions- und Durable Task SDK-Benutzer können den Zeitplan ohne Codeänderungen nutzen. Erfahren Sie mehr über den Dauerhaften Aufgabenplaner und die ersten Schritte.
Beispiele für den dauerhaften Vorgangsplaner finden Sie unter GitHub.
Azure Storage
Azure Storage ist einer der "Bring your own"-Speicheranbieter für Durable Functions. Verwendet Warteschlangen Tabellen und Blobs zum Speichern von Orchestrierungs- und Entitätszuständen sowie Blobleases zum Verwalten von Partitionen. Der Azure Storage-Anbieter ist in die Durable Functions Erweiterung integriert und verfügt nicht über andere Abhängigkeiten.
Die wichtigsten Vorteile des Azure Storage Anbieters sind:
- Es ist kein Setup erforderlich. Sie können das Speicherkonto verwenden, das von den Einrichtungsfunktionen der Funktions-App für Sie erstellt wurde.
- Günstiges serverloses Abrechnungsmodell – Azure Storage verfügt über ein verbrauchsbasiertes Preismodell, das vollständig auf der Nutzung basiert (mehr Informationen).
- Optimale Toolunterstützung – Azure Storage bietet plattformübergreifende lokale Emulation und integriert sie in Visual Studio, Visual Studio Code und die Azure Functions Core Tools.
- Am ausgereiftesten - Azure Storage war das ursprüngliche und am besten erprobte Speicher-Backend für Durable Functions.
- Support für die Verwendung der Identität anstelle von Geheimnissen zum Herstellen einer Verbindung mit dem Speicheranbieter.
Der Azure Storage-Anbieter erfordert keine explizite Konfiguration, NuGet-Paketverweise oder Erweiterungsbundleverweise. Ausführliche Konfigurationsoptionen, einschließlich Verbindungen, identitätsbasierter Authentifizierung und host.json Einstellungen, finden Sie unter Azure Storage Provider für Durable Functions.
Microsoft SQL Server (MSSQL)
Der MSSQL-Speicheranbieter behält den gesamten Zustand in einer MSSQL-Datenbank bei. Sie ist sowohl mit lokalen als auch mit in der Cloud gehosteten Bereitstellungen von SQL Server kompatibel, einschließlich Azure SQL Database.
Die wichtigsten Vorteile des MSSQL-Speicheranbieters sind die folgenden:
- Getrennte Umgebungen werden unterstützt; bei Verwendung einer SQL Server Installation ist keine Azure Konnektivität erforderlich.
- Portierbar in mehreren Umgebungen und Clouds, einschließlich Azure gehostet und lokal.
- Es wird eine starke Datenkonsistenz bereitgestellt, wodurch Sicherung bzw. Wiederherstellung sowie Failover ohne Datenverlust möglich sind.
- Systemeigene Unterstützung für die benutzerdefinierte Datenverschlüsselung (ein Feature von SQL Server).
- Die Integration in vorhandene Datenbankanwendungen über integrierte gespeicherte Prozeduren ist ebenfalls enthalten.
Erfahren Sie mehr über den MSSQL-Speicheranbieter:
Netherite
Hinweis
Unterstützung für die Verwendung des Netherite-Speicher-Back-Ends mit Durable Functions endet am 31. März 2028. Es wird empfohlen, den Dauerhaften Aufgabenplaner für Workloads zu bewerten, die derzeit Netherite verwenden.
Das Netherite-Speicher-Back-End wurde von Microsoft Research entworfen und entwickelt. Es verwendet Azure Event Hubs und die FASTER Datenbanktechnologie auf Azure Page Blobs.
Die wichtigsten Vorteile des Netherite-Speicheranbieters sind die folgenden:
- Höherer Durchsatz bei niedrigeren Kosten im Vergleich zu anderen Speicheranbietern.
- Netherite unterstützt die Preis-/Leistungsoptimierung, wodurch Sie die Leistung bei Bedarf hochskalieren können.
- Es werden bis zu 32 Datenpartitionen mit Event Hubs Basic- und Standard-SKUs unterstützt.
- Netherite ist kostengünstiger als andere Anbieter im Hinblick auf Workloads mit hohem Durchsatz.
Weitere Informationen zum Netherite-Speicheranbieter:
- Die Netherite-Dokumentation.
- Der Quellcode für den Netherite-Speicheranbieter.
- Eine ausführlichere Auswertung des Netherite-Speicheranbieters: Serverlose Workflows mit Durable Functions und Netherite.
Vergleichen von Speicheranbietern
Sie können die folgende Tabelle verwenden, um die wesentlichen Kompromisse zwischen den verschiedenen unterstützten Speicheranbietern zu verstehen und zu entscheiden, welcher Speicheranbieter für Ihre Anforderungen am besten geeignet ist.
| Funktion | Dauerhafter Aufgabenplaner | Azure Storage | MSSQL | Netherite |
|---|---|---|---|---|
| Offizieller Supportstatus | ✅ Allgemein verfügbar (Generally Available, GA) | ✅ Allgemein verfügbar (Generally Available, GA) | ✅ Allgemein verfügbar (Generally Available, GA) | ✅ Allgemein verfügbar (Generally Available, GA) |
| Externe Abhängigkeiten | – | Azure Storage Konto (allgemeiner Zweck v1) | SQL Server 2019 oder Azure SQL Database | Azure Event Hubs Azure Storage Konto (allgemeiner Zweck) |
| Lokale Entwicklungs- und Emulationsoptionen | Emulator für dauerhafte Aufgabenplanung | Azurite v3.12 und höher (plattformübergreifend) | SQL Server Developer Edition (unterstützt Windows, Linux und Docker-Container) | Unterstützt die Speicheremulation von Aufgabenhubs (weitere Informationen) |
| Aufgabenhubkonfiguration | Explizit | Explizit | Standardmäßig implizit (weitere Informationen) | Explizit |
| Maximaler Durchsatz | Sehr hoch | Moderat | Moderat | Sehr hoch |
| Maximale Orchestrierung/Aufskalierung von Entitäten (Knoten) | – | 16 | – | 32 |
| Maximales Aufskalieren von Aktivitäten (Knoten) | – | – | – | 32 |
| Unterstützung dauerhafter Entitäten | ✅ Vollständig unterstützt | ✅ Vollständig unterstützt | ✅ Vollständig unterstützt | |
|
KEDA 2.0: Skalierungsunterstützung (Weitere Informationen) |
Demnächst! | ❌ Nicht unterstützt | ✅ Unterstützt die Verwendung des MSSQL-Scalers (weitere Informationen) | ❌ Nicht unterstützt |
| Unterstützung für extension Bundles (empfohlen für Apps ohne .NET) | Demnächst! | ✅ Vollständig unterstützt | ✅ Vollständig unterstützt | ✅ Vollständig unterstützt |
| Für Preis/Leistung konfigurierbar? | Demnächst! | ❌ Nein | ✅ Ja (SQL-vCPUs) | ✅ Ja (Event Hubs-TUs und -CUs) |
| Unterstützung von nicht verknüpften Umgebungen | ❌ Azure Konnektivität erforderlich | ❌ Azure Konnektivität erforderlich | ✅ Vollständig unterstützt | ❌ Azure Konnektivität erforderlich |
| Identitätsbasierte Verbindungen | ✅ Vollständig unterstützt | ✅ Vollständig unterstützt | ⚠️ Erfordert runtimegesteuerte Skalierung | ❌ Nicht unterstützt |
| Flex-Verbrauchstarif | ✅ Vollständig unterstützt | ✅ Vollständig unterstützt (siehe Hinweise) | ✅ Vollständig unterstützt | ❌ Nicht unterstützt |