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

Selenium+ChromeDriver本地正常,部署AWS Lambda崩溃问题排查

解决AWS Lambda容器中Chrome启动崩溃的问题

核心错误分析

报错CreatePlatformSocket() failed: Address family not supported by protocol (97)表明Chrome尝试创建IPv6套接字失败,尽管你添加了--disable-ipv6参数,但Lambda环境的网络限制可能导致该参数未完全生效;另外本地与Lambda的资源、权限差异也是核心诱因。

调试与修复步骤

1. 捕获Chrome崩溃日志

在Chrome启动参数中添加--crash-dumps-dir=/tmp,Lambda执行后导出/tmp目录下的崩溃文件(通常为.dmp格式)分析,或在代码中把日志上传至存储服务,这能直接定位崩溃的具体原因。

2. 修正文件权限

Lambda容器以非root用户执行,确保Chrome二进制文件及目录具备可执行权限,在安装脚本末尾追加:

chmod -R 755 /opt/chrome
chmod -R 755 /opt/chromedriver

3. 简化并优化Chrome启动参数

移除冗余参数,保留适配Lambda的核心配置,示例代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location = '/opt/chrome/google-chrome'
options.add_argument('--headless=new')  # Chrome 112+推荐新无头模式,规避旧模式兼容性问题
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')  # 解决Lambda的/dev/shm空间限制
options.add_argument('--disable-gpu')
options.add_argument('--crash-dumps-dir=/tmp')
options.add_argument('--disable-ipv6')
options.add_argument('--log-level=3')  # 输出更详细的Chrome运行日志
options.add_argument('--window-size=1920,1080')

service = webdriver.ChromeService(
    executable_path='/opt/chromedriver/chromedriver',
    service_log_path='/tmp/chromedriver.log'
)
driver = webdriver.Chrome(options=options, service=service)

4. 调整Lambda资源配置

默认128MB内存不足以启动Chrome,将Lambda函数的内存配置调整为1024MB或更高,同时把超时时间延长至至少30秒。

5. 修复Chrome安装脚本的变量解析错误

原安装脚本中curl链接的变量编码有误,可能导致下载不匹配的Chromium版本,修正后的下载命令:

# 替换原Chrome下载的curl命令
curl -Lo "/opt/chrome/$br/chrome-linux.zip" "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F${chrome_versions[$br]}%2Fchrome-linux.zip?alt=media"

确保变量${chrome_versions[$br]}正确解析为对应快照编号,避免下载错误版本。

额外建议

  • 参考chrome-aws-lambda的容器适配逻辑,该库专门针对Lambda环境优化了Chrome的安装与启动配置,可直接借鉴其脚本和参数设置。
  • 在Lambda容器的Dockerfile中添加依赖检查命令ldd /opt/chrome/google-chrome,若缺少系统库(如glibc、nss等),需通过yum或apt安装补充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:20:29