Dapr 与 Azure 容器应用的集成
分散式应用程序运行时 (Dapr) 提供以附属进程形式运行的 API,可帮助你编写和实现简单、可移植、可复原且安全的微服务。 Dapr 作为抽象层与 Azure 容器应用协同工作,提供低维护、无服务器和可缩放的平台。 在容器应用 上启用 Dapr 将和应用程序代码一起创建辅助进程,从而简化通过 HTTP 或 gRPC 与 Dapr 的应用程序通信。
Azure 容器应用中的 Dapr
使用 启用了 Dapr 的容器应用、为解决方案配置的 Dapr 组件和调用它们之间通信的 Dapr sidecar 为容器应用环境配置 Dapr。 下图展示了这些与 Azure 容器应用中的 Dapr 相关的核心概念。
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 常见问题解答。
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。