了解 Dapr 与 Azure 容器应用的集成

已完成

分散式应用程序运行时 (Dapr) 是一组可逐步采用的功能,用于简化基于微服务的分散式应用程序的创作。 Dapr 提供了用于启用应用程序相互通信(通过发布/订阅进行的消息传递或可靠且安全的服务到服务调用)的功能。

Dapr 是一个开放源代码的云原生计算基金会 (CNCF) 项目。 CNCF 隶属于 Linux 基金会,为快速增长的云原生项目提供支持、监督和方向。 作为自行部署和管理 Dapr OSS 项目的替代方法,容器应用平台应:

  • 提供托管和支持的 Dapr 集成
  • 无缝处理 Dapr 版本升级
  • 公开简化的 Dapr 交互模型,提高开发人员工作效率

Dapr API

装饰性屏幕截图。

Dapr API 说明
服务到服务调用 发现服务并执行可靠、直接的服务到服务调用(带有自动 mTLS 身份验证和加密)。
状态管理 为事务和 CRUD 操作提供状态管理功能。
发布/订阅 允许发布方和订阅方容器应用通过中间消息代理相互通信。
绑定 基于事件触发应用程序
执行组件 Dapr 执行组件是消息驱动的单线程工作单元,旨在快速缩放。 例如,在突发密集型工作负载情况下。
可观察性 将跟踪信息发送到 Application Insights 后端。
机密 从应用程序代码访问机密或引用 Dapr 组件中的安全值。
配置 为支持的配置存储检索并订阅应用程序配置项目。

注意

该表包括稳定的 Dapr API。 若要详细了解如何使用 alpha API 和功能,请访问限制

Dapr 核心概念

以下示例基于发布/订阅 API,用于演示与 Azure 容器应用中的 Dapr 相关的核心概念。

显示 Dapr 发布/订阅 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 启用

可以根据运行时上下文使用各种参数和注释配置 Dapr。 Azure 容器应用提供了三种可以配置 Dapr 的通道:

  • 容器应用 CLI
  • 基础结构即代码 (IaC) 模板,如 Bicep 或 Azure 资源管理器 (ARM) 模板
  • Azure 门户

Dapr 组件和范围

Dapr 使用模块化设计,将功能作为组件交付。 可以选择使用 Dapr 组件,这完全取决于应用程序的需求。

容器应用中的 Dapr 组件为环境级别资源:

  • 可以提供可插入的抽象模型,用于连接到支持的外部服务。
  • 可以跨容器应用共享,也可以将范围限定在特定的容器应用之间。
  • 可以使用 Dapr 机密安全地检索配置元数据。

默认情况下,同一环境中所有已启用 Dapr 的容器应用都将加载完整的一组已部署组件。 为了确保组件在运行时仅由适当的容器应用加载,应使用应用程序范围。