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

求助:2023年在AWS Lambda上部署Selenium遇阻

在AWS Lambda上运行Selenium的可行方案

一、正确配置Lambda Layer(核心解决步骤)

Lambda基于Amazon Linux 2运行,必须使用适配该系统的Chrome浏览器和ChromeDriver,不能用本地Windows/mac版本:

  • 下载适配Amazon Linux 2的稳定版Chrome包:google-chrome-stable_current_x86_64.rpm
  • 下载与Chrome主版本完全一致的ChromeDriver
  • 按固定目录结构打包Layer:
    • Selenium包放在python/lib/python3.x/site-packages/(x对应Lambda使用的Python版本,比如3.9)
    • Chrome和ChromeDriver放在bin/目录下
  • 打包成zip时,直接将python和bin目录放在zip根目录,不要嵌套外层文件夹,上传为Lambda Layer

二、Lambda函数代码示例

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

def lambda_handler(event, context):
    # 配置Chrome无头模式参数
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--window-size=1920x1080')
    
    # 指定Lambda Layer中的Chrome和ChromeDriver路径
    chrome_options.binary_location = '/opt/bin/google-chrome'
    driver_path = '/opt/bin/chromedriver'
    
    # 初始化驱动并执行操作
    driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)
    driver.get('https://example.com')
    page_title = driver.title
    driver.quit()
    
    return {'result': page_title}

三、必做的排查项

  • 版本匹配:Chrome和ChromeDriver的主版本号必须完全一致,比如Chrome 119.x对应ChromeDriver 119.x
  • 权限设置:打包前在本地给ChromeDriver添加可执行权限,执行命令:chmod +x chromedriver
  • 资源分配:Lambda默认128MB内存不足以运行Chrome,至少分配512MB,建议1GB
  • 超时设置:Selenium页面加载和操作耗时较长,将Lambda函数超时时间设置为5-10分钟

内容的提问来源于stack exchange,提问作者40 hunnid messiah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:14:56