Dapr 与 Azure 容器应用的集成

分散式应用程序运行时 (Dapr) 提供以附属进程形式运行的 API,可帮助你编写和实现简单、可移植、可复原且安全的微服务。 Dapr 作为抽象层与 Azure 容器应用协同工作,提供低维护、无服务器和可缩放的平台。 在容器应用 上启用 Dapr 将和应用程序代码一起创建辅助进程,从而简化通过 HTTP 或 gRPC 与 Dapr 的应用程序通信。

Azure 容器应用中的 Dapr

使用 启用了 Dapr 的容器应用为解决方案配置的 Dapr 组件和调用它们之间通信的 Dapr sidecar 为容器应用环境配置 Dapr。 下图展示了这些与 Azure 容器应用中的 Dapr 相关的核心概念。

Diagram demonstrating Dapr pub/sub 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 API

Azure 容器应用提供以下稳定 Dapr API(构建基块)的完全托管版本。 若要详细了解如何使用 alpha API 和功能,请参阅 Dapr 常见问题解答

Diagram that shows Dapr APIs.

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

限制

  • Dapr 配置规范:任何需要使用 Dapr 配置规范的功能。
  • Dapr 启用指南中未列出的任何 Dapr sidecar 注释
  • Alpha API 和组件:Azure 容器应用不保证 Dapr alpha API 和功能的可用性。 有关详细信息,请参阅 Dapr 常见问题解答
  • 执行组件提醒:要求 minReplicas 大于 1,以确保提醒始终处于活动状态并会正确触发。
  • 作业:作业不支持 Dapr。

后续步骤