Composants Dapr dans Azure Container Apps
Dapr utilise une conception modulaire où la fonctionnalité est fournie en tant que composant. L’utilisation des composants Dapr est facultative et dictée exclusivement par les besoins de votre application.
Les composants Dapr dans les applications conteneur sont des ressources au niveau de l’environnement qui :
- peuvent fournir un modèle d’abstraction enfichable pour la connexion à des services externes de prise en charge ;
- peuvent être partagés entre les applications conteneur ou étendus à des applications conteneur spécifiques ;
- Peut utiliser des secrets Dapr pour récupérer de façon sécurisée les métadonnées de configuration.
Dans ce guide, vous allez apprendre à configurer les composants Dapr pour vos services Azure Container Apps.
Schéma de composant
Dans le projet open source Dapr, tous les composants sont conformes au schéma de base suivant.
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]
Dans Azure Container Apps, le schéma ci-dessus est légèrement simplifié pour prendre en charge les composants Dapr et supprimer des champs inutiles, y compris apiVersion
, kind
, des métadonnées redondantes et des propriétés de spécification.
componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
- name: [METADATA-NAME]
value: [METADATA-VALUE]
Étendues des composants
Par défaut, toutes les applications de conteneur compatibles avec Dapr dans le même environnement chargeront l’ensemble des composants déployés. Pour garantir que seules les applications conteneur appropriées chargent des composants au moment de l’exécution, des étendues d’application doivent être utilisées. Dans l’exemple suivant, le composant est uniquement chargé par les deux applications conteneur compatibles Dapr avec les ID d’application Dapr APP-ID-1
et 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]
Remarque
Les étendues des composants Dapr fournissent de meilleures mesures de sécurité et correspondent à l’ID d’application Dapr d’une application conteneur, et non pas au nom de l’application conteneur.
Exemples de composants
Pour créer un composant Dapr via l’interface CLI Container Apps, vous pouvez utiliser un manifeste YAML d’applications conteneur. Lorsque vous configurez plusieurs composants, vous devez créer et appliquer un fichier YAML distinct pour chaque composant.
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