你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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、组件和工具
托管 API
Azure 容器应用提供托管的正式版 Dapr API(构建基块)。 这些 API 是完全托管的,支持在生产环境中使用。
若要详细了解如何使用 alpha Dapr API 和功能,请参阅 Dapr 常见问题解答。
API | 状态 | 说明 |
---|---|---|
服务到服务调用 | GA | 发现服务并执行可靠、直接的服务到服务调用(带有自动 mTLS 身份验证和加密)。 请参阅 Azure 容器应用中 Dapr 服务调用的已知限制。 |
状态管理 | GA | 为事务和 CRUD 操作提供状态管理功能。 |
发布/订阅 | GA | 允许发布方和订阅方容器应用通过中间消息代理相互通信。 还可以使用外部组件 JSON 文件创建针对某个主题的声明性订阅。 详细了解声明性发布/订阅 API。 |
绑定 | GA | 基于事件触发应用程序 |
执行组件 | GA | Dapr 执行组件是消息驱动的单线程工作单元,旨在快速缩放。 例如,在突发密集型工作负载情况下。 |
可观察性 | GA | 将跟踪信息发送到 Application Insights 后端。 |
机密 | GA | 从应用程序代码访问机密或引用 Dapr 组件中的安全值。 |
配置 | GA | 为支持的配置存储检索并订阅应用程序配置项目。 |
第 1 层与第 2 层组件
支持 Dapr 组件的子集。 在该子集中,Dapr 组件分为两个支持类别:第 1 层或第 2 层。
- 第 1 层组件: 稳定组件,这些组件在关键(安全或严重回归)方案中立即接受调查。 否则,Microsoft 会与开放源代码协作,以在修补程序或下一个常规版本中加以解决。
- 第 2 层组件: 优先级较低的组件,因为它们不处于稳定状态或由第三方提供商进行调查。
第 1 层组件
API | 组件 | 类型 |
---|---|---|
状态管理 | Azure blob 存储 v1 Azure 表存储 Microsoft SQL Server |
state.azure.blobstorage state.azure.tablestorage state.sqlserver |
发布和订阅 | Azure 服务总线队列 Azure 服务总线主题 Azure 事件中心 |
pubsub.azure.servicebus.queues pubsub.azure.servicebus.topics pubsub.azure.eventhubs |
Binding | Azure 存储队列 Azure 服务总线队列 Azure Blob 存储 Azure 事件中心 |
bindings.azure.storagequeues bindings.azure.servicebusqueues bindings.azure.blobstorage bindings.azure.eventhubs |
机密管理 | Azure Key Vault | secrets.azure.keyvault |
第 2 层组件
API | 组件 | 类型 |
---|---|---|
状态管理 | Azure Cosmos DB PostgreSQL MySQL & MariaDB Redis |
state.azure.cosmosdb state.postgresql state.mysql state.redis |
发布和订阅 | Apache Kafka Redis Streams |
pubsub.kafka pubsub.redis |
Binding | Azure 事件网格 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 |
工具
Azure 容器应用确保与 Dapr 开源工具(例如 SDK 和 CLI)兼容。
限制
- Dapr 配置规范:任何需要使用 Dapr 配置规范的功能。
- Dapr 启用指南中未列出的任何 Dapr sidecar 注释
- API 和组件支持:Azure 容器应用中只支持在本文中列为 GA、层级 1 或层级 2 的 Dapr API 和组件。
- 执行组件提醒:要求 minReplicas 大于 1,以确保提醒始终处于活动状态并会正确触发。
- 作业:作业不支持 Dapr。