Dela via


Dapr-komponenter i Azure Container Apps

Dapr använder en modulär design där funktioner levereras som en komponent. Användningen av Dapr-komponenter är valfri och styrs uteslutande av programmets behov.

Dapr-komponenter i containerappar är resurser på miljönivå som:

  • Kan tillhandahålla en anslutningsbar abstraktionsmodell för anslutning till externa tjänster.
  • Kan delas mellan containerappar eller begränsas till specifika containerappar.
  • Kan använda Dapr-hemligheter för att på ett säkert sätt hämta konfigurationsmetadata.

I den här guiden får du lära dig hur du konfigurerar Dapr-komponenter för dina Azure Container Apps-tjänster.

Komponentschema

I Dapr-projektet med öppen källkod följer alla komponenter följande grundläggande schema.

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]

I Azure Container Apps är schemat ovan något förenklat för att stödja Dapr-komponenter och ta bort onödiga fält, inklusive apiVersion, kindoch redundanta metadata och specifikationsegenskaper.

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

Komponentomfattningar

Som standard läser alla Dapr-aktiverade containerappar i samma miljö in hela uppsättningen distribuerade komponenter. För att säkerställa att endast lämpliga containerappar läser in komponenter vid körning bör programomfattningar användas. I följande exempel läses komponenten bara in av de två Dapr-aktiverade containerapparna med Dapr-program-ID:t APP-ID-1 och 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]

Kommentar

Dapr-komponentomfång ger bättre säkerhetsåtgärder och motsvarar Dapr-program-ID:t för en containerapp, inte namnet på containerappen.

Komponentexempel

Om du vill skapa en Dapr-komponent via Container Apps CLI kan du använda ett YAML-manifest för containerappar. När du konfigurerar flera komponenter måste du skapa och tillämpa en separat YAML-fil för varje komponent.

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ästa steg

Lär dig hur du ansluter till Azure och externa tjänster via Dapr-komponenter.