Azure Container Apps部署时如何设置修订版权重,避免自动全量引流
解决Azure Container Apps部署时保留原有流量分配的方法
要实现部署新修订版时不自动切换流量、保持原有分配,直到手动调整,你可以通过修改az containerapp update命令的参数来实现:
核心逻辑
默认情况下,az containerapp update更新镜像时会自动创建新修订版并将其设为100%流量接收方。我们需要通过参数控制,让新修订版仅完成创建但不分配任何流量,原有流量规则完全保留。
部署新修订版的命令
执行az containerapp update时添加两个关键参数:
--revision-suffix:为新修订版指定唯一标识(比如结合流水线构建号,确保每个版本可区分)--no-traffic:告知Azure不为该新修订版分配任何流量
示例命令:
az containerapp update \ --name your-container-app-name \ --resource-group your-resource-group-name \ --image your-new-image-tag \ --revision-suffix build-$(Build.BuildId) \ --no-traffic
注:
$(Build.BuildId)是Azure Pipelines内置变量,用于获取当前流水线构建号,你可以替换为适合场景的唯一标识。
执行该命令后,新修订版会成功创建,但用户请求仍会按原有流量分配路由到旧版本。
手动切换流量的命令
当验证新修订版无误后,可通过az containerapp traffic set命令手动调整流量分配:
渐进式切换示例(50%流量到新修订版)
az containerapp traffic set \ --name your-container-app-name \ --resource-group your-resource-group-name \ --revision old-revision-name=50 new-revision-name=50
全量切换示例(100%流量到新修订版)
az containerapp traffic set \ --name your-container-app-name \ --resource-group your-resource-group-name \ --revision new-revision-name=100
你可以通过az containerapp revision list命令查看所有可用的修订版名称,确保流量分配目标准确。
内容的提问来源于stack exchange,提问作者Isparia
相关产品推荐
相关产品推荐

