该存储库提供为 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.chromiumforlambda.org/amazon-linux-2023 /arm64 #(如果您在 NodeJS 20 上使用ARM64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 #(如果您在 x86_64 上使用 NodeJS 16/18)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://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 () => { 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_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 #(如果您在 x86_64 上使用 NodeJS 16/18)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux -2023/x86_64 #(如果您在 x86_64 上使用 NodeJS 20)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 #(如果您在 x86_64 上使用 NodeJS 16/18) ARM64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/arm64 #(如果您在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 # (如果您在 x86_64 上使用 NodeJS 20)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (如果您使用新的 headless mode)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 from "puppeteer";export const handler = async () => { 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.chromiumforlambda.org/amazon-linux-2023 /arm64 #(如果您使用 NodeJS 20 ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 #(如果您在 x86_64 上使用 NodeJS 16/18)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux -2023/x86_64 #(如果你使用 NodeJS x86_64 上的 20)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 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.chromiumforlambda.org/amazon-linux-2023 /arm64 #(如果您使用 NodeJS 20 ARM64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/x86_64 #(如果您在 x86_64 上使用 NodeJS 16/18)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux -2023/x86_64 #(如果你使用 NodeJS x86_64 上的 20)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 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 配置为使用该层。 import { chromium } from "playwright-core";export const handler = async () => { 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 配置为使用该层。import puppeteer from "puppeteer";export const handler = async () => { 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 配置为使用该层。import puppeteer from "puppeteer";export const handler = async () => { 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)
是的。请看一下这个。