如何通过CI/CD(Bitbucket/Git)自动重启部署后的Azure Web App
Azure Web App部署Spring Boot后自动重启失效的解决方法
你当前的GitHub Actions配置存在两个关键问题,导致重启步骤失效:
重启步骤多余参数
Restart-AzWebAppSlot动作不需要package参数,这个参数仅用于部署阶段,保留会引发不必要的错误,导致重启失败。发布配置未正确引用
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
相关产品推荐
相关产品推荐

