I'm having an issue running my python selenium script on AWS Lambda. I keep getting this error.
[ERROR] OSError: [Errno 30] Read-only file system: '/home/sbx_user1051'
Traceback (most recent call last):
File "/var/lang/lib/python3.8/imp.py", line 234, in load_module
return load_source(name, filename, file)
File "/var/lang/lib/python3.8/imp.py", line 171, in load_source
module = _load(spec)
File "<frozen importlib._bootstrap>", line 702, in _load
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 843, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/var/task/main.py", line 34, in <module>
run(None, None)
File "/var/task/main.py", line 25, in run
driver = get_driver()
File "/var/task/main.py", line 20, in get_driver
service=Service(ChromeDriverManager().install()),
File "/var/task/webdriver_manager/chrome.py", line 32, in install
driver_path = self._get_driver_path(self.driver)
File "/var/task/webdriver_manager/manager.py", line 31, in _get_driver_path
binary_path = self.driver_cache.save_file_to_cache(file, browser_version,
File "/var/task/webdriver_manager/driver_cache.py", line 27, in save_file_to_cache
archive = save_file(file, path)
File "/var/task/webdriver_manager/utils.py", line 37, in save_file
os.makedirs(directory, exist_ok=True)
File "/var/lang/lib/python3.8/os.py", line 213, in makedirs
makedirs(head, exist_ok=exist_ok)
File "/var/lang/lib/python3.8/os.py", line 213, in makedirs
makedirs(head, exist_ok=exist_ok)
File "/var/lang/lib/python3.8/os.py", line 213, in makedirs
makedirs(head, exist_ok=exist_ok)
[Previous line repeated 2 more times]
File "/var/lang/lib/python3.8/os.py", line 223, in makedirs
mkdir(name, mode)
I've tried adding --disk-cache-size-0 option because disable cache is deprecated.
I've tried switching from selenium_webdriver to selenium-wire and adding the {'request_storage_base_dir': '/tmp'} option to avoid saving in the home directory.
But nothing worked, and now I'm stumped.
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--start-maximized')
chrome_options.add_argument('--start-fullscreen')
chrome_options.add_argument('--single-process')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disk-cache-size-0')
driver = webdriver.Chrome(
options=chrome_options,
service=Service(ChromeDriverManager().install()),
seleniumwire_options={'request_storage_base_dir': '/tmp'}
)