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

如何通过CI/CD(Bitbucket/Git)自动重启部署后的Azure Web App

Azure Web App部署Spring Boot后自动重启失效的解决方法

你当前的GitHub Actions配置存在两个关键问题,导致重启步骤失效:

  1. 重启步骤多余参数
    Restart-AzWebAppSlot动作不需要package参数,这个参数仅用于部署阶段,保留会引发不必要的错误,导致重启失败。

  2. 发布配置未正确引用
    publish-profile字段为空,需要填入存储在GitHub Secrets中的Azure Web App发布配置变量,比如${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}(需提前在仓库Secrets中添加该配置)。

修正后的完整YAML配置

name: Build and deploy JAR app to Azure Web App - sp-az-webapp

on:
  push:
    branches:
      - master
  workflow_dispatch:

jobs:
  build:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v4

      - name: Set up Java version
        uses: actions/setup-java@v1
        with:
          java-version: '17'

      - name: Build with Maven
        run: mvn clean install

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v3
        with:
          name: java-app
          path: '${{ github.workspace }}/target/*.jar'

  deploy:
    runs-on: windows-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v3
        with:
          name: java-app

      - name: Deploy to Azure Web App
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v2
        with:
          app-name: 'sp-az-webapp'
          slot-name: 'Production'
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
          package: '*.jar'
      - name: Restart Azure Web App
        id: restart-webapp
        uses: azure/Restart-AzWebAppSlot@v2
        with:
          app-name: 'sp-az-webapp'
          slot-name: 'Production'
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

备选方案:使用Azure CLI直接重启

如果上述Action仍失效,可改用Azure CLI命令执行重启,稳定性更高:
在部署步骤后添加以下步骤:

- name: Restart Azure Web App via CLI
        uses: azure/login@v1
        with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}
      - run: az webapp restart --name sp-az-webapp --slot Production --resource-group <你的资源组名称>

注意:需提前在GitHub Secrets中配置AZURE_CREDENTIALS(Azure服务主体凭据),并替换<你的资源组名称>为实际值。

额外检查项

  • 确认部署步骤的id: deploy-to-webapp输出正常,确保部署已成功完成再触发重启
  • 检查Azure Web App的日志流,查看重启步骤是否有报错信息,定位具体问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:35:02