AWS Lambda容器部署Chromedriver无法下载Excel文件求助
AWS Lambda容器化Selenium-Chromedriver无法下载Excel文件问题
我构建了一个运行selenium-chromedriver的Python容器,用于从网站下载Excel(.xlsx)文件,通过SAM构建并部署到AWS Lambda。本地调用容器时程序运行正常,文件会保存到容器根目录;但部署到AWS后调用Lambda函数无报错,却始终无法完成下载,文件从未出现在根目录。
已尝试的排查操作
- 调整Lambda内存:初始分配512MB(日志显示使用416MB),后调整为1024MB,问题依旧
- 延长下载等待时间:点击下载后等待5分钟,确保下载完成,仍无效果
- 配置Chromedriver临时目录参数:
也试过用options.add_argument(f"--user-data-dir={'/tmp'}"), options.add_argument(f"--data-path={'/tmp'}"), options.add_argument(f"--disk-cache-dir={'/tmp'}")tempfolder = mkdtemp()替换上述参数中的/tmp,但都没有解决问题
怀疑方向
容器化应用应在本地和AWS环境表现一致,我怀疑是容器外的配置阻止了下载,比如请求已发出但响应无法返回?如有需要我可以补充更多信息,恳请各位提供帮助!
完整Chromedriver参数列表
options.binary_location = '/opt/chrome/chrome' options.headless = True options.add_argument('--disable-extensions') options.add_argument('--no-first-run') options.add_argument('--ignore-certificate-errors') options.add_argument('--disable-client-side-phishing-detection') options.add_argument('--allow-running-insecure-content') options.add_argument('--disable-web-security') options.add_argument('--lang=' + random.choice(language_list)) options.add_argument('--user-agent=' + fake_user_agent.user_agent()) options.add_argument('--no-sandbox') options.add_argument("--window-size=1920x1080") options.add_argument("--single-process") options.add_argument("--disable-dev-shm-usage") options.add_argument("--disable-dev-tools") options.add_argument("--no-zygote") options.add_argument(f"--user-data-dir={'/tmp'}") options.add_argument(f"--data-path={'/tmp'}") options.add_argument(f"--disk-cache-dir={'/tmp'}") options.add_argument("--remote-debugging-port=9222") options.add_argument("start-maximized") options.add_argument("enable-automation") options.add_argument("--headless") options.add_argument("--disable-browser-side-navigation") options.add_argument("--disable-gpu") driver = webdriver.Chrome("/opt/chromedriver", options=options)
内容的提问来源于stack exchange,提问作者SquatLicense
相关产品推荐
相关产品推荐

