Запуск Headless Chrome с использованием Python 3.6 на AWS Lambda - ошибка прав доступа - PullRequest
0 голосов
/ 28 августа 2018

Я изо всех сил пытался запустить Headless Chrome на AWS Lambda в течение нескольких дней. Он отлично работает на EC2, но когда я пробую его на Lambda, я просто получаю "Message: 'chromedriver' executable may have wrong permissions.

Модули упакованы с исполняемыми файлами chromedriver и headless-chromium в корневом каталоге zip-файла. Общий заархивированный файл, который я загружаю на S3, составляет 52 МБ, но извлеченный файл ниже предела в 250 МБ, поэтому я не думаю, что это проблема.

Python Zip Folder Структура изображения

from selenium import webdriver


def lambda_handler(event, context):
    options = webdriver.ChromeOptions()
    options.add_argument("--headless")
    options.add_argument("--disable-gpu")
    options.add_argument("--window-size=1280x1696")
    options.add_argument("--disable-application-cache")
    options.add_argument("--disable-infobars")
    options.add_argument("--no-sandbox")
    options.add_argument("--hide-scrollbars")
    options.add_argument("--enable-logging")
    options.add_argument("--log-level=0")
    options.add_argument("--v=99")
    options.add_argument("--single-process")
    options.add_argument("--ignore-certificate-errors")
    options.add_argument("--homedir=/tmp")
    options.binary_location = "/var/task/headless-chromium"

    driver = webdriver.Chrome("/var/task/chromedriver", chrome_options=options)
    driver.get("https://www.google.co.uk")
    title = driver.title
    driver.close()

    return title


if __name__ == "__main__":
    title = lambda_handler(None, None)
    print("title:", title)

В нескольких сообщениях в Интернете сообщалось о проблемах совместимости, которые могли вызывать проблемы, поэтому у меня есть конкретные исполняемые версии для Chrome и ChromeDriver из Интернета, где другие, похоже, используют предыдущий успех EC2 и другие средства.

СКАЧАТЬ ИСТОЧНИКИ ДЛЯ БЕЗ ГОЛОВНОГО ХРОМА И ХРОМЕДРИВЕРА (стабильный) https://github.com/adieuadieu/serverless-chrome/releases/tag/v1.0.0-37 (https://sites.google.com/a/chromium.org/chromedriver/downloads) Загрузка недоступна, получена из источника ниже https://chromedriver.storage.googleapis.com/index.html?path=2.37/

Может кто-нибудь помочь мне взломать это?

...