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

Azure Function通过GitHub Action部署失败求助

解决Azure Functions GitHub Action部署失败(404/405错误)的建议

以下是针对你遇到的部署错误的具体解决步骤:

  • 验证发布配置文件有效性
    确保从Azure Portal下载的是目标Function App的完整发布配置文件,没有遗漏或格式错误;同时检查GitHub仓库的AZURE_FUNCTIONAPP_PUBLISH_PROFILE Secret是否完整粘贴,无换行、截断或多余字符。

  • 核对Function App名称与路径
    确认env中的AZURE_FUNCTIONAPP_NAME与Azure上的Function App名称完全一致(注意虽然Azure资源名称不区分大小写,但完全匹配可避免潜在问题);验证AZURE_FUNCTIONAPP_PACKAGE_PATH指向的azure-function目录确实存在于仓库根目录,且包含Function App的核心文件(如function.json、package.json)。

  • 升级Azure Functions Action版本
    你当前使用的Azure/functions-action@v1.5.1版本较旧,对Node.js 20的兼容性有限,建议升级到最新稳定版(如v4),新版本修复了大量部署相关的bug:

    - name: 'Run Azure Functions Action'
      uses: Azure/functions-action@v4
      id: fa
      with:
        app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
        package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
        publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
    
  • 切换运行环境为Ubuntu
    将runs-on从windows-latest改为ubuntu-latest,避免Windows环境下的路径或Shell兼容性问题,同时修改依赖安装步骤的Shell为bash:

    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        environment: dev
        steps:
          # ...其他步骤
          - name: 'Resolve Project Dependencies Using Npm'
            shell: bash
            run: |
              cd "./${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}"
              npm install
              npm run build --if-present
              npm run test --if-present
    
  • 手动配置应用设置
    由于Action自动设置SCM_DO_BUILD_DURING_DEPLOYMENT和ENABLE_ORYX_BUILD返回405错误,可直接在Azure Portal的Function App「配置」-「应用设置」中添加这两个项,值设为false;也可在Action中通过app-settings-json参数显式指定,跳过自动设置逻辑:

    - name: 'Run Azure Functions Action'
      uses: Azure/functions-action@v4
      id: fa
      with:
        app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
        package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
        publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
        app-settings-json: '{"SCM_DO_BUILD_DURING_DEPLOYMENT": false, "ENABLE_ORYX_BUILD": false}'
    
  • 检查Kudu站点可用性
    手动访问https://<你的Function App名称>.scm.azurewebsites.net,使用发布配置文件中的凭据登录,确认Kudu站点可正常访问,无防火墙或权限限制。

内容的提问来源于stack exchange,提问作者Michael S. Scherotter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:10:01