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
, kind
och 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.