Share via


Dapr 與 Azure Container Apps 整合

分散式應用程式運行時間 (Dapr) 提供 API,以側車程式的形式執行,可協助您撰寫及實作簡單、可攜式、彈性且安全的微服務。 Dapr 會與 Azure Container Apps 一起運作為抽象層,以提供低維護、無伺服器且可調整的平臺。 在您的容器應用程式 上啟用 Dapr 會與應用程式程式代碼一起建立次要程式,以簡化透過 HTTP 或 gRPC 與 Dapr 的應用程式通訊。

Azure Container Apps 中的 Dapr

使用已啟用 Dapr 的容器應用程式、針對解決方案設定的 Dapr 元件,以及叫用兩者之間通訊的 Dapr Sidecar,為您的容器應用程式環境設定 Dapr。 下圖示範這些與 Azure Container Apps 中 Dapr 相關的核心概念。

示範 Dapr pub/sub 及其在容器應用程式中運作方式的圖表。

標籤 Dapr 設定 描述
1 已啟用 Dapr 的容器應用程式 透過設定一組 Dapr 引數,在容器應用程式層級啟用 Dapr。 在多個修訂模式下執行時,這些值會套用至指定容器應用程式的所有修訂。
2 Dapr 完全受控的 Dapr API 會透過 Dapr Sidecar 向每個容器應用程式公開。 您可以透過 HTTP 或 gRPC 從容器應用程式叫用 Dapr API。 Dapr Sidecar 會在 HTTP 連接埠 3500 和 gRPC 連接埠 50001 上執行。
3 Dapr 元件設定 Dapr 使用模組化設計,其中功能會以元件的形式提供。 Dapr 元件可以跨多個容器應用程式共用。 範圍陣列中提供的 Dapr 應用程式識別碼會指定哪些已啟用 Dapr 的容器應用程式會在執行階段載入指定的元件。

支援的 Dapr API、元件和工具

受控 API

Azure Container Apps 提供受控正式運作的 Dapr API(建置組塊)。 這些 API 完全受控並支援在生產環境中使用。

若要深入瞭解如何使用 Alpha Dapr API 和功能, 請參閱 Dapr 常見問題

顯示 Dapr API 的圖表。

API 狀態 描述
服務對服務叫用 GA 探索服務,並使用自動 mTLS 驗證和加密來執行可靠、直接的服務對服務呼叫。 請參閱 Azure Container Apps 中 Dapr 服務調用的已知限制。
狀態管理 GA 提供交易和 CRUD 作業的狀態管理功能。
發行/訂閱 GA 允許發行者和訂閱者容器應用程式透過中繼訊息代理程式進行互通。 您也可以使用外部元件 JSON 檔案來建立主題的宣告式訂閱。 深入瞭解宣告式發行/子 API。
繫結 GA 根據事件觸發您的應用程式
執行者 GA Dapr 執行者是訊息驅動型的單一執行緒工作單位,專為快速調整而設計。 例如,在高載工作負載的情況下。
可檢視性 GA 將追蹤資訊傳送至 Application Insights 後端。
密碼 GA 從應用程式程式碼存取祕密,或參考 Dapr 元件中的安全值。
Configuration GA 擷取並訂閱支援組態存放區的應用程式組態專案。

第 1 層與第 2 層元件

AKS 和已啟用 Arc 的 Kubernetes 的 Dapr 擴充功能支援 Dapr 元件的子集。 在該子集內,Dapr 元件分成兩個支持類別:第 1 層或第 2 層。

  • 第 1 層元件: 在重大(安全性或嚴重回歸)案例中立即接受調查的穩定元件。 否則,Microsoft 會與 開放原始碼 共同作業,以在 Hotfix 或下一個一般版本中尋址。
  • 第 2 層元件: 在較不優先的優先順序上調查的元件,因為它們狀態不穩定,或與第三方提供者一起調查。
第 1 層元件
API 元件 類型
狀態管理 Azure Blob 儲存體 v1
Azure 資料表儲存體
Microsoft SQL Server
state.azure.blobstorage
state.azure.tablestorage
state.sqlserver
發佈與訂閱 Azure 服務匯流排佇列
Azure 服務匯流排主題
Azure 事件中樞
pubsub.azure.servicebus.queues
pubsub.azure.servicebus.topics
pubsub.azure.eventhubs
繫結 Azure 儲存體佇列
Azure 服務匯流排佇列
Azure Blob 儲存體
Azure 事件中樞
bindings.azure.storagequeues
bindings.azure.servicebusqueues
bindings.azure.blobstorage
bindings.azure.eventhubs
第 2 層元件
API 元件 類型
狀態管理 Azure Cosmos DB
PostgreSQL
MySQL 和 MariaDB
Redis
state.azure.cosmosdb
state.postgresql
state.mysql
state.redis
發佈與訂閱 Apache Kafka
Redis Streams
pubsub.kafka
pubsub.redis
繫結 事件格線
Azure Cosmos DB
Apache Kafka
PostgreSQL
Redis
Cron
bindings.azure.eventgrid
bindings.azure.cosmosdb
bindings.kafka
bindings.postgresql
bindings.redis
bindings.cron
組態 PostgreSQL
Redis
bindings.postgresql
bindings.redis

工具

Azure Container Apps 可確保與 Dapr 開放原始碼 工具的相容性,例如 SDK 和 CLI。

限制

  • Dapr 組態規格:任何需要使用 Dapr 組態規格的功能。
  • 未列在 Dapr 啟用指南中的任何 Dapr 側車註釋
  • API 和元件支援:Azure Container Apps 僅支援本文中列為 GA、第 1 層或第 2 層的 Dapr API 和元件
  • 動作專案提醒:需要 1+ 的 minReplicas,以確保提醒一律為作用中且正確引發。
  • 作業:作業不支援Dapr。

後續步驟