Składniki języka Dapr w usłudze Azure Container Apps
Język Dapr używa modułowego projektu, w którym funkcjonalność jest dostarczana jako składnik. Użycie składników języka Dapr jest opcjonalne i dyktowane wyłącznie przez potrzeby aplikacji.
Składniki języka Dapr w aplikacjach kontenera to zasoby na poziomie środowiska, które:
- Może zapewnić podłączany model abstrakcji na potrzeby nawiązywania połączenia z pomocniczymi usługami zewnętrznymi.
- Może być współużytkowany w aplikacjach kontenerów lub w określonym zakresie dla określonych aplikacji kontenerów.
- Może używać wpisów tajnych języka Dapr do bezpiecznego pobierania metadanych konfiguracji.
Z tego przewodnika dowiesz się, jak skonfigurować składniki języka Dapr dla usług Azure Container Apps.
Schemat składnika
W projekcie open source Języka Dapr wszystkie składniki są zgodne z następującym podstawowym schematem.
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]
W usłudze Azure Container Apps powyższy schemat jest nieco uproszczony w celu obsługi składników języka Dapr i usuwania niepotrzebnych pól, w tym apiVersion
kind
, i nadmiarowych metadanych i właściwości specyfikacji.
componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
- name: [METADATA-NAME]
value: [METADATA-VALUE]
Zakresy składników
Domyślnie wszystkie aplikacje kontenerów z obsługą języka Dapr w tym samym środowisku ładują pełny zestaw wdrożonych składników. Aby zapewnić, że tylko odpowiednie aplikacje kontenerów ładują składniki w czasie wykonywania, należy używać zakresów aplikacji. W poniższym przykładzie składnik jest ładowany tylko przez dwie aplikacje kontenerów z obsługą języka Dapr z identyfikatorami APP-ID-1
aplikacji Dapr i 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]
Uwaga
Zakresy składników języka Dapr zapewniają lepsze środki zabezpieczeń i odpowiadają identyfikatorowi aplikacji kontenera Dapr, a nie nazwie aplikacji kontenera.
Przykłady składników
Aby utworzyć składnik języka Dapr za pośrednictwem interfejsu wiersza polecenia usługi Container Apps, możesz użyć manifestu YAML aplikacji kontenera. Podczas konfigurowania wielu składników należy utworzyć i zastosować oddzielny plik YAML dla każdego składnika.
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