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

如何通过GitHub Actions更规范部署Python Playwright Chromium到Azure函数应用?

规范部署Python Playwright Chromium到Azure函数应用的方案

核心优化思路

直接让Playwright在构建阶段将浏览器安装到Azure函数识别的依赖缓存目录,替代手动复制的不规范操作,同时简化运行时的路径配置逻辑。

步骤1:配置GitHub Actions构建流程

通过设置PLAYWRIGHT_BROWSERS_PATH环境变量,让playwright install命令直接把Chromium安装到.python_packages/cache/ms-playwright目录,无需后续手动复制:

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: 配置Python环境
        uses: actions/setup-python@v5
        with:
          python-version: '3.11' # 需匹配Azure函数使用的Python版本
          
      - name: 安装项目依赖
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
          
      - name: 将Chromium安装到目标目录
        env:
          PLAYWRIGHT_BROWSERS_PATH: .python_packages/cache/ms-playwright
        run: |
          playwright install chromium

步骤2:简化运行时浏览器启动配置

无需手动指定executable_path,只需在Azure函数应用中配置环境变量,让Playwright自动识别浏览器路径:

  • 进入Azure门户 -> 目标函数应用 -> 配置 -> 应用程序设置
  • 添加配置项:键为PLAYWRIGHT_BROWSERS_PATH,值根据函数运行环境选择:
    • Windows环境:D:\home\site\wwwroot\.python_packages\cache\ms-playwright
    • Linux环境:/home/site/wwwroot/.python_packages/cache/ms-playwright

之后代码中直接启动浏览器即可:

from playwright.sync_api import sync_playwright

def main(req):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        # 执行你的业务逻辑
        browser.close()

最佳实践建议

  • 版本锁定:在requirements.txt中指定Playwright的固定版本,避免构建与运行时版本不一致,示例:
    playwright==1.40.0
    
    Linux环境下可使用playwright install --with-deps chromium,确保安装所有系统依赖
  • 权限配置:Linux环境下,可在构建步骤添加chmod -R 755 .python_packages/cache/ms-playwright,确保函数应用有浏览器执行权限
  • 构建缓存:在GitHub Actions中缓存浏览器安装目录,减少重复构建时间:
    - name: 缓存Playwright浏览器
      uses: actions/cache@v3
      with:
        path: .python_packages/cache/ms-playwright
        key: ${{ runner.os }}-playwright-${{ hashFiles('requirements.txt') }}
        restore-keys: |
          ${{ runner.os }}-playwright-
    
  • 预部署测试:在GitHub Actions中添加测试步骤,验证构建后浏览器能否正常启动,避免部署后出现运行时错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:00:09