连接到 Azure 容器应用中的服务(预览版)

在 Azure 容器应用中开发应用程序时,通常需要连接到不同的服务。 你无需提前创建服务并将其手动连接到容器应用,而是可以快速创建开发级服务的实例,这些实例专为非生产环境设计,称为加载项。

借助加载项,无需手动下载、创建和配置,即可使用 OSS 服务。

准备好让应用使用生产级服务后,即可将你的应用连接到 Azure 托管服务。

以加载项的形式提供的服务包括:

标题 服务名称
Kafka kafka
MariaDB mariadb
Milvus milvus
PostgreSQL(开放源代码) postgres
Qdrant qdrant
Redis(开放源代码) redis
Weaviate weaviate

可以通过运行以下命令获取最新的加载项服务列表:

az containerapp add-on --help

请参阅有关如何管理服务的部分,了解使用说明。

功能

加载项提供下列功能:

  • 范围:加载项的运行环境与连接的容器应用相同。
  • 缩放:当不需要服务时,加载项可以缩小到零。
  • 定价:加载项计费低于基于消耗量的定价。 仅当加载项的实例正在运行时,才会计费。
  • 存储:加载项使用持久性存储来确保当加载项缩小到零时,不会丢失数据。
  • 修订:每次更改加载项时,都会创建容器应用新的修订版本。

请参阅托管服务的特定于服务的功能。

绑定

加载项和托管服务都通过绑定连接到容器。

容器应用运行时通过以下方式将容器应用绑定到服务:

  • 发现服务
  • 提取网络和连接配置值
  • 将配置和连接信息注入容器应用环境变量

建立绑定后,容器应用可以从环境变量中读取这些配置和连接值。

开发和生产

从开发迁移到生产环境时,可以从加载项迁移到托管服务。

下表显示了开发时使用的服务,以及生产时使用的服务。

功能 加载项 生产托管服务
缓存 开放源代码 Redis 用于 Redis 的 Azure 缓存
数据库 不可用 Azure Cosmos DB
数据库 开放源代码 PostgreSQL Azure Database for PostgreSQL 灵活服务器

你负责开发和生产环境之间的数据连续性。

管理服务

若要将服务连接到应用程序,首先需要创建服务。

使用具有服务类型和名称的 az containerapp add-on <SERVICE_TYPE> create 命令创建新服务。

az containerapp add-on redis create \
  --name myredis \
  --environment myenv

此命令会在名为“myenv”的容器应用环境中创建名为“myredis”的新 Redis 服务。

若要将服务绑定到应用程序,请使用 containerapp create--bind 参数。

az containerapp create \
  --name myapp \
  --image myimage \
  --bind myredis \
  --environment myenv

此命令会使用 --bind 参数展示典型的容器应用 create。 绑定参数会告知容器应用运行时将服务连接到应用程序。

--bind 参数可用于 createupdate 命令。

若要断开服务与应用程序的连接,请使用 update 命令上的 --unbind 参数

下面的示例展示了如何取消绑定服务。

az containerapp update --name myapp --unbind myredis

有关连接到服务的完整教程,请参阅在 Azure 容器应用中连接服务

有关服务命令和参数的详细信息,请参阅 az containerapp 参考。

限制

  • 加载项为公共预览版。
  • 2023 年 5 月 23 日之前创建的任何容器应用都不符合使用加载项的条件。
  • 加载项提供最少的保证。 例如,如果崩溃,它们会自动重启,但是不保证与它们关联的正式服务质量或高可用性。 对于生产工作负荷,请使用 Azure 托管服务。
  • 如果使用自己的 VNET,则必须使用一个工作负荷配置文件环境。 使用自定义 VNET 的仅消耗环境不支持加载项功能。

后续步骤