Este repositorio proporciona binarios de Chromium compilados para AWS Lambda, compatibles y probados con Playwright y Puppeteer.
Ofrecemos binarios ARM_64
y X86_64
, así como soporte para Amazon Linux 2 (NodeJS 16 y 18) y Amazon Linux 2023 (NodeJS 20+).
¿Ya estás usando Titiritero o Dramaturgo? ¡No es necesario agregar paquetes NPM adicionales a su proyecto!
Simplemente configure las variables de entorno apropiadas en Lambda y Playwright/Puppeteer descargará automáticamente nuestros archivos binarios compatibles con Lambda. Alternativamente, puedes descargar e instalar nuestros binarios manualmente.
Para la instalación automática, configure las variables de entorno y Playwright/Puppeteer descargará automáticamente los archivos binarios compatibles (detalles).
Para la instalación a través de una capa Lambda, descargue el archivo zip correcto que contiene Chromium y las dependencias requeridas y cárguelo usted mismo en Lambda (detalles).
Nos esforzamos por que las versiones de Chromium compatibles estén disponibles tan pronto como se lancen oficialmente. Sin embargo, compilar, depurar y probar estas compilaciones consume muchos recursos y requiere una gran potencia computacional y esfuerzo humano. Para garantizar que podamos continuar brindando este servicio, requerimos una suscripción Pro o un pago único para acceder a las últimas 5 versiones.
Versión de cromo | Versiones de dramaturgo compatibles | Versiones de titiritero compatibles | Descargar BRAZO | Descargar X86 |
---|---|---|---|---|
130.0.6723 | v1.48.0 , v1.48.1 , v1.48.2 | v23.6.0 | Descargar AL2* Descargar AL2023* | Descargar AL2* Descargar 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 | Descargar AL2* Descargar AL2023* | Descargar AL2* Descargar 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 | Descargar AL2* Descargar AL2023* | Descargar AL2* Descargar 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 | Descargar AL2* Descargar AL2023* | Descargar AL2* Descargar 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 | Descargar AL2* Descargar AL2023* | Descargar AL2* Descargar AL2023* | |
125.0.6422 | v1.44.0 , v1.44.1 | v22.10.0 , v22.10.1 , v22.9.0 | Descargar AL2 Descargar AL2023 | Descargar AL2 Descargar 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 | Descargar AL2 Descargar AL2023 | Descargar AL2 Descargar 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 | Descargar AL2 Descargar AL2023 | Descargar AL2 Descargar AL2023 |
122.0.6261 | v22.2.0 , v22.3.0 , v22.4.0 , v22.4.1 , v22.5.0 | Descargar AL2 Descargar AL2023 | Descargar AL2 Descargar 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 | Descargar AL2 Descargar AL2023 | Descargar AL2 Descargar AL2023 |
120.0.6099 | v1.40.0 , v1.40.1 | v21.8.0 | Descargar AL2 Descargar AL2023 | Descargar AL2 Descargar AL2023 |
*Para acceder a las 5 versiones binarias principales más recientes de Chromium se requiere una suscripción profesional o un pago único.
Tanto Puppeteer como Playwright tienen una funcionalidad integrada para descargar un navegador compatible desde una CDN. En lugar de utilizar la CDN predeterminada, configuramos una variable de entorno para indicarle a Puppeteer/Dramaturgo que descargue el navegador desde files.chromiumforlambda.org
. En Lambda, solo se puede escribir en el directorio /tmp, por lo que debemos guardar el navegador allí.
Si aún no tienes Playwright instalado: npm install playwright-core@
.
Configure las siguientes variables de entorno. Además, puede optar por configurar PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
que Playwright utiliza para activar el nuevo modo sin cabeza.
PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (si estás usando NodeJS 16/18 en ARM64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (si estás usando NodeJS 20 en ARM64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (si estás usando NodeJS 16/18 en x86_64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (si estás usando NodeJS 20 en x86_64)PLAYWRIGHT_BROWSERS_PATH=/tmp
// Asegúrate de que:// - Estás usando una versión de Playwright compatible (consulta https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Tú He configurado Process.env.PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST y Process.env.PLAYWRIGHT_BROWSERS_PATH.import {chromium} de "playwright-core"; exportar const handler = async () => { const install = require('playwright-core/lib/server').installBrowsersForNpmInstall; espere instalación (['cromo']); navegador const = await chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'], }); página constante = espera navegador.newPage(); // tu código de Dramaturgo como siempre}
Si aún no tienes Puppeteer instalado: npm install puppeteer@
.
Configure las siguientes variables de entorno.
PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (si estás usando NodeJS 16/18 en ARM64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (si estás usando NodeJS 20 en ARM64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (si estás usando NodeJS 16/18 en x86_64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (si estás usando NodeJS 20 en x86_64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (si Estás usando NodeJS 16/18 en ARM64) Puppeteer_chrome_headless_shell_download_base_url = https: //files.chromiumforlambda.org/amazon-linux-2023/arm64 # (si está usando NodeJs 20 en ARM64) Puppeteer_chrome_headless_download_downownaderkarl. chromiumforlambda.org/amazon-linux-2/x86_64 # (si estás usando NodeJS 16/18 en x86_64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (si estás usando NodeJS 20 en x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (si estás usando el nuevo modo sin cabeza)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (si estás usando el antiguo modo sin cabeza)PUPPETEER_CACHE_DIR=/tmp
// Asegúrate de que:// - Estás usando una versión compatible de Puppeteer (consulta https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Tú Hemos configurado Process.env.PUPPETEER_CHROME_DOWNLOAD_BASE_URL, Process.env.PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL y Process.env.PUPPETEER_CACHE_DIR.importar titiritero desde "titiritero"; exportar const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowsers; esperar instalación() const browser = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sin cabeza : 'shell' | true // true inicia el navegador en el nuevo modo sin cabeza, 'shell' inicia el shell conocido como el antiguo modo sin cabeza. }); página constante = espera navegador.newPage(); // tu código Titiritero como siempre}
Si aún no tienes Puppeteer instalado: npm install puppeteer@
.
Configure las siguientes variables de entorno.
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (si estás usando NodeJS 16/18 en ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (si estás usando NodeJS 20 en ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (si estás usando NodeJS 16/18 en x86_64)PUPPETEER_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (si estás usando NodeJS 20 en x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (si estás usando el nuevo modo sin cabeza)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (si estás usando el antiguo modo sin cabeza)PUPPETEER_CACHE_DIR=/tmp
// Asegúrate de que:// - Estás usando una versión compatible de Puppeteer (consulta https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Tú Hemos configurado Process.env.PUPPETEER_DOWNLOAD_BASE_URL y Process.env.PUPPETEER_CACHE_DIR.importar titiritero desde "titiritero"; exportar const handler = async () => { const install = require(`titiritero/internal/node/install.js`).downloadBrowser; esperar instalación() const browser = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sin cabeza : 'shell' | true // true inicia el navegador en el nuevo modo sin cabeza, 'shell' inicia el shell conocido como el antiguo modo sin cabeza. }); página const = espera navegador.newPage(); // tu código Titiritero como siempre}
Si aún no tienes Puppeteer instalado: npm install puppeteer@
.
Configure las siguientes variables de entorno.
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (si estás usando NodeJS 16/18 en ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (si estás usando NodeJS 20 en ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (si estás usando NodeJS 16/18 en x86_64)PUPPETEER_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (si estás usando NodeJS 20 en x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (si estás usando el nuevo modo sin cabeza)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (si estás usando el antiguo modo sin cabeza)PUPPETEER_CACHE_DIR=/tmp
// Asegúrate de que:// - Estás usando una versión compatible de Puppeteer (consulta https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Tú Hemos configurado Process.env.PUPPETEER_DOWNLOAD_BASE_URL y Process.env.PUPPETEER_CACHE_DIR.importar titiritero desde "titiritero"; exportar const handler = async () => { const install = require(`titiritero/internal/node/install.js`).downloadBrowser; esperar instalación() const browser = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sin cabeza : true | 'new' // 'new' inicia el navegador en el nuevo modo sin cabeza, true inicia el shell conocido como el antiguo modo sin cabeza. }); página constante = espera navegador.newPage(); // tu código Titiritero como siempre}
Una capa Lambda es un archivo .zip que contiene código o datos complementarios. Puede utilizar una capa Lambda para empaquetar el navegador Chromium con su función. Debido a límites de tamaño, Chromium solo se puede usar con el antiguo modo sin cabeza (a través del binario chrome-headless-shell). Lamentablemente, el binario Chromium completo utilizado en el nuevo modo sin cabeza es demasiado grande para instalarlo a través de una capa.
Puedes descargar el headless_shell-*.zip que coincida con tu versión de Playwright/Puppeteer y subirlo como una capa.
Si aún no tienes Playwright instalado: npm install playwright-core@
.
Asegúrese de que la variable de entorno PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
no esté configurada ya que el nuevo modo sin cabeza no es compatible a través de una capa.
// Asegúrate de que:// - Estás usando una versión de Playwright compatible (consulta https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Tú Subí el archivo headless_shell-*.zip como una capa Lambda y configuré Lambda para usar esa capa.import { chromium } de "playwright-core";export const handler = async () => { const browser = await chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'],executablePath: '/opt/chrome-headless -shell-linux64/chrome-headless-shell' }); página const = espera navegador.newPage(); // tu código de Dramaturgo como siempre}
Si aún no tienes Puppeteer instalado: npm install puppeteer@
.
// Asegúrate de que:// - Estás usando una versión compatible de Puppeteer (consulta https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Tú Subí el archivo headless_shell-*.zip como una capa Lambda y configuré Lambda para usar esa capa. const browser = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sin cabeza : 'shell', ruta ejecutable: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); página const = espera navegador.newPage(); // tu código Titiritero como siempre}
Si aún no tienes Puppeteer instalado: npm install puppeteer@
.
// Asegúrate de que:// - Estás usando una versión compatible de Puppeteer (consulta https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Tú Subí el archivo headless_shell-*.zip como una capa Lambda y configuré Lambda para usar esa capa. const browser = await puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sin cabeza : verdadero, ruta ejecutable: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); página const = espera navegador.newPage(); // tu código Titiritero como siempre}
Probamos exhaustivamente nuestros binarios antes de publicarlos. Pero siéntete libre de crear un problema si experimentas un comportamiento inesperado.
Nuestros binarios se compilan en una acción de Github. Esto significa que puedes seguir exactamente cómo se construyen nuestros archivos binarios de Chromium, desde el origen hasta la implementación. Esto significa que puede verificar la integridad y la calidad de nuestros archivos binarios y comprender mejor el proceso que implica su creación.
La instalación automática utiliza variables de entorno para configurar Playwright/Puppeteer para descargar archivos binarios compatibles con Lambda desde nuestra CDN. La instalación manual requiere descargar el archivo zip correcto que contiene las dependencias requeridas y cargarlo en Lambda manualmente a través de una capa Lambda.
Los binarios de Chromium para Amazon Linux 2 (AL2) y Amazon Linux 2023 (AL2023) son diferentes porque están compilados con diferentes versiones del kernel y dependencias de Linux.
Las principales diferencias son:
Versión del kernel: AL2 se basa en el kernel 4.14, mientras que AL2023 se basa en el kernel 5.10. Esto significa que los binarios AL2023 se compilan con una versión del kernel más reciente, que puede proporcionar un mejor soporte para hardware y funciones más recientes.
Versiones de dependencia: las dependencias utilizadas para crear los binarios de Chromium, como glibc, libstdc++ y otras bibliotecas, también son diferentes entre AL2 y AL2023. Estas diferencias pueden afectar la compatibilidad y funcionalidad del navegador Chromium.
Si está utilizando Amazon Linux 2 (AL2), debe descargar los binarios de Chromium compilados específicamente para AL2. Si está utilizando Amazon Linux 2023 (AL2023), debe descargar los archivos binarios de Chromium compilados específicamente para AL2023.
Si está utilizando Node.js, tenga en cuenta que:
Los tiempos de ejecución Lambda de Node.js 16 y 18 utilizan Amazon Linux 2 (AL2)
El tiempo de ejecución de Node.js 20 utiliza Amazon Linux 2023 (AL2023)
Sí. Por favor, mira esto.