Von Dapr unterstützte Microservice-APIs
Azure Container Apps stellt von Distributed Application Runtime (Dapr) unterstützte APIs bereit, mit denen Sie einfache, portierbare, resiliente und geschützte Microservices schreiben und implementieren können. Dapr arbeitet mit Azure Container Apps als Abstraktionsebene zusammen, um eine wartungsarme und skalierbare Plattform bereitzustellen. Azure Container Apps bietet eine Auswahl an vollständig verwalteten Dapr-APIs, -Komponenten und -Features, die speziell auf Microserviceszenarien zugeschnitten sind. Aktivieren und konfigurieren Sie Dapr einfach wie gewohnt in Ihrer Container-App-Umgebung.
Funktionsweise der Microservices-APIs in Ihrer Container-App
Konfigurieren Sie die Microservices-APIs für Ihre Container-Apps-Umgebung mit einer Dapr-fähigen Container-App, einer Dapr-Komponente, die für Ihre Lösung konfiguriert ist, und einem Dapr-Sidecar, der die Kommunikation zwischen ihnen aufruft. Das folgende Diagramm veranschaulicht diese Kernkonzepte mithilfe der Pub/Sub-API als Beispiel.
Bezeichnung | Dapr-Einstellungen | BESCHREIBUNG |
---|---|---|
1 | Container Apps mit Dapr-Aktivierung | Dapr wird auf Container-App-Ebene durch das Konfigurieren von eines Satzes von Dapr-Argumenten aktiviert. Diese Werte gelten für alle Revisionen einer bestimmten Container-App, wenn diese im Multirevisionsmodus ausgeführt wird. |
2 | Dapr | Die vollständig verwalteten Dapr-APIs werden jeder Container-App über ein Dapr-Sidecar verfügbar gemacht. Die Dapr-APIs können aus Ihrer Container-App über HTTP oder gRPC aufgerufen werden. Das Dapr-Sidecar wird an HTTP-Port 3500 und gRPC-Port 50001 ausgeführt. |
3 | Dapr-Komponentenkonfiguration | Dapr verwendet ein modulares Design, bei dem Funktionalität als Komponente bereitgestellt wird. Dapr-Komponenten können von mehreren Container-Apps gemeinsam genutzt werden. Die im Array „scopes“ angegebenen Dapr-App-Bezeichner legen fest, welche Dapr-fähigen Container-Apps zur Laufzeit eine bestimmte Komponente laden. |
Unterstützte Dapr-APIs, -Komponenten und -Tools
Verwaltete APIs
Azure Container Apps bietet allgemein verfügbare verwaltete Dapr-APIs (Bausteine). Diese APIs werden vollständig verwaltet und für die Verwendung in Produktionsumgebungen unterstützt.
Weitere Informationen zur Verwendung von Dapr-Alpha-APIs und -Features finden Sie unter Häufig gestellte Fragen zu Dapr.
API | Status | Beschreibung |
---|---|---|
Dienst-zu-Dienst-Aufruf | Allgemein verfügbar | Entdecken Sie Dienste, und verwenden Sie zuverlässige, direkte Dienst-zu-Dienst-Aufrufe mit automatischer mTLS-Authentifizierung und Verschlüsselung. Sehen Sie sich bekannte Einschränkungen beim Aufrufen des Dapr-Dienstes in Azure Container Apps an. |
Zustandsverwaltung | Allgemein verfügbar | Bietet Zustandsverwaltungsfunktionen für Transaktionen und CRUD-Vorgänge. |
Pub/Sub | Allgemein verfügbar | Ermöglicht die Kommunikation zwischen Container-Apps mit Herausgeber und Abonnent über einen zwischengeschalteten Nachrichtenbroker. Sie können auch deklarative Abonnements für ein Thema erstellen, indem Sie eine JSON-Datei für externe Komponenten verwenden. Erfahren Sie mehr über die deklarative API zum Veröffentlichen/Abonnieren. |
Bindungen | Allgemein verfügbar | Auslösen Ihrer Anwendungen auf Grundlage von Ereignissen |
Akteure | Allgemein verfügbar | Dapr-Akteure sind meldungsgesteuerte, Einzelthread-Arbeitseinheiten, die auf schnelle Skalierung ausgelegt sind. Zum Beispiel in Workloadsituationen mit häufigen Bursts. |
Einblick | Allgemein verfügbar | Senden Sie Ablaufverfolgungsinformationen an ein Application Insights-Back-End. |
Geheimnisse | Allgemein verfügbar | Sie können auf Geheimnisse aus Ihrem Anwendungscode heraus zugreifen oder in Ihren Dapr-Komponenten auf sichere Werte verweisen. |
Configuration | Allgemein verfügbar | Rufen Sie Anwendungskonfigurationselemente für unterstützte Konfigurationsspeicher ab und abonnieren Sie sie. |
Kompatible SDKs
Die neuesten Client-SDK-Pakete von Dapr sind mit Azure Container Apps kompatibel. Sie können jede der unterstützten GA Dapr-APIs mit den folgenden Dapr-Client-SDK-Versionen verwenden:
Sprache | SDK-Version |
---|---|
Java | 1.12.0 |
Go | 1.11.0 |
Python | 1.14.0 |
.NET | 1.14.0 |
JavaScript | 3.3.1 |
Rust | 0.15.1 |
Hinweis
Derzeit sind die Dapr-Servererweiterungen, Actor- und Workflow-SDK-Pakete nicht mit Azure Container Apps kompatibel. Erfahren Sie mehr über alle Dapr SDK-Pakete.
Komponenten der Ebene 1 und Ebene 2 im Vergleich
Ein Teil der Dapr-Komponenten wird unterstützt. Innerhalb dieser Teilmenge sind Dapr-Komponenten in zwei Supportkategorien unterteilt: Ebene 1 oder Ebene 2.
- Komponenten der Ebene 1: Stabile Komponenten, die in kritischen Szenarien (Sicherheitsproblem oder schwerwiegende Regression) sofort untersucht werden. Andernfalls arbeitet Microsoft mit dem Open Source-Projekt zusammen, um Probleme in einem Hotfix oder im nächsten regulären Release zu beheben.
- Komponenten der Ebene 2: Komponenten, die mit niedrigerer Priorität untersucht werden, da sie nicht stabil sind oder von einem Drittanbieter bereitgestellt werden.
Komponenten der Ebene 1
API | Komponente | type |
---|---|---|
Zustandsverwaltung | Azure Cosmos DB Azure Blob Storage v1 Azure Table Storage Microsoft SQL Server |
state.azure.cosmosdb state.azure.blobstorage state.azure.tablestorage state.sqlserver |
Veröffentlichen und Abonnieren | Azure Service Bus-Warteschlangen Azure Service Bus-Themen Azure Event Hubs |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Binding | Azure Storage-Warteschlangen Azure Service Bus-Warteschlangen Azure Blob Storage Azure Event Hubs |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
Geheimnisverwaltung | Azure Key Vault | secretstores.azure.keyvault |
Komponenten der Ebene 2
API | Komponente | type |
---|---|---|
Zustandsverwaltung | PostgreSQL MySQL und MariaDB Redis |
state.postgresql state.mysql state.redis |
Veröffentlichen und Abonnieren | Apache Kafka Streams in Redis |
pubsub.kafka pubsub.redis |
Binding | Azure Event Grid Azure Cosmos DB Apache Kafka PostgreSQL Redis Cron |
bindings.azure.eventgrid bindings.azure.cosmosdb bindings.kafka bindings.postgresql bindings.redis bindings.cron |
Konfiguration | PostgreSQL Redis |
configuration.postgresql configuration.redis |
Tools
Azure Container Apps stellt die Kompatibilität mit Dapr-Open-Source-Tools wie SDKs und der CLI sicher.
Begrenzungen
- Dapr-Konfigurationsspezifikation: Alle Funktionen, die die Verwendung der Dapr-Konfigurationsspezifikation erfordern.
- Alle Dapr-Sidecar-Anmerkungen, die nicht in der Dapr-Aktivierungsanleitung aufgelistet sind
- APIs und Komponenten unterstützen: Nur die Dapr-APIs und -Komponenten, die in diesem Artikel als GA, Tier 1 oder Tier 2 aufgeführt werden, werden in Azure Container Apps unterstützt.
- Erinnerungen für Akteure: Für minReplicas muss mindestens der Wert 1 verlangt werden, um sicherzustellen, dass Erinnerungen stets aktiv sind und ordnungsgemäß ausgelöst werden.
- Aufträge: Dapr wird für Aufträge nicht unterstützt.