You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure中为每个Pull Request创建独立唯一的预览部署

在Azure中实现PR专属预览部署的方案

方案一:利用Azure App Service部署槽(推荐)

这是最贴合现有Web App架构的方案,每个PR对应一个独立的部署槽,自动生成唯一子域名。

  • 开启部署槽功能
    登录Azure门户,进入你的Web App(appname-dev-preview),找到「部署槽」选项,启用该功能。

  • 修改Azure Pipeline配置

    1. 获取PR编号:Pipeline中可直接使用内置变量$(System.PullRequest.PullRequestId)获取当前触发的PR编号。
    2. 自动创建/选择部署槽:
      • 使用Azure Web App部署任务时,指定部署槽名称为pr-$(System.PullRequest.PullRequestId),部分任务支持自动创建不存在的槽;若不支持,可添加Azure CLI步骤提前创建:
        az webapp deployment slot create --name appname-dev-preview --resource-group <你的资源组名称> --slot pr-$(System.PullRequest.PullRequestId)
        
    3. 部署镜像到对应槽:
      在部署Docker镜像的步骤中,指定目标槽为pr-$(System.PullRequest.PullRequestId),同时给镜像打上PR编号的标签(如acr-name.azurecr.io/appname:pr-$(System.PullRequest.PullRequestId)),确保每个PR的镜像唯一。
    4. PR关闭后清理资源:
      创建一个由PR关闭事件触发的Pipeline,执行以下命令删除对应部署槽:
      az webapp deployment slot delete --name appname-dev-preview --resource-group <你的资源组名称> --slot pr-$(System.PullRequest.PullRequestId)
      
  • 预览URL格式:每个PR的预览地址为https://pr-<PR编号>.appname-dev-preview.azurewebsites.net,完全唯一且无需额外配置域名。

方案二:使用Azure Container Apps

如果希望完全隔离每个PR的运行环境,可以用Container Apps为每个PR创建独立实例。

  • 提前准备:创建一个Azure Container Apps环境,用于托管所有PR预览实例。
  • Pipeline配置:
    1. PR触发时,生成唯一实例名称:appname-pr-$(System.PullRequest.PullRequestId)。
    2. 使用Azure CLI创建Container App并部署镜像:
      az containerapp create --name appname-pr-$(System.PullRequest.PullRequestId) --resource-group <你的资源组名称> --environment <Container Apps环境名称> --image acr-name.azurecr.io/appname:pr-$(System.PullRequest.PullRequestId) --ingress external --target-port 3000
      
    3. PR关闭时,删除对应的Container App实例:
      az containerapp delete --name appname-pr-$(System.PullRequest.PullRequestId) --resource-group <你的资源组名称> --yes
      
  • 预览URL格式:默认生成https://appname-pr-<PR编号>.<环境后缀>.azurecontainerapps.io,也可绑定自定义子域名。

关键注意事项

  • 资源配额:部署槽或Container Apps实例会占用资源,需确保你的Azure订阅配额足够,同时通过清理步骤避免闲置资源浪费。
  • 变量权限:确保Pipeline服务主体拥有创建/删除部署槽或Container Apps的权限。
  • 测试集成:可在部署完成后,将预览URL传入E2E测试步骤,直接针对PR专属环境执行测试。

内容的提问来源于stack exchange,提问作者Ala Eddine Menai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 03:01:07