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

启用scm-do-build-during-deployment后Azure Functions部署失败求助

解决Azure Functions + Playwright部署失败的方法

以下是针对启用scm-do-build-during-deployment后部署失败的具体排查和修复步骤:

  • 本地预构建Playwright依赖,关闭SCM端构建
    把Playwright的浏览器和依赖在GitHub Actions环境中提前安装好,避免Azure服务器端构建的兼容性问题:

    1. 修改GitHub Actions工作流里的依赖安装步骤,添加Playwright浏览器安装命令:
      pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
      npm install
      # 安装Playwright浏览器及系统依赖,这里以Chromium为例,可根据需求替换
      npx playwright install --with-deps chromium
      npm run build --if-present
      npm run test --if-present
      popd
      
    2. 将工作流中scm-do-build-during-deployment的值改为false,让GitHub Actions直接部署预构建完成的代码包。
  • 若坚持使用SCM端构建,补充Playwright构建配置
    如果必须在Azure服务器端完成构建,需确保构建环境能正确安装Playwright依赖:

    1. 在应用设置中添加PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=false,强制构建过程中下载浏览器二进制文件。
    2. 在项目的package.json中添加postinstall脚本,自动触发浏览器安装:
      "scripts": {
        "postinstall": "npx playwright install --with-deps"
      }
      
  • 检查.funcignore文件,避免误删Playwright资源
    确保.funcignore没有排除Playwright的浏览器文件:

    • 若文件中有**/node_modules/这类全局忽略规则,添加例外:!node_modules/.playwright/
    • 确认没有单独忽略node_modules/.playwright或浏览器相关目录。
  • 核对运行时版本一致性
    确保Azure Function App配置的Node.js版本(在门户的「配置」→「常规设置」中查看)与工作流里设置的NODE_VERSION="16.x"完全匹配,版本不一致可能导致依赖安装失败。

  • 查看日志定位具体错误
    从两个渠道获取详细错误信息:

    1. GitHub Actions工作流的「Run Azure Functions Action」步骤日志,看部署过程中是否有依赖安装或构建报错。
    2. Azure门户的「部署中心」→「日志」,或Kudu控制台的「部署选项」日志,找到具体失败环节(比如系统库缺失、权限问题等)。
  • 调整WEBSITE_RUN_FROM_PACKAGE配置

    • 如果是本地预构建后部署,建议将WEBSITE_RUN_FROM_PACKAGE设为1,使用zip包部署模式,避免文件传输过程中的遗漏。
    • 如果是SCM端构建,保持WEBSITE_RUN_FROM_PACKAGE=0,让服务器直接读取构建后的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:00:55