共用方式為


Azure 容器應用程式中的 Dapr 元件

Dapr 使用模組化設計,其中的功能會以元件的形式傳遞。 使用 Dapr 元件是選擇性的,且完全取決於應用程式的需求。

容器應用程式中的 Dapr 元件是環境層級的資源,其可:

  • 可提供插入式抽象模型,以連線到支援外部服務。
  • 可跨容器應用程式共用,或限定在特定容器應用程式範圍內。
  • 可以使用 Dapr 秘密 安全地擷取組態元數據。

在本指南中,您將了解如何為 Azure 容器應用程式服務設定 Dapr 元件。

元件結構描述

在 Dapr 開放原始碼專案中,所有元件都符合下列基本結構描述

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]

在Azure 容器應用程式中,上述結構描述已稍微簡化,以支援 Dapr 元件,並移除不必要的欄位,包括 apiVersionkind 和備援中繼資料和規格屬性。

componentType: [COMPONENT-TYPE]
version: v1
initTimeout: [TIMEOUT-DURATION]
ignoreErrors: [BOOLEAN]
metadata:
  - name: [METADATA-NAME]
    value: [METADATA-VALUE]

元件範圍

根據預設,相同環境中所有已啟用 Dapr 的容器應用程式都會載入一組完整的已部署元件。 為了確保元件只會由適當的容器應用程式在執行時間載入,應該使用應用程式範圍。 在下列範例中,只有兩個已啟用 Dapr 的容器應用程式 (具有 Dapr 應用程式識別碼 APP-ID-1APP-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]

注意

Dapr 元件範圍提供更好的安全性措施,並對應至容器應用程式的 Dapr 應用程式識別碼,而不是容器應用程式名稱。

元件範例

若要透過 Container Apps CLI 建立 Dapr 元件,您可以使用容器應用程式 YAML 資訊清單。 設定多個元件時,您必須為每個元件建立並套用個別的 YAML 檔案。

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

下一步

瞭解如何透過 Dapr 元件連線到 Azure 和外部服務。