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

AWS Lambda只读文件系统下requests_html render无法运行求助

解决AWS Lambda中request_html.render()只读文件系统报错问题
  • 问题根源:request_html的render()方法底层依赖pyppeteer,pyppeteer默认将下载的Chromium浏览器存储在当前工作目录,而AWS Lambda仅允许向/tmp目录写入文件,触发Read-only file system报错。

  • 解决方案:

    1. 强制修改pyppeteer缓存目录
      在Python脚本开头添加环境变量配置,让pyppeteer将Chromium缓存到Lambda可写的/tmp目录:
      import os
      # 指定pyppeteer缓存路径到/tmp下的子目录
      os.environ['PYPPETEER_CACHE_DIR'] = '/tmp/pyppeteer'
      
    2. 调整Lambda基础配置
      • 内存配置:将Lambda函数内存至少调整为512MB(页面渲染需要较多资源,内存不足易导致超时或崩溃)
      • 超时时间:根据目标页面加载复杂度,设置30秒以上的超时时间
    3. 可选:预打包Chromium到部署包
      若不想让Lambda每次运行都下载Chromium,可提前下载对应Linux版本的Chromium并打包到部署包中,再通过参数指定路径:
      from requests_html import HTMLSession
      
      session = HTMLSession()
      r = session.get('目标网页URL')
      # 指定打包的Chromium路径,同时添加Lambda运行必需的浏览器参数
      r.render(browser_args=['--no-sandbox', '--disable-dev-shm-usage', '--executable-path=/opt/chromium'])
      
      注:--no-sandbox和--disable-dev-shm-usage是Lambda环境下运行Chromium的必需参数,用于规避权限与内存共享限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:05:18