該儲存庫提供為 AWS Lambda 編譯的 Chromium 二進位文件,與 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 層安裝,請下載包含 Chromium 及其所需相依性的正確 zip 文件,然後自行上傳至 Lambda(詳細資料)。
我們努力在正式發布後立即提供相容的 Chromium 版本。然而,編譯、調試和測試這些建置是資源密集的,並且需要大量的運算能力和人力。為了確保我們能夠繼續提供這項服務,我們需要專業版訂閱或一次性付款才能存取最新的 5 個版本。
鉻版 | 相容的劇作家版本 | 相容的 Puppeteer 版本 | 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 | 下載AL2 下載AL2023 | 下載AL2 下載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 | 下載AL2 下載AL2023 | 下載AL2 下載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 | 下載AL2 下載AL2023 | 下載AL2 下載AL2023 |
122.0.6261 | v22.2.0 、 v22.3.0 、 v22.4.0 、 v22.4.1 、 v22.5.0 | 下載AL2 下載AL2023 | 下載AL2 下載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 | 下載AL2 下載AL2023 | 下載AL2 下載AL2023 |
120.0.6099 | v1.40.0 , v1.40.1 | v21.8.0 | 下載AL2 下載AL2023 | 下載AL2 下載AL2023 |
*存取 5 個最新的主要 Chromium 版本二進位檔案需要專業訂閱或一次性付款。
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 #(如果您在 ARM64 上使用 NodeJS 16/18)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chm/Mr. arm64 #(如果您在ARM64 上使用NodeJS 20)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 #(如果您在x86_64 上使用NodeJS 16/189797_4949_42_ 1818CH_L4 files.chromiumforlambda.org/amazon-linux-2023/x86_64 #(如果您在x86_64 上使用NodeJS 20)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 } from "playwright-core";export const handler = async () => { from "playwright-core";export const handler = async () => { from "playwright-core";export const handler = async () => { from "playwright-core";export const handler = async () => { from "playwright-core";export const handler = async () => { const install = require('playwright-core/lib/server').installBrowsersForNpmInstall; 等待安裝(['鉻']); const browser =等 chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'], }); const page = 等待 browser.newPage(); // 像往常一樣你的劇作家代碼}
如果您尚未安裝 Puppeteer: npm install puppeteer@
。
配置以下環境變數。
PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 #(如果您在 ARM64 上使用 NodeJS 16/18)PUPPETEER_CHROME_LWNcaLOAD_BASE_URWNLNium/M.3000m. arm64 #(如果您在ARM64 上使用NodeJS 20)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 #(如果您在x86_64 上使用httpsJS 16/18642(如果您在x86_64 上使用httpsPURL164 2_U4URLPE_U42_FF2_F24 1642_FF2_FF2_FF2_F24 1642_BFFF2_FF2_FF2_F24 1642_BFFFFF2_BF2_F2_B4FFFF2_F2 上使用files.chromiumforlambda.org/amazon-linux-2023/x86_64 #(如果您在x86_64 上使用NodeJS 20)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=://files.chrom/amaondam-Mr.使用NodeJS 16/18)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/arm64 # (如果您在ARM64 上使用NodeJS 20)PPTE_ iumforlambda.org/amazon- linux-2/x86_64 #(如果您在x86_64 上使用NodeJS 16/18)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-LOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-LOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023=https://files. ER_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_DIRimportsuppleupper = const install = require(`puppeteer/internal/node/install.js`).downloadBrowsers; 等待安裝() const browser = wait puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],headless : 'shell' | true // true 以新的無頭模式啟動瀏覽器,'shell' 啟動稱為舊無頭模式的shell。 }); const page = 等待 browser.newPage(); // 像往常一樣你的 Puppeteer 程式碼}
如果您尚未安裝 Puppeteer: npm install puppeteer@
。
配置以下環境變數。
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 #(如果您在 ARM64 上使用 NodeJS 16/18)PUPPETEER_DOWNLOAD_BASE_URL=https://files.3/amaium arm64 #(如果您在ARM64 上使用NodeJS 20)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 #(如果您在x86_64 上使用NodeJS 16/18))PDOPASE_FURL 7/URL 1817) files.chromiumforlambda.org/amazon-linux-2023/x86_64 #(如果您在x86_64 上使用NodeJS 20)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=SKID_D(如果您使用新的無頭模式)PUPCD(DCHm_D活動_D(如果您使用新的無頭模式)P&D(DFCHDP_D(如果您使用舊的頭模式)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 from "puppeteer";export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; 等待安裝() const browser = wait puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],headless : 'shell' | true // true 以新的無頭模式啟動瀏覽器,'shell' 啟動稱為舊無頭模式的shell。 }); const page = 等待 browser.newPage(); // 像往常一樣你的 Puppeteer 程式碼}
如果您尚未安裝 Puppeteer: npm install puppeteer@
。
配置以下環境變數。
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 #(如果您在 ARM64 上使用 NodeJS 16/18)PUPPETEER_DOWNLOAD_BASE_URL=https://files.3/amaium arm64 #(如果您在ARM64 上使用NodeJS 20)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 #(如果您在x86_64 上使用NodeJS 16/18))PDOPASE_FURL 7/URL 1817) files.chromiumforlambda.org/amazon-linux-2023/x86_64 #(如果您在x86_64 上使用NodeJS 20)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=SKID_D(如果您使用新的無頭模式)PUPCD(DCHm_D活動_D(如果您使用新的無頭模式)P&D(DFCHDP_D(如果您使用舊的頭模式)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 from "puppeteer";export const handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; 等待安裝() const browser = wait puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],headless : true | 'new' // 'new' 以新的無頭模式啟動瀏覽器,true 啟動稱為舊無頭模式的shell。 }); const page = 等待 browser.newPage(); // 像往常一樣你的 Puppeteer 程式碼}
Lambda 層是包含補充程式碼或資料的 .zip 檔案存檔。您可以使用 Lambda 層將 Chromium 瀏覽器與您的函數打包。由於大小限制,Chromium 只能與舊的無頭模式一起使用(透過 chrome-headless-shell 二進位)。遺憾的是,新的無頭模式中使用的完整 Chromium 二進位檔太大,無法透過層安裝。
您可以下載與您的 Playwright / Puppeteer 版本相符的 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 配置為使用該層。 const browser =等 chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'],executablePath: '/opt/chrome-headless -shell-linux64/chrome-headless-shell' }); const page = 等待 browser.newPage(); // 像往常一樣你的劇作家代碼}
如果您尚未安裝 Puppeteer: npm install puppeteer@
。
// 確保:// - 您使用的是受支援的 Puppeteer 版本(請參閱 https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions)。已將headless_shell-*.zip 檔案上傳為Lambda 層,並將您的Lambda 配置為使用該層。 const browser = wait 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 = 等待 browser.newPage(); // 像往常一樣你的 Puppeteer 程式碼}
如果您尚未安裝 Puppeteer: npm install puppeteer@
。
// 確保:// - 您使用的是受支援的 Puppeteer 版本(請參閱 https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions)。已將headless_shell-*.zip 檔案上傳為Lambda 層,並將您的Lambda 配置為使用該層。 const browser = wait 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 = 等待 browser.newPage(); // 像往常一樣你的 Puppeteer 程式碼}
我們在發布之前徹底測試我們的二進位。但如果您遇到意外行為,請隨時提出問題。
我們的二進位檔案是在 Github 操作中編譯的。這意味著您可以準確地了解我們的 Chromium 二進位檔案從原始程式碼到部署的建置方式。這意味著您可以驗證我們的二進位檔案的完整性和質量,並更好地了解創建它們的過程。
自動安裝使用環境變數來設定 Playwright/Puppeteer 從我們的 CDN 下載與 Lambda 相容的二進位。手動安裝需要下載包含所需依賴項的正確 zip 文件,並透過 Lambda 層手動上傳到 Lambda。
Amazon Linux 2 (AL2) 和 Amazon Linux 2023 (AL2023) 的 Chromium 二進位檔案有所不同,因為它們是使用不同版本的 Linux 核心和依賴項進行編譯的。
主要區別是:
內核版本:AL2基於4.14內核,而AL2023基於5.10內核。這意味著 AL2023 二進位檔案是使用較新的核心版本編譯的,可以為較新的硬體和功能提供更好的支援。
依賴項版本:用於建立 Chromium 二進位檔案的依賴項(例如 glibc、libstdc++ 和其他函式庫)在 AL2 和 AL2023 之間也有所不同。這些差異可能會影響 Chromium 瀏覽器的相容性和功能。
如果您使用 Amazon Linux 2 (AL2),則應下載專為 AL2 編譯的 Chromium 二進位。如果您使用 Amazon Linux 2023 (AL2023),則應下載專為 AL2023 編譯的 Chromium 二進位。
如果您使用 Node.js,請注意:
Node.js 16 和 18 Lambda 執行時期使用 Amazon Linux 2 (AL2)
Node.js 20 執行階段使用 Amazon Linux 2023 (AL2023)
是的。請看一下這個。