Dapr 與 Azure 容器應用程式整合
分散式應用程式執行階段 (Dapr) 提供 API,以 Sidecar的形式執行,可協助您撰寫和實作簡單、可攜式、具復原性且安全的微服務。 Dapr 會與 Azure 容器應用程式一起作為抽象層運作,以提供低維護、無伺服器且可調整的平台。 在容器應用程式上啟用 Dapr 會與應用程式程式碼一起建立次要程序,以簡化應用程式透過 HTTP 或 gRPC 與 Dapr 的相互通訊。
Azure 容器應用程式中的 Dapr
使用已啟用 Dapr 的容器應用程式、針對解決方案設定的 Dapr 元件,以及叫用兩者之間通訊的 Dapr Sidecar,為您的容器應用程式環境設定 Dapr。 下圖示範這些與 Azure 容器應用程式中 Dapr 相關的核心概念。
標籤 | 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 常見問題。
API | 狀態 | 描述 |
---|---|---|
服務對服務叫用 | GA | 探索服務,並使用自動 mTLS 驗證和加密來執行可靠、直接的服務對服務呼叫。 請參閱 Azure 容器應用程式中 Dapr 服務叫用的已知限制。 |
狀態管理 | GA | 提供交易和 CRUD 作業的狀態管理功能。 |
發行/訂閱 | GA | 允許發行者和訂閱者容器應用程式透過中繼訊息代理程式進行互通。 您也可以使用外部元件 JSON 檔案,建立主題的宣告式訂閱。 深入了解宣告式 pub/sub API。 |
繫結 | GA | 根據事件觸發您的應用程式 |
執行者 | GA | Dapr 執行者是訊息驅動型的單一執行緒工作單位,專為快速調整而設計。 例如,在高載工作負載的情況下。 |
可檢視性 | GA | 將追蹤資訊傳送至 Application Insights 後端。 |
密碼 | GA | 從應用程式程式碼存取祕密,或參考 Dapr 元件中的安全值。 |
Configuration | GA | 擷取並訂閱支援組態存放區的應用程式設定項目。 |
第 1 層與第 2 層元件
支援 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 |
祕密管理 | Azure Key Vault | secrets.azure.keyvault |
第 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 |
configuration.postgresql configuration.redis |
工具
Azure Container Apps 可確保與 Dapr 開放原始碼 工具的相容性,例如 SDK 和 CLI。
限制
- Dapr 設定規格:任何需要使用 Dapr 設定規格的功能。
- Dapr 啟用指南中未列出的任何 Dapr Sidecar 註釋
- API 和元件支援:Azure Container Apps 僅支援本文中列為 GA、第 1 層或第 2 層的 Dapr API 和元件。
- 動作項目提醒:要求 1+ 的 minReplicas,以確保提醒一律處於作用中並正確引發。
- 作業:作業不支援 Dapr。
後續步驟
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應