Componenti dapr in App Azure Container
Dapr usa una progettazione modulare in cui la funzionalità viene distribuita come componente. L'uso dei componenti Distributed Apps Runtime è facoltativo e dipende esclusivamente dalle esigenze dell'applicazione.
I componenti Distributed Apps Runtime nelle app contenitore sono risorse a livello di ambiente che:
- Può fornire un modello di astrazione collegabile per la connessione a servizi esterni di supporto.
- Può essere condiviso tra app contenitore o con ambito per app contenitore specifiche.
- Può usare segreti dapr per recuperare in modo sicuro i metadati di configurazione.
Questa guida illustra come configurare i componenti dapr per i servizi di App Azure Container.
Schema dei componenti
Nel progetto open source Dapr tutti i componenti sono conformi allo schema di base seguente.
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 App Contenitore di Azure lo schema precedente è leggermente semplificato per supportare i componenti Dapr e rimuovere campi non necessari, inclusi apiVersion
kind
i metadati , e le proprietà di specifiche e metadati ridondanti.
componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
- name: [METADATA-NAME]
value: [METADATA-VALUE]
Ambiti dei componenti
Per impostazione predefinita, tutte le app contenitore abilitate per Distributed Apps Runtime all'interno dello stesso ambiente caricano il set completo di componenti distribuiti. Per garantire che solo le app contenitore appropriate carichino i componenti in fase di esecuzione, è necessario usare gli ambiti dell'applicazione. Nell'esempio seguente il componente viene caricato solo dalle due app contenitore abilitate per Dapr con ID APP-ID-1
applicazione Dapr e 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]
Nota
Gli ambiti del componente Dapr offrono misure di sicurezza migliori e corrispondono all'ID applicazione Dapr di un'app contenitore, non al nome dell'app contenitore.
Esempi di componenti
Per creare un componente Dapr tramite l'interfaccia della riga di comando di App contenitore, è possibile usare un manifesto YAML delle app contenitore. Quando si configurano più componenti, è necessario creare e applicare un file YAML separato per ogni componente.
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
Passaggi successivi
Informazioni su come connettersi ad Azure e ai servizi esterni tramite componenti Dapr.