Erkunden der Dapr-Integration in Azure Container Apps

Abgeschlossen

Distributed Application Runtime (Dapr) umfasst mehrere schrittweise einführbare Features, die die Erstellung verteilter, Microservice-basierter Anwendungen vereinfachen. Dapr bietet Funktionen, um die Kommunikation zwischen Anwendungen zu ermöglichen – entweder per Pub/Sub-Messaging oder über zuverlässige und sichere Dienst-zu-Dienst-Aufrufe.

Dapr ist ein Open-Source-Projekt der Cloud Native Computing Foundation (CNCF). Die CNCF ist Teil der Linux Foundation und bietet Unterstützung, Aufsicht und Leitung für schnell wachsende, cloudnative Projekte. Als Alternative dazu, dass Sie das Dapr-OSS-Projekt selbst bereitstellen und verwalten, kann die Container Apps-Plattform Folgendes für Sie übernehmen:

  • Bereitstellung einer verwalteten und unterstützten Dapr-Integration
  • Nahtlose Handhabung von Dapr-Versionsupgrades
  • Verfügbarmachung eines vereinfachten Dapr-Interaktionsmodells zur Steigerung der Produktivität von Entwicklern

Dapr-APIs

Screenshot von Decorative.

Dapr-API BESCHREIBUNG
Dienst-zu-Dienst-Aufruf Entdecken Sie Dienste, und verwenden Sie zuverlässige, direkte Dienst-zu-Dienst-Aufrufe mit automatischer mTLS-Authentifizierung und Verschlüsselung.
Zustandsverwaltung Bietet Zustandsverwaltungsfunktionen für Transaktionen und CRUD-Vorgänge.
Pub/Sub Ermöglicht die Kommunikation zwischen Container-Apps mit Herausgeber und Abonnent über einen zwischengeschalteten Nachrichtenbroker.
Bindungen Auslösen Ihrer Anwendungen auf Grundlage von Ereignissen
Akteure Dapr-Akteure sind meldungsgesteuerte, Einzelthread-Arbeitseinheiten, die auf schnelle Skalierung ausgelegt sind. Zum Beispiel in Workloadsituationen mit häufigen Bursts.
Einblick Senden Sie Ablaufverfolgungsinformationen an ein Application Insights-Back-End.
Geheimnisse Sie können auf Geheimnisse aus Ihrem Anwendungscode heraus zugreifen oder in Ihren Dapr-Komponenten auf sichere Werte verweisen.
Configuration Rufen Sie Anwendungskonfigurationselemente für unterstützte Konfigurationsspeicher ab und abonnieren Sie sie.

Hinweis

Die Tabelle zeigt stabile Dapr-APIs. Weitere Informationen zur Verwendung von Alpha-APIs und -Features finden Sie unter Einschränkungen.

Kernkonzepte von Dapr

Das folgende Beispiel, das auf der Pub/Sub-API basiert, wird verwendet, um Kernkonzepte im Zusammenhang mit Dapr in Azure Container Apps zu veranschaulichen.

Abbildung: Pub/Sub-API von Dapr und ihre Funktionsweise in Container Apps

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.

Dapr-Aktivierung

Sie können Dapr mithilfe verschiedener Argumente und Anmerkungen auf Grundlage des Laufzeitkontexts konfigurieren. Azure Container Apps bietet drei Kanäle, über die Sie Dapr konfigurieren können:

  • Container Apps CLI
  • „Infrastructure-as-Code“Vorlagen (Infrastruktur als Code, IaC) wie in Bicep- oder Azure Resource Manager (ARM)-Vorlagen
  • Das Azure-Portal

Dapr-Komponenten und -Bereiche

Dapr verwendet ein modulares Design, bei dem Funktionalität als Komponente bereitgestellt wird. Die Verwendung von Dapr-Komponenten ist optional und wird ausschließlich von den Anforderungen Ihrer Anwendung bestimmt.

Dapr-Komponenten in Container-Apps sind Ressourcen auf Umgebungsebene, die Folgendes können:

  • Ein austauschbares („pluggable“) Abstraktionsmodell bereitstellen, um eine Verbindung mit externen Unterstützungsdiensten herzustellen.
  • Von Container-Apps gemeinsam genutzt oder auf bestimmte Container-Apps begrenzt werden.
  • Dapr-Geheimnisse verwenden, um Konfigurationsmetadaten sicher abzurufen.

Standardmäßig laden alle Dapr-fähigen Container-Apps innerhalb derselben Umgebung den vollständigen Satz an bereitgestellten Komponenten. Um sicherzustellen, dass Komponenten zur Laufzeit nur von den geeigneten Container-Apps geladen werden, sollten Anwendungsbereiche verwendet werden.