Este repositório fornece binários do Chromium compilados para AWS Lambda, compatíveis e testados com Playwright e Puppeteer.
Oferecemos binários ARM_64
e X86_64
, bem como suporte para Amazon Linux 2 (NodeJS 16 e 18) e Amazon Linux 2023 (NodeJS 20+).
Já usa Puppeteer ou Playwright? Não há necessidade de adicionar pacotes NPM adicionais ao seu projeto!
Basta definir as variáveis de ambiente apropriadas no Lambda e o Playwright/Puppeteer baixará automaticamente nossos binários compatíveis com Lambda. Alternativamente, você pode baixar e instalar nossos binários manualmente.
Para instalação automática, defina variáveis de ambiente e o Playwright/Puppeteer baixará automaticamente os binários compatíveis (detalhes).
Para instalação por meio de uma camada Lambda, baixe o arquivo zip correto contendo o Chromium e suas dependências necessárias e carregue você mesmo no Lambda (detalhes).
Nós nos esforçamos para disponibilizar versões compatíveis do Chromium assim que forem lançadas oficialmente. No entanto, compilar, depurar e testar essas compilações consome muitos recursos e requer poder computacional e esforço humano significativos. Para garantir que possamos continuar a fornecer este serviço, exigimos uma assinatura profissional ou um pagamento único para acesso às 5 versões mais recentes.
Versão cromo | Versões compatíveis do dramaturgo | Versões de marionetista compatíveis | Baixar ARM | Baixar X86 |
---|---|---|---|---|
130.0.6723 | v1.48.0 , v1.48.1 , v1.48.2 | v23.6.0 | Baixar AL2* Baixar AL2023* | Baixar AL2* Baixar 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 | Baixar AL2* Baixar AL2023* | Baixar AL2* Baixar 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 | Baixar AL2* Baixar AL2023* | Baixar AL2* Baixar 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 | Baixar AL2* Baixar AL2023* | Baixar AL2* Baixar 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 | Baixar AL2* Baixar AL2023* | Baixar AL2* Baixar AL2023* | |
125.0.6422 | v1.44.0 , v1.44.1 | v22.10.0 , v22.10.1 , v22.9.0 | Baixar AL2 Baixe AL2023 | Baixar AL2 Baixe 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 | Baixar AL2 Baixe AL2023 | Baixar AL2 Baixe 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 | Baixar AL2 Baixe AL2023 | Baixar AL2 Baixe AL2023 |
122.0.6261 | v22.2.0 , v22.3.0 , v22.4.0 , v22.4.1 , v22.5.0 | Baixar AL2 Baixe AL2023 | Baixar AL2 Baixe 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 | Baixar AL2 Baixe AL2023 | Baixar AL2 Baixe AL2023 |
120.0.6099 | v1.40.0 , v1.40.1 | v21.8.0 | Baixar AL2 Baixe AL2023 | Baixar AL2 Baixe AL2023 |
*O acesso aos cinco binários mais recentes do Chromium requer uma assinatura profissional ou um pagamento único.
Tanto o Puppeteer quanto o Playwright possuem funcionalidade integrada para baixar um navegador compatível de um CDN. Em vez de usar o CDN padrão, definimos uma variável de ambiente para instruir o Puppeteer/Playwright a baixar o navegador em files.chromiumforlambda.org
. No Lambda, apenas o diretório /tmp é gravável, então precisamos salvar o navegador lá.
Se você ainda não tem o Playwright instalado: npm install playwright-core@
.
Configure as variáveis de ambiente a seguir. Além disso, você pode optar por configurar PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
que o Playwright usa para ativar o novo modo sem cabeça.
PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (se você estiver usando NodeJS 16/18 em ARM64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (se você estiver usando NodeJS 20 em ARM64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (se você estiver usando NodeJS 16/18 em x86_64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (se você estiver usando NodeJS 20 em x86_64)PLAYWRIGHT_BROWSERS_PATH=/tmp
// Certifique-se de que: // - Você está usando uma versão compatível do Playwright (consulte https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Você defini process.env.PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST e process.env.PLAYWRIGHT_BROWSERS_PATH.import { chromium } de "playwright-core";export const handler = async () => { const install = require('playwright-core/lib/server').installBrowsersForNpmInstall; aguarde instalação(['cromo']); const navegador = aguarda chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'], }); const page = aguarda navegador.newPage(); // seu código do Playwright como de costume}
Se você ainda não tem o Puppeteer instalado: npm install puppeteer@
.
Configure as variáveis de ambiente a seguir.
PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (se você estiver usando NodeJS 16/18 em ARM64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (se você estiver usando NodeJS 20 em ARM64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (se você estiver usando NodeJS 16/18 em x86_64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (se você estiver usando NodeJS 20 em x86_64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (se você está usando NodeJS 16/18 em ARM64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/arm64 # (se você estiver usando NodeJS 20 em ARM64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL= https://arquivos. chromiumforlambda.org/amazon-linux-2/x86_64 # (se você estiver usando NodeJS 16/18 em x86_64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (se você estiver usando NodeJS 20 em x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (se você estiver usando o novo modo headless)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (se você estiver usando o antigo modo headless)PUPPETEER_CACHE_DIR=/tmp
// Certifique-se de que: // - Você está usando uma versão suportada do Puppeteer (consulte https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Você definimos process.env.PUPPETEER_CHROME_DOWNLOAD_BASE_URL, process.env.PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL e process.env.PUPPETEER_CACHE_DIR.import puppeteer de "puppeteer";export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowsers; aguardar instalação() const navegador = aguarda puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sem cabeça : 'shell' | true // true inicia o navegador no novo modo headless, 'shell' inicia o shell conhecido como o antigo modo headless. }); const page = aguarda navegador.newPage(); // seu código do Puppeteer normalmente}
Se você ainda não tem o Puppeteer instalado: npm install puppeteer@
.
Configure as variáveis de ambiente a seguir.
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (se você estiver usando NodeJS 16/18 em ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (se você estiver usando NodeJS 20 em ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (se você estiver usando NodeJS 16/18 em x86_64)PUPPETEER_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (se você estiver usando NodeJS 20 em x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (se você estiver usando o novo modo headless)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (se você estou usando o antigo modo headless)PUPPETEER_CACHE_DIR=/tmp
// Certifique-se de que: // - Você está usando uma versão suportada do Puppeteer (consulte https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Você definimos process.env.PUPPETEER_DOWNLOAD_BASE_URL e process.env.PUPPETEER_CACHE_DIR.import puppeteer de "puppeteer";export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; aguardar instalação() const navegador = aguarda puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sem cabeça : 'shell' | true // true inicia o navegador no novo modo headless, 'shell' inicia o shell conhecido como o antigo modo headless. }); const page = aguarda navegador.newPage(); // seu código do Puppeteer normalmente}
Se você ainda não tem o Puppeteer instalado: npm install puppeteer@
.
Configure as variáveis de ambiente a seguir.
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (se você estiver usando NodeJS 16/18 em ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (se você estiver usando NodeJS 20 em ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (se você estiver usando NodeJS 16/18 em x86_64)PUPPETEER_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (se você estiver usando NodeJS 20 em x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (se você estiver usando o novo modo headless)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (se você estou usando o antigo modo headless)PUPPETEER_CACHE_DIR=/tmp
// Certifique-se de que: // - Você está usando uma versão suportada do Puppeteer (consulte https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Você definimos process.env.PUPPETEER_DOWNLOAD_BASE_URL e process.env.PUPPETEER_CACHE_DIR.import puppeteer de "puppeteer";export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; aguardar instalação() const navegador = aguarda puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sem cabeça : true | 'new' // 'new' inicia o navegador no novo modo headless, true inicia o shell conhecido como antigo modo headless. }); const page = aguarda navegador.newPage(); // seu código do Puppeteer normalmente}
Uma camada Lambda é um arquivo .zip que contém código ou dados complementares. Você pode usar uma camada Lambda para empacotar o navegador Chromium com sua função. Devido aos limites de tamanho, o Chromium só pode ser usado com o antigo modo headless (por meio do binário chrome-headless-shell). Infelizmente, o binário completo do Chromium usado no novo modo headless é muito grande para ser instalado por meio de uma camada.
Você pode baixar o headless_shell-*.zip que corresponde à sua versão do Playwright / Puppeteer e carregá-lo como uma camada.
Se você ainda não tem o Playwright instalado: npm install playwright-core@
.
Certifique-se de que a variável de ambiente PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
não esteja definida, pois o novo modo headless não é suportado por meio de uma camada.
// Certifique-se de que: // - Você está usando uma versão compatível do Playwright (consulte https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Você fiz upload do arquivo headless_shell-*.zip como uma camada Lambda e configurei seu Lambda para usar essa camada.import { chromium } from "playwright-core";export const handler = async () => { const navegador = aguardar chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'],executablePath: '/opt/chrome-headless -shell-linux64/chrome-headless-shell' }); const page = aguarda navegador.newPage(); // seu código do Playwright como de costume}
Se você ainda não tem o Puppeteer instalado: npm install puppeteer@
.
// Certifique-se de que: // - Você está usando uma versão suportada do Puppeteer (consulte https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Você fiz upload do arquivo headless_shell-*.zip como uma camada Lambda e configurei seu Lambda para usar essa camada.import puppeteer from "puppeteer";export const handler = async () => { const navegador = aguarda puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sem cabeça : 'shell', executávelPath: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); const page = aguarda navegador.newPage(); // seu código do Puppeteer normalmente}
Se você ainda não tem o Puppeteer instalado: npm install puppeteer@
.
// Certifique-se de que: // - Você está usando uma versão suportada do Puppeteer (consulte https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Você fiz upload do arquivo headless_shell-*.zip como uma camada Lambda e configurei seu Lambda para usar essa camada.import puppeteer from "puppeteer";export const handler = async () => { navegador const = aguarda puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], sem cabeça : verdadeiro, executávelPath: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); const page = aguarda navegador.newPage(); // seu código do Puppeteer normalmente}
Testamos exaustivamente nossos binários antes de publicar. Mas sinta-se à vontade para criar um problema se tiver um comportamento inesperado.
Nossos binários são compilados em uma ação do Github. Isso significa que você pode acompanhar exatamente como nossos binários do Chromium são criados, desde a origem até a implantação. Isso significa que você pode verificar a integridade e a qualidade de nossos binários e compreender melhor o processo necessário para criá-los.
A instalação automática usa variáveis de ambiente para configurar o Playwright/Puppeteer para baixar binários compatíveis com Lambda de nosso CDN. A instalação manual requer o download do arquivo zip correto contendo as dependências necessárias e o upload para o Lambda manualmente por meio de uma camada Lambda.
Os binários do Chromium para Amazon Linux 2 (AL2) e Amazon Linux 2023 (AL2023) são diferentes porque são compilados com diferentes versões do kernel Linux e dependências.
As principais diferenças são:
Versão do kernel: AL2 é baseado no kernel 4.14, enquanto AL2023 é baseado no kernel 5.10. Isso significa que os binários AL2023 são compilados com uma versão mais recente do kernel, que pode fornecer melhor suporte para hardware e recursos mais recentes.
Versões de dependência: As dependências usadas para construir os binários do Chromium, como glibc, libstdc++ e outras bibliotecas, também são diferentes entre AL2 e AL2023. Essas diferenças podem afetar a compatibilidade e a funcionalidade do navegador Chromium.
Se você estiver usando o Amazon Linux 2 (AL2), deverá fazer download dos binários do Chromium compilados especificamente para AL2. Se você estiver usando o Amazon Linux 2023 (AL2023), deverá fazer download dos binários do Chromium compilados especificamente para AL2023.
Se você estiver usando Node.js, observe que:
Os tempos de execução Lambda do Node.js 16 e 18 estão usando Amazon Linux 2 (AL2)
O tempo de execução do Node.js 20 está usando Amazon Linux 2023 (AL2023)
Sim. Por favor, dê uma olhada nisso.