由 Dapr 提供支援的微服務 API
Azure 容器應用程式提供由分散式應用程式執行階段 (Dapr) 提供支援的 API,可協助您撰寫及實作簡單、可攜式、具復原性且安全的微服務。 Dapr 會與 Azure 容器應用程式一起作為抽象層運作,以提供低維護且可調整的平台。 Azure 容器應用程式提供了一系列完全受控的 Dapr API、元件和功能,專門針對微服務案例。 只需在您的容器應用程式環境中照常啟用和設定 Dapr。
微服務 API 如何與您的容器應用程式搭配使用
使用已啟用 Dapr 的容器應用程式、針對解決方案設定的 Dapr 元件,以及叫用兩者之間通訊的 Dapr Sidecar,為您的容器應用程式環境設定微服務 API。 下圖使用 pub/sub API 作為範例示範了這些核心概念。
標籤 | 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 容器應用程式提供受控正式發行的 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 | 擷取並訂閱支援組態存放區的應用程式設定項目。 |
相容的 SDK
Dapr 的最新用戶端 SDK 套件與 Azure Container Apps 相容。 您可以使用任何 支援的 GA Dapr API 搭配下列 Dapr 用戶端 SDK 版本:
語言 | SDK 版本 |
---|---|
Java | 1.12.0 |
Go | 1.11.0 |
Python | 1.14.0 |
.NET | 1.14.0 |
JavaScript | 3.3.1 |
Rust | 0.15.1 |
注意
目前,Dapr 伺服器擴充功能、動作專案和工作流程 SDK 套件與 Azure Container Apps 不相容。 深入瞭解所有 Dapr SDK 套件。
第 1 層與第 2 層元件
支援 Dapr 元件的子集。 在該子集內,Dapr 元件分成兩個支援類別:第 1 層或第 2 層。
- 第 1 層元件: 在重大 (安全性或嚴重迴歸) 案例中立即接受調查的穩定元件。 否則,Microsoft 會與開放原始碼共同作業,以在 Hotfix 或下一個一般版本中解決問題。
- 第 2 層元件: 以較低優先順序進行調查的元件,因為其狀態不穩定,或來自第三方提供者。
第 1 層元件
API | 元件 | 類型 |
---|---|---|
狀態管理 | Azure Cosmos DB Azure Blob 儲存體 v1 Azure 資料表儲存體 Microsoft SQL Server |
state.azure.cosmosdb 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 | secretstores.azure.keyvault |
第 2 層元件
API | 元件 | 類型 |
---|---|---|
狀態管理 | PostgreSQL MySQL & MariaDB Redis |
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 |
Tooling
Azure 容器應用程式可確保與 Dapr 開放原始碼工具的相容性,例如 SDK 和 CLI。
限制
- Dapr 設定規格:任何需要使用 Dapr 設定規格的功能。
- Dapr 啟用指南中未列出的任何 Dapr Sidecar 註釋
- API 和元件支援:Azure 容器應用程式僅支援本文中列為 GA、第 1 層或第 2 層的 Dapr API 和元件。
- 動作項目提醒:要求 1+ 的 minReplicas,以確保提醒一律處於作用中並正確引發。
- 作業:作業不支援 Dapr。