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

如何在AWS Lambda中运行ChromeDriver?网页爬虫遇chromedriver意外退出(状态码127)问题求助

解决AWS Lambda中ChromeDriver报错Status code 127的问题

这个错误码127我太熟悉了!在Lambda环境里跑ChromeDriver几乎是必踩的坑,大概率是下面这几个原因导致的,一个个排查:

  • 二进制文件不兼容Lambda环境
    Lambda默认用的是Amazon Linux 2系统(部分旧函数可能是Amazon Linux),如果你本地是Mac/Windows/x86 Ubuntu,直接把本地的ChromeDriver或者Chrome打包到Layer里肯定不行——系统架构和依赖完全不匹配。你得下载对应Amazon Linux 2版本的Chrome和ChromeDriver,而且要确保两者版本严格对应(比如Chrome 114对应ChromeDriver 114)。

  • 缺少Chrome浏览器二进制文件
    很多人只把ChromeDriver放到Layer里,忘了Chrome本身!ChromeDriver只是驱动,必须搭配Chrome浏览器才能运行。你需要把Chrome的二进制文件(比如google-chrome-stable)也放到/opt目录下,然后在代码里指定它的路径:

    options.binary_location = "/opt/google-chrome-stable"
    
  • 系统依赖缺失
    Chrome运行需要很多系统库(比如glibc、libX11、libasound这些),Lambda的基础执行环境里没有这些依赖。解决办法有两个:

    • 手动把这些依赖从Amazon Linux 2系统里拷贝出来,和Chrome、ChromeDriver一起打包到Layer;
    • 直接用现成的打包好Chrome+ChromeDriver+所有依赖的Layer,省得自己折腾。
  • 文件权限不足
    打包Layer的时候,要确保chromedriver和Chrome二进制文件有可执行权限。在打包前执行chmod +x chromedriver google-chrome-stable,不然Lambda执行时会因为没有权限运行二进制文件而报错127。

最后调整下你的代码,加上必要的参数和Chrome二进制路径指定:

chrome_driver_path = "/opt/chromedriver"
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')  # Lambda环境必须加这个参数
options.add_argument('--disable-dev-shm-usage')  # 解决Lambda临时空间不足的问题
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36")
options.binary_location = "/opt/google-chrome-stable"  # 新增指定Chrome路径
driver = webdriver.Chrome(executable_path=chrome_driver_path, options=options)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:14:10