Dieses Repository stellt Chromium-Binärdateien bereit, die für AWS Lambda kompiliert wurden und mit Playwright und Puppeteer kompatibel und getestet sind.
Wir bieten sowohl ARM_64
als auch X86_64
Binärdateien sowie Unterstützung für Amazon Linux 2 (NodeJS 16 und 18) und Amazon Linux 2023 (NodeJS 20+).
Nutzen Sie bereits Puppeteer oder Playwright? Sie müssen Ihrem Projekt keine zusätzlichen NPM-Pakete hinzufügen!
Legen Sie einfach die entsprechenden Umgebungsvariablen in Lambda fest und Playwright/Puppeteer lädt automatisch unsere Lambda-kompatiblen Binärdateien herunter. Alternativ können Sie unsere Binärdateien manuell herunterladen und installieren.
Für die automatische Installation legen Sie Umgebungsvariablen fest und Playwright/Puppeteer lädt automatisch kompatible Binärdateien herunter (Details).
Laden Sie für die Installation über eine Lambda-Ebene die richtige ZIP-Datei herunter, die Chromium und die erforderlichen Abhängigkeiten enthält, und laden Sie sie selbst auf Lambda hoch (Details).
Wir bemühen uns, kompatible Chromium-Versionen verfügbar zu machen, sobald sie offiziell veröffentlicht werden. Das Kompilieren, Debuggen und Testen dieser Builds ist jedoch ressourcenintensiv und erfordert erhebliche Rechenleistung und menschlichen Aufwand. Um sicherzustellen, dass wir diesen Service weiterhin anbieten können, benötigen wir ein Pro-Abonnement oder eine einmalige Zahlung für den Zugriff auf die neuesten 5 Versionen.
Chromium-Version | Kompatible Playwright-Versionen | Kompatible Puppeteer-Versionen | ARM-Download | X86-Download |
---|---|---|---|---|
130.0.6723 | v1.48.0 , v1.48.1 , v1.48.2 | v23.6.0 | AL2 herunterladen* AL2023 herunterladen* | AL2 herunterladen* AL2023 herunterladen* |
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 herunterladen* AL2023 herunterladen* | AL2 herunterladen* AL2023 herunterladen* |
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 herunterladen* AL2023 herunterladen* | AL2 herunterladen* AL2023 herunterladen* |
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 herunterladen* AL2023 herunterladen* | AL2 herunterladen* AL2023 herunterladen* |
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 herunterladen* AL2023 herunterladen* | AL2 herunterladen* AL2023 herunterladen* | |
125.0.6422 | v1.44.0 , v1.44.1 | v22.10.0 , v22.10.1 , v22.9.0 | Laden Sie AL2 herunter Laden Sie AL2023 herunter | Laden Sie AL2 herunter Laden Sie AL2023 herunter |
124.0.6367 | v1.43.0 , v1.43.1 | v22.7.0 , v22.7.1 , v22.8.0 , v22.8.1 , v22.8.2 | Laden Sie AL2 herunter Laden Sie AL2023 herunter | Laden Sie AL2 herunter Laden Sie AL2023 herunter |
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 | Laden Sie AL2 herunter Laden Sie AL2023 herunter | Laden Sie AL2 herunter Laden Sie AL2023 herunter |
122.0.6261 | v22.2.0 , v22.3.0 , v22.4.0 , v22.4.1 , v22.5.0 | Laden Sie AL2 herunter Laden Sie AL2023 herunter | Laden Sie AL2 herunter Laden Sie AL2023 herunter | |
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 | Laden Sie AL2 herunter Laden Sie AL2023 herunter | Laden Sie AL2 herunter Laden Sie AL2023 herunter |
120.0.6099 | v1.40.0 , v1.40.1 | v21.8.0 | Laden Sie AL2 herunter Laden Sie AL2023 herunter | Laden Sie AL2 herunter Laden Sie AL2023 herunter |
*Für den Zugriff auf die 5 neuesten Binärdateien der Hauptversion von Chromium ist ein Pro-Abonnement oder eine einmalige Zahlung erforderlich.
Sowohl Puppeteer als auch Playwright verfügen über integrierte Funktionen zum Herunterladen eines kompatiblen Browsers von einem CDN. Anstatt das Standard-CDN zu verwenden, legen wir eine Umgebungsvariable fest, um Puppeteer/Playwright anzuweisen, den Browser stattdessen von files.chromiumforlambda.org
herunterzuladen. Auf Lambda ist nur das Verzeichnis /tmp beschreibbar, daher müssen wir den Browser dort speichern.
Wenn Sie Playwright noch nicht installiert haben: npm install playwright-core@
.
Konfigurieren Sie die folgenden Umgebungsvariablen. Darüber hinaus können Sie PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
konfigurieren, das Playwright zum Aktivieren des neuen Headless-Modus verwendet.
PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (wenn Sie NodeJS 16/18 auf ARM64 verwenden)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (wenn Sie NodeJS 20 auf ARM64 verwenden)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (wenn Sie NodeJS 16/18 auf x86_64 verwenden)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (wenn Sie NodeJS 20 auf x86_64 verwenden)PLAYWRIGHT_BROWSERS_PATH=/tmp
// Stellen Sie sicher, dass: // - Sie eine unterstützte Playwright-Version verwenden (siehe https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Sie Habe Process.env.PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST und Process.env.PLAYWRIGHT_BROWSERS_PATH.import { chromium } von „playwright-core“ gesetzt;export const handler = async () => { const install = require('playwright-core/lib/server').installBrowsersForNpmInstall; Warten Sie auf install(['chromium']); const browser = waiting chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'], }); const page = waiting browser.newPage(); // Ihr Playwright-Code wie gewohnt}
Wenn Sie Puppeteer noch nicht installiert haben: npm install puppeteer@
.
Konfigurieren Sie die folgenden Umgebungsvariablen.
PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (wenn Sie NodeJS 16/18 auf ARM64 verwenden)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (wenn Sie NodeJS 20 auf ARM64 verwenden)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (wenn Sie NodeJS 16/18 auf x86_64 verwenden)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (wenn Sie NodeJS 20 auf x86_64 verwenden)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (falls Sie verwenden NodeJS 16/18 auf ARM64. Dateien. chromiumforlambda.org/amazon-linux-2/x86_64 # (wenn Sie NodeJS 16/18 auf x86_64 verwenden)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (wenn Sie mit NodeJS 20 auf x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (wenn Sie den neuen Headless-Modus verwenden)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (wenn Sie den alten Headless-Modus verwenden)PUPPETEER_CACHE_DIR=/tmp
// Stellen Sie sicher, dass: // - Sie eine unterstützte Puppeteer-Version verwenden (siehe https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Sie Habe Process.env.PUPPETEER_CHROME_DOWNLOAD_BASE_URL, Process.env.PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL und Process.env.PUPPETEER_CACHE_DIR festgelegt.import puppeteer from „puppeteer“;export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowsers; warte auf install() const browser = waiting puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],headless : 'shell' |. true // true startet den Browser im neuen Headless-Modus, 'Shell' startet die Shell, die als alter Headless-Modus bekannt ist. }); const page = waiting browser.newPage(); // Ihr Puppeteer-Code wie gewohnt}
Wenn Sie Puppeteer noch nicht installiert haben: npm install puppeteer@
.
Konfigurieren Sie die folgenden Umgebungsvariablen.
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (wenn Sie NodeJS 16/18 auf ARM64 verwenden)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (wenn Sie NodeJS 20 auf ARM64 verwenden)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (wenn Sie NodeJS 16/18 auf x86_64 verwenden)PUPPETEER_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (wenn Sie NodeJS 20 auf x86_64 verwenden)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (wenn Sie den neuen Headless-Modus verwenden)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (wenn Sie Ich verwende den alten Headless-Modus)PUPPETEER_CACHE_DIR=/tmp
// Stellen Sie sicher, dass: // - Sie eine unterstützte Puppeteer-Version verwenden (siehe https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Sie Habe Process.env.PUPPETEER_DOWNLOAD_BASE_URL und Process.env.PUPPETEER_CACHE_DIR festgelegt.import puppeteer from „puppeteer“;export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; warte auf install() const browser = waiting puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],headless : 'shell' |. true // true startet den Browser im neuen Headless-Modus, 'Shell' startet die Shell, die als alter Headless-Modus bekannt ist. }); const page = waiting browser.newPage(); // Ihr Puppeteer-Code wie gewohnt}
Wenn Sie Puppeteer noch nicht installiert haben: npm install puppeteer@
.
Konfigurieren Sie die folgenden Umgebungsvariablen.
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (wenn Sie NodeJS 16/18 auf ARM64 verwenden)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023 /arm64 # (wenn Sie NodeJS 20 auf ARM64 verwenden)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 # (wenn Sie NodeJS 16/18 auf x86_64 verwenden)PUPPETEER_DOWNLOAD_BASE_URL=https ://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (wenn Sie NodeJS 20 auf x86_64 verwenden)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (wenn Sie den neuen Headless-Modus verwenden)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (wenn Sie Ich verwende den alten Headless-Modus)PUPPETEER_CACHE_DIR=/tmp
// Stellen Sie sicher, dass: // - Sie eine unterstützte Puppeteer-Version verwenden (siehe https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Sie Habe Process.env.PUPPETEER_DOWNLOAD_BASE_URL und Process.env.PUPPETEER_CACHE_DIR festgelegt.import puppeteer from „puppeteer“;export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; warte auf install() const browser = waiting puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],headless : true |. 'new' // 'new' startet den Browser im neuen Headless-Modus, true startet die Shell, die als alter Headless-Modus bekannt ist. }); const page = waiting browser.newPage(); // Ihr Puppeteer-Code wie gewohnt}
Eine Lambda-Ebene ist ein ZIP-Dateiarchiv, das zusätzlichen Code oder Daten enthält. Sie können eine Lambda-Ebene verwenden, um den Chromium-Browser mit Ihrer Funktion zu packen. Aufgrund von Größenbeschränkungen kann Chromium nur mit dem alten Headless-Modus (über die Binärdatei chrome-headless-shell) verwendet werden. Leider ist die vollständige Chromium-Binärdatei, die im neuen Headless-Modus verwendet wird, zu groß, um über einen Layer installiert zu werden.
Sie können die Datei headless_shell-*.zip herunterladen, die Ihrer Playwright-/Puppeteer-Version entspricht, und sie als Ebene hochladen.
Wenn Sie Playwright noch nicht installiert haben: npm install playwright-core@
.
Stellen Sie sicher, dass die Umgebungsvariable PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
nicht gesetzt ist, da der neue Headless-Modus nicht über eine Ebene unterstützt wird.
// Stellen Sie sicher, dass: // - Sie eine unterstützte Playwright-Version verwenden (siehe https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Sie Ich habe die Datei headless_shell-*.zip als Lambda-Ebene hochgeladen und Ihr Lambda für die Verwendung dieser Ebene konfiguriert.import { chromium } from „playwright-core“;export const handler = async () => { const browser = waiting chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'],executablePath: '/opt/chrome-headless -shell-linux64/chrome-headless-shell' }); const page = waiting browser.newPage(); // Ihr Playwright-Code wie gewohnt}
Wenn Sie Puppeteer noch nicht installiert haben: npm install puppeteer@
.
// Stellen Sie sicher, dass: // - Sie eine unterstützte Puppeteer-Version verwenden (siehe https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Sie Ich habe die Datei headless_shell-*.zip als Lambda-Ebene hochgeladen und Ihr Lambda für die Verwendung dieser Ebene konfiguriert.import puppeteer from „puppeteer“;export const handler = async () => { const browser = waiting puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],headless : 'shell',executablePath: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); const page = waiting browser.newPage(); // Ihr Puppeteer-Code wie gewohnt}
Wenn Sie Puppeteer noch nicht installiert haben: npm install puppeteer@
.
// Stellen Sie sicher, dass: // - Sie eine unterstützte Puppeteer-Version verwenden (siehe https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - Sie Ich habe die Datei headless_shell-*.zip als Lambda-Ebene hochgeladen und Ihr Lambda für die Verwendung dieser Ebene konfiguriert.import puppeteer from „puppeteer“;export const handler = async () => { const browser = waiting puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],headless : true,executablePath: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); const page = waiting browser.newPage(); // Ihr Puppeteer-Code wie gewohnt}
Wir testen unsere Binärdateien gründlich, bevor wir sie veröffentlichen. Sie können jedoch gerne ein Problem erstellen, wenn Sie unerwartetes Verhalten feststellen.
Unsere Binärdateien werden in einer Github-Aktion kompiliert. Das bedeutet, dass Sie genau verfolgen können, wie unsere Chromium-Binärdateien erstellt werden, von der Quelle bis zur Bereitstellung. Dies bedeutet, dass Sie die Integrität und Qualität unserer Binärdateien überprüfen und den Prozess ihrer Erstellung besser verstehen können.
Bei der automatischen Installation werden Umgebungsvariablen verwendet, um Playwright/Puppeteer so zu konfigurieren, dass Lambda-kompatible Binärdateien von unserem CDN heruntergeladen werden. Die manuelle Installation erfordert das Herunterladen der richtigen ZIP-Datei mit den erforderlichen Abhängigkeiten und das manuelle Hochladen in Lambda über eine Lambda-Ebene.
Die Chromium-Binärdateien für Amazon Linux 2 (AL2) und Amazon Linux 2023 (AL2023) unterscheiden sich, da sie mit unterschiedlichen Versionen des Linux-Kernels und Abhängigkeiten kompiliert werden.
Die Hauptunterschiede sind:
Kernelversion: AL2 basiert auf dem 4.14-Kernel, während AL2023 auf dem 5.10-Kernel basiert. Das bedeutet, dass die AL2023-Binärdateien mit einer neueren Kernelversion kompiliert werden, was eine bessere Unterstützung für neuere Hardware und Funktionen bieten kann.
Abhängigkeitsversionen: Die Abhängigkeiten, die zum Erstellen der Chromium-Binärdateien verwendet werden, wie z. B. glibc, libstdc++ und andere Bibliotheken, unterscheiden sich ebenfalls zwischen AL2 und AL2023. Diese Unterschiede können die Kompatibilität und Funktionalität des Chromium-Browsers beeinträchtigen.
Wenn Sie Amazon Linux 2 (AL2) verwenden, sollten Sie die speziell für AL2 kompilierten Chromium-Binärdateien herunterladen. Wenn Sie Amazon Linux 2023 (AL2023) verwenden, sollten Sie die speziell für AL2023 kompilierten Chromium-Binärdateien herunterladen.
Wenn Sie Node.js verwenden, beachten Sie bitte Folgendes:
Die Node.js 16 und 18 Lambda-Laufzeiten verwenden Amazon Linux 2 (AL2)
Die Node.js 20-Laufzeit verwendet Amazon Linux 2023 (AL2023).
Ja. Bitte schauen Sie sich das an.