Delen via


Dapr-onderdelen in Azure Container Apps

Dapr maakt gebruik van een modulair ontwerp waarbij functionaliteit wordt geleverd als onderdeel. Het gebruik van Dapr-onderdelen is optioneel en wordt uitsluitend bepaald door de behoeften van uw toepassing.

Dapr-onderdelen in container-apps zijn resources op omgevingsniveau die:

  • Kan een pluggable abstractiemodel bieden om verbinding te maken met ondersteunende externe services.
  • Kan worden gedeeld tussen container-apps of worden afgestemd op specifieke container-apps.
  • Kan Dapr-geheimen gebruiken om configuratiemetagegevens veilig op te halen.

In deze handleiding leert u hoe u Dapr-onderdelen configureert voor uw Azure Container Apps-services.

Onderdeelschema

In het opensource-project Dapr voldoen alle onderdelen aan het volgende basisschema.

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 Azure Container Apps is het bovenstaande schema enigszins vereenvoudigd om Dapr-onderdelen te ondersteunen en overbodige velden, waaronder apiVersion, kinden redundante metagegevens en specificatie-eigenschappen, te verwijderen.

componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
  - name: [METADATA-NAME]
    value: [METADATA-VALUE]

Onderdeelbereiken

Standaard laden alle dapr-container-apps in dezelfde omgeving de volledige set geïmplementeerde onderdelen. Om ervoor te zorgen dat alleen de juiste container-apps onderdelen laden tijdens runtime, moeten toepassingsbereiken worden gebruikt. In het volgende voorbeeld wordt het onderdeel alleen geladen door de twee dapr-container-apps met Dapr-toepassings-id's APP-ID-1 en APP-ID-2:

componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
  - name: [METADATA-NAME]
    value: [METADATA-VALUE]
scopes:
  - [APP-ID-1]
  - [APP-ID-2]

Notitie

Dapr-onderdeelbereiken bieden betere beveiligingsmaatregelen en komen overeen met de Dapr-toepassings-id van een container-app, niet de naam van de container-app.

Voorbeelden van onderdelen

Als u een Dapr-onderdeel wilt maken via de Container Apps CLI, kunt u een YAML-manifest voor container-apps gebruiken. Wanneer u meerdere onderdelen configureert, moet u voor elk onderdeel een afzonderlijk YAML-bestand maken en toepassen.

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

Volgende stappen

Meer informatie over het maken van verbinding met Azure en externe services via Dapr-onderdelen.