Код Python драматурга работает локально с безголовым браузером, но не работает в AWS Lambda ⇐ Python
Код Python драматурга работает локально с безголовым браузером, но не работает в AWS Lambda
Я разработал сценарий Playwright, который успешно работает на моем локальном компьютере с помощью автономного браузера, но когда я развертываю его в AWS Lambda, он не работает должным образом. Время ожидания функции Lambda истекло, и автоматизация не завершилась должным образом.
async def run(self) -> Нет: асинхронно с async_playwright() в качестве драматурга: lead_create_status = "не_создано" Lead_id = "ноль" custom_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/69.0.3497.100 Safari/537.36" идентификатор_logger = self.logger_generator.get_logger( YesBankCc.IDENTIFIER) браузер = ждут playwright.chromium.launch(headless=True, args=["--single-process"]) wait_until = "загрузить" # контекст = ожидание браузера.new_context(user_agent=custom_user_agent, # geolocation={"longitude": 72.877655, "latitude": 19.075983}, # Permissions=["геолокация"]) геолокатор = Nominatim(user_agent="MyApp") location = geolocator.geocode("Мумбаи") print("Широта местоположения: ", location.latitude) print("Долгота местоположения: ", location.longitude) контекст = ожидание браузера.новый_контекст( ignore_https_errors = Верно, # java_script_enabled=Верно, user_agent=custom_user_agent, viewport={"ширина": 1920, "высота": 1080}, geolocation = {"долгота": location.longitude, "latitude": location.latitude}, разрешения=["геолокация"], ) идентификатор_logger.debug("Новый контекст создан...") страница = ожидайте context.new_page() page.set_default_timeout(120000) идентификатор_logger.debug("Новая страница создана...") # Перейдите на страницу входа идентификатор_logger.debug("Переход на страницу входа...") await page.goto(url=self._portal_info["crm_url"], wait_until="load") print(f'URL = {self._portal_info["crm_url"]}') идентификатор_logger.info("Успешно перешел на страницу входа") идентификатор_logger.debug("Заполнение данных для входа...") жду сна(10) идентификатор_logger.debug("Ждал 10 секунд") идентификатор_logger.debug("Собираюсь щелкнуть поле номера мобильного телефона") ожидайте page.locator('[id="username"]').click() # await page.get_by_placeholder('Введите номер мобильного телефона').click() идентификатор_logger.debug("Нажата кнопка ввода номера мобильного телефона") await page.locator('[id="username"]').fill(value=str(self._portal_info["crm_username"])) # await page.get_by_placeholder('Введите номер мобильного телефона').fill(value=str(self._portal_info["crm_username"])) идентификатор_logger.debug("Заполнено поле ввода номера мобильного телефона") await page.wait_for_load_state('domcontentloaded') ожидайте page.locator( '[class="btn-primary btndisable mat-button mat-button-base ng-star-inserted"]').click() идентификатор_logger.debug("Нажата кнопка "Отправить OTP") идентификатор_logger.debug("Отправлен OTP для входа успешно...") Мои вопросы:
[*]
Имеются ли какие-либо известные ограничения или различия при использовании Playwright в AWS Lambda по сравнению с локальной средой?
[*]
Что может быть причиной истечения времени ожидания функции Lambda и как это можно сделать? устранить неполадки и решить эту проблему?
[*]
Есть ли какие-либо конкретные конфигурации или соображения, которые мне следует учитывать? что вы знаете о развертывании кода Playwright в функции AWS Lambda?
Я ценю любые идеи и предложения о том, как обеспечить бесперебойную работу моего кода Playwright в AWS Lambda. Спасибо за помощь!
Сведения о среде:
Среда выполнения AWS Lambda: Python 3.9, Драматургическая версия: 1.35.0, Регион AWS: ap-south-1
Я разработал сценарий Playwright, который успешно работает на моем локальном компьютере с помощью автономного браузера, но когда я развертываю его в AWS Lambda, он не работает должным образом. Время ожидания функции Lambda истекло, и автоматизация не завершилась должным образом.
async def run(self) -> Нет: асинхронно с async_playwright() в качестве драматурга: lead_create_status = "не_создано" Lead_id = "ноль" custom_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/69.0.3497.100 Safari/537.36" идентификатор_logger = self.logger_generator.get_logger( YesBankCc.IDENTIFIER) браузер = ждут playwright.chromium.launch(headless=True, args=["--single-process"]) wait_until = "загрузить" # контекст = ожидание браузера.new_context(user_agent=custom_user_agent, # geolocation={"longitude": 72.877655, "latitude": 19.075983}, # Permissions=["геолокация"]) геолокатор = Nominatim(user_agent="MyApp") location = geolocator.geocode("Мумбаи") print("Широта местоположения: ", location.latitude) print("Долгота местоположения: ", location.longitude) контекст = ожидание браузера.новый_контекст( ignore_https_errors = Верно, # java_script_enabled=Верно, user_agent=custom_user_agent, viewport={"ширина": 1920, "высота": 1080}, geolocation = {"долгота": location.longitude, "latitude": location.latitude}, разрешения=["геолокация"], ) идентификатор_logger.debug("Новый контекст создан...") страница = ожидайте context.new_page() page.set_default_timeout(120000) идентификатор_logger.debug("Новая страница создана...") # Перейдите на страницу входа идентификатор_logger.debug("Переход на страницу входа...") await page.goto(url=self._portal_info["crm_url"], wait_until="load") print(f'URL = {self._portal_info["crm_url"]}') идентификатор_logger.info("Успешно перешел на страницу входа") идентификатор_logger.debug("Заполнение данных для входа...") жду сна(10) идентификатор_logger.debug("Ждал 10 секунд") идентификатор_logger.debug("Собираюсь щелкнуть поле номера мобильного телефона") ожидайте page.locator('[id="username"]').click() # await page.get_by_placeholder('Введите номер мобильного телефона').click() идентификатор_logger.debug("Нажата кнопка ввода номера мобильного телефона") await page.locator('[id="username"]').fill(value=str(self._portal_info["crm_username"])) # await page.get_by_placeholder('Введите номер мобильного телефона').fill(value=str(self._portal_info["crm_username"])) идентификатор_logger.debug("Заполнено поле ввода номера мобильного телефона") await page.wait_for_load_state('domcontentloaded') ожидайте page.locator( '[class="btn-primary btndisable mat-button mat-button-base ng-star-inserted"]').click() идентификатор_logger.debug("Нажата кнопка "Отправить OTP") идентификатор_logger.debug("Отправлен OTP для входа успешно...") Мои вопросы:
[*]
Имеются ли какие-либо известные ограничения или различия при использовании Playwright в AWS Lambda по сравнению с локальной средой?
[*]
Что может быть причиной истечения времени ожидания функции Lambda и как это можно сделать? устранить неполадки и решить эту проблему?
[*]
Есть ли какие-либо конкретные конфигурации или соображения, которые мне следует учитывать? что вы знаете о развертывании кода Playwright в функции AWS Lambda?
Я ценю любые идеи и предложения о том, как обеспечить бесперебойную работу моего кода Playwright в AWS Lambda. Спасибо за помощь!
Сведения о среде:
Среда выполнения AWS Lambda: Python 3.9, Драматургическая версия: 1.35.0, Регион AWS: ap-south-1
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Python запрашивает проблему Selenium только с безголовым режимом ChromeDriver
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-