Dapr-Komponenten in Azure-Container-Apps
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.
- Kann Dapr-Geheimnisse verwenden, um Konfigurationsmetadaten sicher abzurufen.
In diesem Handbuch erfahren Sie, wie Sie Dapr-Komponenten für Ihre Azure-Container-Apps-Dienste konfigurieren.
Komponentenschema
Im Open-Source-Projekt Dapr entsprechen alle Komponenten dem folgendenBasisschema.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: [COMPONENT-NAME]
namespace: [COMPONENT-NAMESPACE]
spec:
type: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
- name: [METADATA-NAME]
value: [METADATA-VALUE]
In Container Apps wurde das obige Schema leicht vereinfacht, um Dapr-Komponenten zu unterstützen und unnötige Felder zu entfernen, einschließlich apiVersion
, kind
und redundanter Metadaten und Eigenschaften von Spezifikationen.
componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
- name: [METADATA-NAME]
value: [METADATA-VALUE]
Komponentenbereiche
Standardmäßig laden alle Dapr-fähigen Container-Apps innerhalb derselben Umgebung den vollständigen Satz an bereitgestellten Komponenten. Um sicherzustellen, dass nur die entsprechenden Container-Apps Komponenten zur Laufzeit laden, sollten Anwendungsbereiche verwendet werden. Im folgenden Beispiel wird die Komponente nur von den beiden Dapr-fähigen Container-Apps mit den Dapr-Anwendungs-IDs APP-ID-1
und APP-ID-2
geladen:
componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
- name: [METADATA-NAME]
value: [METADATA-VALUE]
scopes:
- [APP-ID-1]
- [APP-ID-2]
Hinweis
Dapr-Komponentenbereiche bieten bessere Sicherheitsmaßnahmen und entsprechen der Dapr-Anwendungs-ID einer Container-App, nicht dem Container-App-Namen.
Komponentenbeispiele
Um eine Dapr-Komponente über die Container Apps CLI zu erstellen, können Sie ein YAML-Manifest für Container-Apps verwenden. Beim Konfigurieren mehrerer Komponenten müssen Sie für jede Komponente eine separate YAML-Datei erstellen und anwenden.
az containerapp env dapr-component set --name ENVIRONMENT_NAME --resource-group RESOURCE_GROUP_NAME --dapr-component-name pubsub --yaml "./pubsub.yaml"
# pubsub.yaml for Azure Service Bus component
componentType: pubsub.azure.servicebus.queue
version: v1
secretStoreComponent: "my-secret-store"
metadata:
- name: namespaceName
# Required when using Azure Authentication.
# Must be a fully-qualified domain name
value: "[your_servicebus_namespace.servicebus.windows.net]"
- name: azureTenantId
value: "[your_tenant_id]"
- name: azureClientId
value: "[your_client_id]"
- name: azureClientSecret
secretRef: azClientSecret
scopes:
- publisher-app
- subscriber-app