Condividi tramite


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 apiVersionkindi 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.