Freigeben über


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

Nächste Schritte

Erfahren Sie, wie Sie eine Verbindung mit Azure-Diensten und externen Diensten über Dapr-Komponenten herstellen.