В этом репозитории представлены двоичные файлы Chromium, скомпилированные для AWS Lambda, совместимые и протестированные с Playwright и Puppeteer.
Мы предлагаем двоичные файлы ARM_64
и X86_64
, а также поддержку Amazon Linux 2 (NodeJS 16 и 18) и Amazon Linux 2023 (NodeJS 20+).
Уже используете Puppeteer или Playwright? Нет необходимости добавлять в проект дополнительные пакеты NPM!
Просто установите соответствующие переменные среды в Lambda, и Playwright/Puppeteer автоматически загрузит наши Lambda-совместимые двоичные файлы. Кроме того, вы можете загрузить и установить наши двоичные файлы вручную.
Для автоматической установки установите переменные среды, и Playwright/Puppeteer автоматически загрузит совместимые двоичные файлы (подробнее).
Для установки через слой Lambda загрузите правильный zip-файл, содержащий Chromium и необходимые зависимости, и загрузите его в Lambda самостоятельно (подробности).
Мы стремимся сделать совместимые версии Chromium доступными сразу после их официального выпуска. Однако компиляция, отладка и тестирование этих сборок ресурсоемки и требуют значительных вычислительных мощностей и человеческих усилий. Чтобы гарантировать, что мы сможем продолжать предоставлять эту услугу, нам требуется подписка Pro или единовременный платеж для доступа к последним 5 версиям.
Хромированная версия | Совместимые версии драматурга | Совместимые версии Кукловода | ARM Скачать | X86 Скачать |
---|---|---|---|---|
130.0.6723 | v1.48.0 , v1.48.1 , v1.48.2 | v23.6.0 | Скачать AL2* Скачать AL2023* | Скачать AL2* Скачать AL2023* |
129.0.6668 | v1.47.0 , v1.47.1 , v1.47.2 | v23.4.0 , v23.4.1 , v23.5.0 , v23.5.1 , v23.5.2 , v23.5.3 | Скачать AL2* Скачать AL2023* | Скачать AL2* Скачать AL2023* |
128.0.6613 | v1.46.0 , v1.46.1 | v23.2.0 , v23.2.1 , v23.2.2 , v23.3.0 , v23.3.1 | Скачать AL2* Скачать AL2023* | Скачать AL2* Скачать AL2023* |
127.0.6533 | v1.45.0 , v1.45.1 , v1.45.2 , v1.45.3 | v22.14.0 , v22.15.0 , v23.0.0 , v23.0.1 , v23.0.2 , v23.1.0 , v23.1.1 | Скачать AL2* Скачать AL2023* | Скачать AL2* Скачать AL2023* |
126.0.6478 | v22.11.0 , v22.11.1 , v22.11.2 , v22.12.0 , v22.12.1 , v22.13.0 , v22.13.1 | Скачать AL2* Скачать AL2023* | Скачать AL2* Скачать AL2023* | |
125.0.6422 | v1.44.0 , v1.44.1 | v22.10.0 , v22.10.1 , v22.9.0 | Скачать АЛ2 Скачать AL2023 | Скачать АЛ2 Скачать AL2023 |
124.0.6367 | v1.43.0 , v1.43.1 | v22.7.0 , v22.7.1 , v22.8.0 , v22.8.1 , v22.8.2 | Скачать АЛ2 Скачать AL2023 | Скачать АЛ2 Скачать AL2023 |
123.0.6312 | v1.42.0 , v1.42.1 | v22.6.0 , v22.6.1 , v22.6.2 , v22.6.3 , v22.6.4 , v22.6.5 | Скачать АЛ2 Скачать AL2023 | Скачать АЛ2 Скачать AL2023 |
122.0.6261 | v22.2.0 , v22.3.0 , v22.4.0 , v22.4.1 , v22.5.0 | Скачать АЛ2 Скачать AL2023 | Скачать АЛ2 Скачать AL2023 | |
121.0.6167 | v1.41.0 , v1.41.1 , v1.41.2 | v21.10.0 , v21.11.0 , v21.9.0 , v22.0.0 , v22.1.0 | Скачать АЛ2 Скачать AL2023 | Скачать АЛ2 Скачать AL2023 |
120.0.6099 | v1.40.0 , v1.40.1 | v21.8.0 | Скачать АЛ2 Скачать AL2023 | Скачать АЛ2 Скачать AL2023 |
*Для доступа к 5 новейшим основным двоичным файлам Chromium требуется подписка Pro или единовременный платеж.
И Puppeteer, и Playwright имеют встроенные функции для загрузки совместимого браузера из CDN. Вместо использования CDN по умолчанию мы устанавливаем переменную среды, чтобы указать Puppeteer/Playwright вместо этого загружать браузер с files.chromiumforlambda.org
. В Lambda запись доступна только в каталоге /tmp, поэтому нам нужно сохранить там браузер.
Если у вас еще не установлен Playwright: npm install playwright-core@
.
Настройте следующие переменные среды. Кроме того, вы можете настроить PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
, который Playwright использует для активации нового режима без головы.
PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (если вы используете NodeJS 16/18 на ARM64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (если вы используете NodeJS 20 на ARM64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (если вы используете NodeJS 16/18 на x86_64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (если вы используете NodeJS 20 на x86_64)PLAYWRIGHT_BROWSERS_PATH=/tmp
// Убедитесь, что: // - Вы используете поддерживаемую версию Playwright (см. https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Вы я установилprocess.env.PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST иprocess.env.PLAYWRIGHT_BROWSERS_PATH.import { chromium } из "playwright-core";export const handler = async () => { const install = require('playwright-core/lib/server').installBrowsersForNpmInstall; ожидайте установки (['хром']); const браузер = await chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'], }); константная страница = ожидание браузера.newPage(); // ваш код драматурга, как обычно}
Если у вас еще не установлен Puppeteer: npm install puppeteer@
.
Настройте следующие переменные среды.
PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (если вы используете NodeJS 16/18 на ARM64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (если вы используете NodeJS 20 на ARM64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (если вы используете NodeJS 16/18 на x86_64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=s ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (если вы используете NodeJS 20 на x86_64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (если вы используете NodeJS 16/18 на ARM64) PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/arm64 # (если вы используете NodeJS 20 на ARM64) PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE _URL=https://files. chromiumforlambda.org/amazon-linux-2/x86_64 # (если вы используете NodeJS 16/18 на x86_64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (если вы используя NodeJS 20 на x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (если вы используете новый безголовый режим) PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (если вы используете старый безгласный режим)PUPPETEER_CACHE_DIR=/tmp
// Убедитесь, что: // - Вы используете поддерживаемую версию Puppeteer (см. https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Вы установилиprocess.env.PUPPETEER_CHROME_DOWNLOAD_BASE_URL,process.env.PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL иprocess.env.PUPPETEER_CACHE_DIR.import puppeteer из "puppeteer";export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowsers; ожидайте установки() const браузер = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],без головы : 'shell' | true // true запускает браузер в новом безголовом режиме, 'shell' запускает оболочку, известную как старый безгласный режим. }); константная страница = ожидание браузера.newPage(); // ваш код Puppeteer как обычно}
Если у вас еще не установлен Puppeteer: npm install puppeteer@
.
Настройте следующие переменные среды.
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (если вы используете NodeJS 16/18 на ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (если вы используете NodeJS 20 на ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (если вы используете NodeJS 16/18 на x86_64)PUPPETEER_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (если вы используете NodeJS 20 на x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (если вы используете новый безголовый режим)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (если вы используете используете старый безгласный режим)PUPPETEER_CACHE_DIR=/tmp
// Убедитесь, что: // - Вы используете поддерживаемую версию Puppeteer (см. https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Вы установилиprocess.env.PUPPETEER_DOWNLOAD_BASE_URL иprocess.env.PUPPETEER_CACHE_DIR.import puppeteer из "puppeteer";export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; ожидайте установки() const браузер = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],без головы : 'shell' | true // true запускает браузер в новом безголовом режиме, 'shell' запускает оболочку, известную как старый безгласный режим. }); константная страница = ожидание браузера.newPage(); // ваш код Puppeteer как обычно}
Если у вас еще не установлен Puppeteer: npm install puppeteer@
.
Настройте следующие переменные среды.
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (если вы используете NodeJS 16/18 на ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (если вы используете NodeJS 20 на ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (если вы используете NodeJS 16/18 на x86_64)PUPPETEER_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (если вы используете NodeJS 20 на x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (если вы используете новый безголовый режим)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (если вы используете используете старый безгласный режим)PUPPETEER_CACHE_DIR=/tmp
// Убедитесь, что: // - Вы используете поддерживаемую версию Puppeteer (см. https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Вы установилиprocess.env.PUPPETEER_DOWNLOAD_BASE_URL иprocess.env.PUPPETEER_CACHE_DIR.import puppeteer из "puppeteer";export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; ожидайте установки() const браузер = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],без головы : true | 'new' // 'new' запускает браузер в новом безгласном режиме, true запускает оболочку, известную как старый безгласный режим. }); константная страница = ожидание браузера.newPage(); // ваш код Puppeteer как обычно}
Слой Lambda — это файловый архив .zip, содержащий дополнительный код или данные. Вы можете использовать слой Lambda для упаковки браузера Chromium с вашей функцией. Из-за ограничений по размеру Chromium можно использовать только со старым безгласным режимом (через двоичный файл chrome-headless-shell). К сожалению, полный двоичный файл Chromium, используемый в новом безголовом режиме, слишком велик, чтобы его можно было установить через слой.
Вы можете скачать файл headless_shell-*.zip, соответствующий вашей версии «Драматург/Кукловод», и загрузить его как слой.
Если у вас еще не установлен Playwright: npm install playwright-core@
.
Убедитесь, что переменная среды PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
не установлена, поскольку новый безголовый режим не поддерживается через слой.
// Убедитесь, что: // - Вы используете поддерживаемую версию Playwright (см. https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Вы вы загрузили файл headless_shell-*.zip в качестве слоя Lambda и настроили свою Lambda для использования этого Layer.import { chromium } из "playwright-core";export const handler = async () => { const браузер = await chromium.launch({args: ['--use-gl=angle', '-use-angle=swiftshader', '--single-process'],executablePath: '/opt/chrome-headless -shell-linux64/chrome-headless-shell' }); константная страница = ожидание браузера.newPage(); // ваш код драматурга, как обычно}
Если у вас еще не установлен Puppeteer: npm install puppeteer@
.
// Убедитесь, что: // - Вы используете поддерживаемую версию Puppeteer (см. https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Вы вы загрузили файл headless_shell-*.zip в качестве слоя Lambda и настроили Lambda для использования этого слоя.import puppeteer из "puppeteer";export const handler = async () => { const браузер = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],без головы : 'shell',executablePath: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); константная страница = ожидание браузера.newPage(); // ваш код Puppeteer как обычно}
Если у вас еще не установлен Puppeteer: npm install puppeteer@
.
// Убедитесь, что: // - Вы используете поддерживаемую версию Puppeteer (см. https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Вы вы загрузили файл headless_shell-*.zip в качестве слоя Lambda и настроили Lambda для использования этого слоя.import puppeteer из "puppeteer";export const handler = async () => { const браузер = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],без головы : true,executablePath: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); константная страница = ожидание браузера.newPage(); // ваш код Puppeteer как обычно}
Мы тщательно тестируем наши двоичные файлы перед публикацией. Но не стесняйтесь создавать проблему, если вы столкнетесь с неожиданным поведением.
Наши двоичные файлы компилируются в экшене Github. Это означает, что вы можете точно следить за тем, как создаются наши двоичные файлы Chromium, от исходного кода до развертывания. Это означает, что вы можете проверить целостность и качество наших двоичных файлов и лучше понять процесс их создания.
Автоматическая установка использует переменные среды, чтобы настроить Playwright/Puppeteer для загрузки Lambda-совместимых двоичных файлов из нашей CDN. Для ручной установки необходимо загрузить правильный zip-файл, содержащий необходимые зависимости, и загрузить его в Lambda вручную через слой Lambda.
Бинарные файлы Chromium для Amazon Linux 2 (AL2) и Amazon Linux 2023 (AL2023) различаются, поскольку они скомпилированы с разными версиями ядра Linux и зависимостями.
Основные различия:
Версия ядра: AL2 основан на ядре 4.14, а AL2023 — на ядре 5.10. Это означает, что двоичные файлы AL2023 скомпилированы с более новой версией ядра, которая может обеспечить лучшую поддержку нового оборудования и функций.
Версии зависимостей. Зависимости, используемые для сборки двоичных файлов Chromium, таких как glibc, libstdc++ и другие библиотеки, также различаются в AL2 и AL2023. Эти различия могут повлиять на совместимость и функциональность браузера Chromium.
Если вы используете Amazon Linux 2 (AL2), вам следует загрузить двоичные файлы Chromium, специально скомпилированные для AL2. Если вы используете Amazon Linux 2023 (AL2023), вам следует загрузить двоичные файлы Chromium, специально скомпилированные для AL2023.
Если вы используете Node.js, обратите внимание на следующее:
Среды выполнения Node.js 16 и 18 Lambda используют Amazon Linux 2 (AL2).
Среда выполнения Node.js 20 использует Amazon Linux 2023 (AL2023).
Да. Пожалуйста, взгляните на это.