Pyppeteer: браузер неожиданно закрылся на Python 3.9 Функция AWS LambdaPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pyppeteer: браузер неожиданно закрылся на Python 3.9 Функция AWS Lambda

Сообщение Anonymous »



У меня есть функция Python, которая собирает расписание веб-сайта и загружает его в базу данных RDS. Код отлично работает на моей локальной машине (версия pyppeteer: 2.0.0, Python 3.12). Однако я пытался перенести его на AWS Lambda, но мой браузер по-прежнему не запускается.
Я использовал исполняемый файл chromium ЭТОГО репозитория (извлеченный из /bin npm i chrome-aws-lambda@~2.0.2 и загруженный в корзину S3 с соответствующими разрешениями), который соответствовал версия pyppeteer, которую я установил с моей лямбда-функцией (pip3 install pyppeteer -t .). Код Python сначала загружает экземпляр Chromium в каталог /tmp, а затем пытается запустить из него браузер с помощью pyppeteer. Моя среда выполнения лямбда-выражений застряла на Python 3.9, поскольку это последняя доступная версия, поддерживаемая «psycopg2._psycopg». Плюс я не думаю, что это проблема.
Есть ли у кого-нибудь идеи относительно того, почему мой браузер не запускается в среде выполнения AWS Lambda? Я думаю, что это может быть проблема с моими аргументами для функции launch(), но я не уверен, что делать дальше.
Строка ошибки:
browser = await launch(
headless=True,
args=[
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-gpu',
"--single-process",
"--disable-dev-shm-usage",
"--no-zygote",
],
executablePath="/tmp/headless-chromium",
userDataDir="/tmp",
)

Ошибка в консоли Lambda:
Status: Failed
Test Event Name: testEvent

Response:
{
"errorMessage": "Browser closed unexpectedly:\n",
"errorType": "BrowserError",
"requestId": "a6a20222-6082-4618-b388-fbd4c88bda7d",
"stackTrace": [
" File \"/var/task/lambda_function.py\", line 369, in lambda_handler\n shows = asyncio.run(scrape_all_schedules())\n",
" File \"/var/lang/lib/python3.9/asyncio/runners.py\", line 44, in run\n return loop.run_until_complete(main)\n",
" File \"/var/lang/lib/python3.9/asyncio/base_events.py\", line 647, in run_until_complete\n return future.result()\n",
" File \"/var/task/lambda_function.py\", line 225, in scrape_all_schedules\n browser = await launch(\n",
" File \"/var/task/pyppeteer/launcher.py\", line 307, in launch\n return await Launcher(options, **kwargs).launch()\n",
" File \"/var/task/pyppeteer/launcher.py\", line 168, in launch\n self.browserWSEndpoint = get_ws_endpoint(self.url)\n",
" File \"/var/task/pyppeteer/launcher.py\", line 227, in get_ws_endpoint\n raise BrowserError('Browser closed unexpectedly:\\n')\n"
]
}

Function Logs:
Request ID: a6a20222-6082-4618-b388-fbd4c88bda7d

ПОЛНЫЙ КОД:
import asyncio
from datetime import datetime
from pyppeteer import launch
import os
import psycopg2
import boto3

async def scrape_all_schedules():
current_day = datetime.now()

download_chromium()

chromium_path = '/tmp/headless-chromium'
if os.path.exists(chromium_path):
print("Chromium binary found. Launching browser...")
else:
print(f"Error: Chromium binary not found at {chromium_path}")

browser = await launch(
headless=True,
args=[
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-gpu',
"--single-process",
"--disable-dev-shm-usage",
"--no-zygote",
],
executablePath="/tmp/headless-chromium",
userDataDir="/tmp",
)
page = await browser.newPage()

def lambda_handler(event, context):
print("Starting scraping process...")
shows = asyncio.run(scrape_all_schedules())

return {
'statusCode': 200,
'body': f"Successfully saved {len(shows)} shows to the database."
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... a-function
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Pyppeteer: браузер неожиданно закрылся на Python 3.9 Функция AWS Lambda
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Pyppeteer: браузер неожиданно закрылся на Python 3.9 Функция AWS Lambda
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Браузер Pyppeteer неожиданно закрылся на Heroku
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Почему время ожидания AWS Lambda неожиданно истекает?
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • AWS Lambda (.NET) + SQS: ошибка преобразования полезных данных JSON события Lambda в строку
    Anonymous » » в форуме C#
    0 Ответы
    88 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»