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

如何在代码推送至Bitbucket时构建部署Azure Batch应用包?

实现Bitbucket推送触发Azure Batch应用包自动构建部署

绝对可以实现!虽然Azure Batch不像Azure Functions那样有现成的一键部署触发器,但结合Bitbucket Pipelines和Azure CLI,完全能搭出一套体验类似的自动构建部署流程。我来给你一步步拆解怎么弄:

前置准备

  • 你得先有Azure Batch账户和对应的存储账户(Batch应用包必须存在存储账户里)
  • Bitbucket仓库里已经存好了你的Batch应用代码(不管是Python脚本、Java程序还是Shell工具都行)
  • 准备一个Azure服务主体(Service Principal),得给它分配Batch账户和存储账户的操作权限,这样后续Pipeline才能有权限操作Azure资源

配置Bitbucket仓库变量

打开你的Bitbucket仓库,进入「Settings」→「Repository variables」,添加这些变量(把占位符换成你自己的实际值):

  • AZURE_CLIENT_ID: 服务主体的客户端ID
  • AZURE_CLIENT_SECRET: 服务主体的客户端密钥
  • AZURE_TENANT_ID: Azure租户ID
  • AZURE_BATCH_ACCOUNT_NAME: 你的Batch账户名称
  • AZURE_BATCH_ACCOUNT_RESOURCE_GROUP: Batch账户所在的资源组名称
  • AZURE_STORAGE_ACCOUNT_NAME: 和Batch关联的存储账户名称
  • BATCH_APP_ID: 你要部署的Batch应用的ID(比如my-data-processing-app)

编写Bitbucket Pipelines配置文件

在仓库根目录新建一个bitbucket-pipelines.yml文件,把下面的代码粘进去,然后根据你的应用类型调整构建步骤:

# 使用Azure CLI官方镜像,自带所有需要的工具
image: mcr.microsoft.com/azure-cli:latest

pipelines:
  default:
    - step:
        name: 构建并部署Azure Batch应用包
        script:
          # 第一步:用服务主体登录Azure
          - az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_ID
          
          # 第二步:构建应用包(这里以Python项目为例,换成你的应用构建逻辑)
          - mkdir -p ./build
          - cp -r ./src/* ./build/  # 把源码目录的内容复制到构建目录
          - cd ./build && zip -r ../batch-app-package.zip .  # 打包成zip包
          
          # 第三步:上传包到存储账户的指定容器
          # 注意:确保存储账户里已经创建了名为batch-app-packages的容器,或者修改这里的容器名
          - az storage blob upload --account-name $AZURE_STORAGE_ACCOUNT_NAME --container-name batch-app-packages --name $BATCH_APP_ID/$(git rev-parse --short HEAD).zip --file ./batch-app-package.zip --auth-mode login
          
          # 第四步:获取刚上传的Blob的URL,用来创建Batch应用版本
          - BLOB_URL=$(az storage blob url --account-name $AZURE_STORAGE_ACCOUNT_NAME --container-name batch-app-packages --name $BATCH_APP_ID/$(git rev-parse --short HEAD).zip --auth-mode login -o tsv)
          
          # 第五步:在Batch账户里创建新的应用版本
          - az batch application package create --application-id $BATCH_APP_ID --version $(git rev-parse --short HEAD) --storage-url $BLOB_URL --account-name $AZURE_BATCH_ACCOUNT_NAME --resource-group $AZURE_BATCH_ACCOUNT_RESOURCE_GROUP
          
          # 可选:把新版本设为应用的默认版本,后续任务就能直接用这个版本
          - az batch application set --application-id $BATCH_APP_ID --default-version $(git rev-parse --short HEAD) --account-name $AZURE_BATCH_ACCOUNT_NAME --resource-group $AZURE_BATCH_ACCOUNT_RESOURCE_GROUP

几个关键细节要注意

  • 构建步骤适配: 上面的例子是打包Python源码,如果你是编译型语言(比如C#、Java),得在脚本里加编译命令,比如dotnet build --configuration Release或者mvn package,再把编译后的产物打包。
  • 版本号策略: 我这里用了Git短提交哈希作为版本号,比时间戳更直观,能直接对应到具体的代码提交;你也可以换成时间戳$(date +%Y%m%d%H%M%S),看你偏好。
  • 权限检查: 服务主体一定要有Batch Account Contributor和Storage Blob Data Contributor这两个角色,不然会出现权限不足的错误。
  • 存储容器: 提前在存储账户里创建好batch-app-packages容器,或者修改脚本里的容器名称为你已有的容器。

验证流程

  1. 把代码推送到Bitbucket仓库,然后进入仓库的「Pipelines」页面,就能看到流程正在执行
  2. 执行完成后,登录Azure Portal,打开你的Batch账户,进入「Applications」,就能看到新的应用版本已经添加进来了;如果设置了默认版本,默认版本也会更新

这样一来,每次你往Bitbucket推送代码,这套流程就会自动完成构建、上传、部署Batch应用包的操作,和Azure Functions的自动部署体验几乎一致。

内容的提问来源于stack exchange,提问作者vasjko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:09:31