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

基于Python的Playwright部署到Azure Functions时浏览器驱动安装问题求解

解决方案

问题根本原因

你在流水线构建代理环境安装的Playwright浏览器默认存储在当前用户的私有目录,部署到Azure Functions运行环境时不会被打包进去,且函数运行时没有权限读取构建代理的用户目录,因此会抛出浏览器未找到的报错。

方案一:不使用Docker的修正配置

1. 调整流水线配置,指定浏览器安装路径到项目目录

修改你的流水线脚本,添加PLAYWRIGHT_BROWSERS_PATH环境变量,将浏览器安装到函数项目目录内,确保打包部署时会一同上传:

- script: |
    python -m venv ./azfunc/.python_packages
    source ./azfunc/.python_packages/bin/activate
    python -m pip install --upgrade pip keyring artifacts-keyring
    pip install -r ./azfunc/requirements.txt
    # 指定浏览器安装路径到项目下的.browsers目录
    export PLAYWRIGHT_BROWSERS_PATH=./azfunc/.browsers
    # 仅安装你需要的浏览器,比如只装chromium,避免webkit/firefox的依赖问题
    python -m playwright install chromium --with-deps
  displayName: 'Install dependencies'

2. 配置Azure Functions运行时环境变量

进入Azure Portal对应函数的配置页,添加应用设置:

  • 键:PLAYWRIGHT_BROWSERS_PATH
  • 值:/home/site/wwwroot/.browsers(Linux计划)/ %HOME%\site\wwwroot\.browsers(Windows计划)

注意事项

  • 消费计划的执行时间上限可调整到最长10分钟,适合耗时较短的爬取任务
  • 代码中启动浏览器时必须添加无沙箱参数:
    browser = playwright.chromium.launch(headless=True, args=["--no-sandbox"])
    

方案二:Docker部署(更稳定,推荐)

Docker是完全可行的方案,能一次性解决所有依赖、路径问题,不需要额外配置环境变量。

前置要求

Azure Functions使用弹性Premium计划(EP1及以上)或专用App Service计划,消费计划不支持自定义容器部署。

参考Dockerfile

# 使用Azure Functions官方Python基础镜像
FROM mcr.microsoft.com/azure-functions/python:4-python3.10-slim

# 配置基础环境变量
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true

# 安装Playwright所需系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
    libwoff1 \
    libopus0 \
    libwebpdemux2 \
    libgstreamer1.0-0 \
    libgstreamer-plugins-base1.0-0 \
    libharfbuzz-icu0 \
    libgles2 \
    && rm -rf /var/lib/apt/lists/*

COPY requirements.txt /
RUN pip install --no-cache-dir -r /requirements.txt
# 安装Chromium浏览器和对应依赖
RUN playwright install chromium --with-deps

# 复制函数代码到镜像内
COPY . /home/site/wwwroot

流水线调整

将原有的代码部署逻辑替换为Docker镜像构建、推送到Azure容器注册表,再部署到对应函数计划即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:36:02