Dapr-onderdelen in Azure Container Apps
Dapr maakt gebruik van een modulair ontwerp waarbij functionaliteit wordt geleverd als onderdeel. Het gebruik van Dapr-onderdelen is optioneel en wordt uitsluitend bepaald door de behoeften van uw toepassing.
Dapr-onderdelen in container-apps zijn resources op omgevingsniveau die:
- Kan een pluggable abstractiemodel bieden om verbinding te maken met ondersteunende externe services.
- Kan worden gedeeld tussen container-apps of worden afgestemd op specifieke container-apps.
- Kan Dapr-geheimen gebruiken om configuratiemetagegevens veilig op te halen.
In deze handleiding leert u hoe u Dapr-onderdelen configureert voor uw Azure Container Apps-services.
Onderdeelschema
In het opensource-project Dapr voldoen alle onderdelen aan het volgende basisschema.
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 Azure Container Apps is het bovenstaande schema enigszins vereenvoudigd om Dapr-onderdelen te ondersteunen en overbodige velden, waaronder apiVersion
, kind
en redundante metagegevens en specificatie-eigenschappen, te verwijderen.
componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
- name: [METADATA-NAME]
value: [METADATA-VALUE]
Onderdeelbereiken
Standaard laden alle dapr-container-apps in dezelfde omgeving de volledige set geïmplementeerde onderdelen. Om ervoor te zorgen dat alleen de juiste container-apps onderdelen laden tijdens runtime, moeten toepassingsbereiken worden gebruikt. In het volgende voorbeeld wordt het onderdeel alleen geladen door de twee dapr-container-apps met Dapr-toepassings-id's APP-ID-1
en 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]
Notitie
Dapr-onderdeelbereiken bieden betere beveiligingsmaatregelen en komen overeen met de Dapr-toepassings-id van een container-app, niet de naam van de container-app.
Voorbeelden van onderdelen
Als u een Dapr-onderdeel wilt maken via de Container Apps CLI, kunt u een YAML-manifest voor container-apps gebruiken. Wanneer u meerdere onderdelen configureert, moet u voor elk onderdeel een afzonderlijk YAML-bestand maken en toepassen.
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
Volgende stappen
Meer informatie over het maken van verbinding met Azure en externe services via Dapr-onderdelen.