探索 Dapr 與 Azure 容器應用程式的整合

已完成

分散式應用程式執行階段 (Dapr) 是一組可累加採用的功能,其可簡化分散式微服務型應用程式的撰寫。 Dapr 提供了啟用應用程式相互通訊的功能,透過發行/訂閱或是可靠且安全的服務對服務呼叫傳訊。

Dapr 是一個開放原始碼,雲端原生運算基礎 (CNCF) 專案。 CNCF 是 Linux 基礎的一部分,為快速成長的雲端原生專案提供支援、監督和方向。 除了自行部署和管理 Dapr OSS 專案,還有容器應用程式平台:

  • 提供受控和支援的 Dapr 整合
  • 順暢地處理 Dapr 版本升級
  • 公開簡化的 Dapr 互動模型,以提高開發人員生產力

Dapr API

Decorative

Dapr API 描述
服務對服務叫用 探索服務,並使用自動 mTLS 驗證和加密來執行可靠、直接的服務對服務呼叫。
狀態管理 提供交易和 CRUD 作業的狀態管理功能。
發行/訂閱 允許發行者和訂閱者容器應用程式透過中繼訊息代理程式進行互通。
繫結 根據事件觸發您的應用程式
執行者 Dapr 執行者是訊息驅動型的單一執行緒工作單位,專為快速調整而設計。 例如,在高載工作負載的情況下。
可檢視性 將追蹤資訊傳送至 Application Insights 後端。
密碼 從應用程式程式碼存取祕密,或參考 Dapr 元件中的安全值。

注意

資料表涵蓋穩定的 Dapr API。 若要深入了解使用 Alpha API 和功能的詳細資訊,請瀏覽限制

Dapr 核心概念

下列以發行/訂閱 API 為基礎的範例是用來說明 Azure 容器應用程式中與 Dapr 相關的核心概念。

Diagram that shows the Dapr pub/sub A P I and how it works in Container Apps.

Label 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 啟動

您可以根據執行階段內容,使用各種引數和註釋來設定 Dapr。 Azure 容器應用程式提供三個通道,可讓您設定 Dapr:

  • 容器應用程式 CLI
  • 基礎結構即程式碼 (IaC) 範本,如 Bicep 或 Azure Resource Manager(ARM) 範本所示
  • Azure 入口網站

Dapr 元件和範圍

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

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

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

根據預設,相同環境中所有已啟用 Dapr 的容器應用程式都會載入一組完整的已部署元件。 為了確保元件只由適當的容器應用程式在執行階段時載入,應使用應用程式範圍。