连接到 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
参数可用于 create
或 update
命令。
若要断开服务与应用程序的连接,请使用 update
命令上的 --unbind
参数
下面的示例展示了如何取消绑定服务。
az containerapp update --name myapp --unbind myredis
有关连接到服务的完整教程,请参阅在 Azure 容器应用中连接服务。
有关服务命令和参数的详细信息,请参阅 az containerapp
参考。
限制
- 加载项为公共预览版。
- 2023 年 5 月 23 日之前创建的任何容器应用都不符合使用加载项的条件。
- 加载项提供最少的保证。 例如,如果崩溃,它们会自动重启,但是不保证与它们关联的正式服务质量或高可用性。 对于生产工作负荷,请使用 Azure 托管服务。
- 如果使用自己的 VNET,则必须使用一个工作负荷配置文件环境。 使用自定义 VNET 的仅消耗环境不支持加载项功能。