Komponen Dapr di Azure Container Apps

Distributed Application Runtime (Dapr) menggunakan desain modular tempat fungsionalitas dikirimkan sebagai komponen. Penggunaan komponen Dapr bersifat opsional dan ditentukan oleh kebutuhan aplikasi Anda.

Komponen Dapr dalam aplikasi kontainer adalah sumber daya tingkat lingkungan yang:

  • Dapat menyediakan model abstraksi yang dapat dicolokkan untuk menyambungkan ke layanan eksternal pendukung.
  • Dapat dibagikan di seluruh aplikasi kontainer atau dilingkup ke aplikasi kontainer tertentu.
  • Dapat menggunakan rahasia Dapr untuk mengambil metadata konfigurasi dengan aman.

Dalam panduan ini, Anda mempelajari cara mengonfigurasi komponen Dapr untuk layanan Azure Container Apps Anda.

Skema komponen

Dalam proyek sumber terbuka Dapr, semua komponen sesuai dengan skema dasar berikut.

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]

Dalam Azure Container Apps, skema ini sedikit disederhanakan untuk mendukung komponen Dapr. Versi yang disederhanakan menghapus bidang yang tidak diperlukan, termasuk apiVersion, kind, serta properti metadata dan spesifikasi yang redundan.

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

Cakupan komponen

Secara default, semua aplikasi kontainer berkemampuan Dapr di lingkungan yang sama memuat set lengkap komponen yang disebarkan. Untuk memastikan bahwa hanya aplikasi kontainer yang sesuai yang memuat komponen saat berjalan, Anda harus menggunakan cakupan aplikasi. Dalam contoh berikut, komponen hanya dimuat oleh dua aplikasi kontainer dengan dukungan Dapr dengan ID APP-ID-1 aplikasi Dapr dan 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]

Catatan

Cakupan komponen Dapr memberikan langkah-langkah keamanan yang lebih baik dan sesuai dengan ID aplikasi Dapr dari aplikasi kontainer, bukan nama aplikasi kontainer.

Contoh komponen

Untuk membuat komponen Dapr dengan menggunakan Container Apps CLI, Anda dapat menggunakan berkas konfigurasi YAML untuk aplikasi kontainer. Saat Anda mengonfigurasi beberapa komponen, buat dan terapkan file YAML terpisah untuk setiap komponen.

az containerapp env dapr-component set --name <your-environment-name> --resource-group <your-resource-group> --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

Langkah selanjutnya