พื้นที่เก็บข้อมูลนี้จัดเตรียมไบนารี Chromium ที่คอมไพล์สำหรับ AWS Lambda ซึ่งเข้ากันได้และทดสอบกับ 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 ให้ดาวน์โหลดไฟล์ zip ที่ถูกต้องซึ่งมี Chromium และจำเป็นต้องมีการขึ้นต่อกันและอัปโหลดไปยัง 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 22.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 |
*การเข้าถึงไบนารี่รุ่น Chromium หลักใหม่ล่าสุด 5 รายการจำเป็นต้องสมัครสมาชิกแบบมืออาชีพหรือชำระเงินแบบครั้งเดียว
ทั้ง Puppeteer และ Playwright มีฟังก์ชันในตัวเพื่อดาวน์โหลดเบราว์เซอร์ที่เข้ากันได้จาก CDN แทนที่จะใช้ CDN เริ่มต้น เราตั้งค่าตัวแปรสภาพแวดล้อมเพื่อสั่งให้ Puppeteer / Playwright ดาวน์โหลดเบราว์เซอร์จาก files.chromiumforlambda.org
แทน บน Lambda เฉพาะไดเร็กทอรี /tmp เท่านั้นที่สามารถเขียนได้ ดังนั้นเราจึงจำเป็นต้องบันทึกเบราว์เซอร์ไว้ที่นั่น
หากคุณยังไม่ได้ติดตั้ง Playwright: npm install playwright-core@
กำหนดค่าตัวแปรสภาพแวดล้อมต่อไปนี้ นอกจากนี้ คุณสามารถเลือกกำหนดค่า PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
ซึ่ง Playwright ใช้เพื่อเปิดใช้งานโหมด headless ใหม่
PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (หากคุณใช้ NodeJS 16/18 บน ARM64)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 # (หากคุณใช้ NodeJS 16/18 บน x86_64)PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST=https://files.chromiumforlambda.org/amazon- ลินุกซ์-2023/x86_64 # (หากคุณใช้ NodeJS 20 บน x86_64)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 } จาก "playwright-core";export const handler = อะซิงก์ () => { const ติดตั้ง = ต้องการ ('นักเขียนบทละคร-core/lib/server').installBrowsersForNpmInstall; รอการติดตั้ง (['โครเมียม']); เบราว์เซอร์ const = รอ chromium.launch ({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'], - หน้า const = รอ browser.newPage(); // รหัสนักเขียนบทละครของคุณตามปกติ}
หากคุณยังไม่ได้ติดตั้ง Puppeteer: npm install puppeteer@
กำหนดค่าตัวแปรสภาพแวดล้อมต่อไปนี้
PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (หากคุณใช้ NodeJS 16/18 บน ARM64) 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 # (หากคุณใช้ NodeJS 16/18 บน x86_64)PUPPETEER_CHROME_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/x86_64 # (หากคุณใช้ NodeJS 20 บน x86_64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (หากคุณใช้ NodeJS 16/18 บน ARM64)PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2023/arm64 # (หากคุณใช้ NodeJS 20 บน 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 # (หากคุณใช้ NodeJS 20 บน x86_64)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_CHROME_DOWNLOAD_BASE_URL, process.env.PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL และ process.env.PUPPETEER_CACHE_DIR.นำเข้า puppeteer จาก "puppeteer"; ส่งออก const handler = async () => { const ติดตั้ง = ต้องการ (`puppeteer/internal/node/install.js`).downloadBrowsers; รอการติดตั้ง () เบราว์เซอร์ const = รอ puppeteer.launch ({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],ไม่มีหัว : 'shell' |. true // true เปิดตัวเบราว์เซอร์ในโหมด headless ใหม่ 'shell' เปิดตัวเชลล์ที่เรียกว่าโหมด headless แบบเก่า - หน้า const = รอ browser.newPage(); // รหัส Puppeteer ของคุณตามปกติ}
หากคุณยังไม่ได้ติดตั้ง Puppeteer: npm install puppeteer@
กำหนดค่าตัวแปรสภาพแวดล้อมต่อไปนี้
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (หากคุณใช้ NodeJS 16/18 บน ARM64)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 # (หากคุณใช้ NodeJS 16/18 บน x86_64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux -2023/x86_64 # (ถ้าคุณ ใช้ NodeJS 20 บน x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (หากคุณใช้โหมด headless ใหม่) PUPETEER_SKIP_CHROME_DOWNLOAD=true # (หากคุณใช้โหมด headless แบบเก่า) 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 จาก "puppeteer";export const handler = async - const ติดตั้ง = ต้องการ (`puppeteer/internal/node/install.js`).downloadBrowser; รอการติดตั้ง () เบราว์เซอร์ const = รอ puppeteer.launch ({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],ไม่มีหัว : 'shell' |. true // true เปิดตัวเบราว์เซอร์ในโหมด headless ใหม่ 'shell' เปิดตัวเชลล์ที่เรียกว่าโหมด headless แบบเก่า - หน้า const = รอ browser.newPage(); // รหัส Puppeteer ของคุณตามปกติ}
หากคุณยังไม่ได้ติดตั้ง Puppeteer: npm install puppeteer@
กำหนดค่าตัวแปรสภาพแวดล้อมต่อไปนี้
PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux-2/arm64 # (หากคุณใช้ NodeJS 16/18 บน ARM64)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 # (หากคุณใช้ NodeJS 16/18 บน x86_64)PUPPETEER_DOWNLOAD_BASE_URL=https://files.chromiumforlambda.org/amazon-linux -2023/x86_64 # (ถ้าคุณ ใช้ NodeJS 20 บน x86_64)PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD=true # (หากคุณใช้โหมด headless ใหม่) PUPETEER_SKIP_CHROME_DOWNLOAD=true # (หากคุณใช้โหมด headless แบบเก่า) 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 จาก "puppeteer";export const handler = async - const ติดตั้ง = ต้องการ (`puppeteer/internal/node/install.js`).downloadBrowser; รอการติดตั้ง () เบราว์เซอร์ const = รอ puppeteer.launch ({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],ไม่มีหัว : true | 'new' // 'new' เปิดตัวเบราว์เซอร์ในโหมด headless ใหม่ True เปิดตัวเชลล์ที่เรียกว่าโหมด headless แบบเก่า - หน้า const = รอ browser.newPage(); // รหัส Puppeteer ของคุณตามปกติ}
เลเยอร์ Lambda คือไฟล์เก็บถาวร .zip ที่มีโค้ดหรือข้อมูลเสริม คุณสามารถใช้เลเยอร์ Lambda เพื่อรวมเบราว์เซอร์ Chromium เข้ากับฟังก์ชันของคุณได้ เนื่องจากข้อจำกัดด้านขนาด Chromium จึงสามารถใช้ได้กับโหมด headless แบบเก่าเท่านั้น (ผ่าน chrome-headless-shell binary) น่าเสียดายที่ไบนารี Chromium เต็มรูปแบบที่ใช้ในโหมด headless ใหม่นั้นใหญ่เกินกว่าจะติดตั้งผ่านเลเยอร์ได้
คุณสามารถดาวน์โหลด headless_shell-*.zip ที่ตรงกับเวอร์ชัน Playwright / Puppeteer ของคุณและอัปโหลดเป็นเลเยอร์ได้
หากคุณยังไม่ได้ติดตั้ง Playwright: npm install playwright-core@
ตรวจสอบให้แน่ใจว่าไม่ได้ตั้งค่าตัวแปรสภาพแวดล้อม PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW
เนื่องจากไม่รองรับโหมด headless ใหม่ผ่านเลเยอร์
// ตรวจสอบให้แน่ใจว่า:// - คุณกำลังใช้เวอร์ชัน Playwright ที่รองรับ (ดู https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions)// - คุณ ได้อัปโหลดไฟล์ headless_shell-*.zip เป็นเลเยอร์ Lambda และกำหนดค่า Lambda ของคุณให้ใช้ layer.import { chromium } from "playwright-core";export const handler = async () => { เบราว์เซอร์ const = รอ chromium.launch ({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'],เส้นทางปฏิบัติการ: '/opt/chrome-headless -shell-linux64/chrome-headless-shell' - หน้า const = รอ browser.newPage(); // รหัสนักเขียนบทละครของคุณตามปกติ}
หากคุณยังไม่ได้ติดตั้ง Puppeteer: npm install puppeteer@
// ตรวจสอบให้แน่ใจว่า:// - คุณกำลังใช้เวอร์ชัน Puppeteer ที่รองรับ (ดู https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions)// - คุณ ได้อัปโหลดไฟล์ headless_shell-*.zip เป็นเลเยอร์ Lambda และกำหนดค่า Lambda ของคุณให้ใช้ layer.import puppeteer จาก "puppeteer";export const handler = async () => { เบราว์เซอร์ const = รอ puppeteer.launch ({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],ไม่มีหัว : 'shell', executablePath: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' - หน้า const = รอ 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 ของคุณให้ใช้ layer.import puppeteer จาก "puppeteer";export const handler = async () => { เบราว์เซอร์ const = รอ puppeteer.launch ({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'],ไม่มีหัว : จริง, ExecutablePath: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' - หน้า const = รอ browser.newPage(); // รหัส Puppeteer ของคุณตามปกติ}
เราทดสอบไบนารีของเราอย่างละเอียดก่อนที่จะเผยแพร่ แต่อย่าลังเลที่จะสร้างปัญหาหากคุณพบพฤติกรรมที่ไม่คาดคิด
ไบนารีของเราได้รับการรวบรวมในการดำเนินการ Github ซึ่งหมายความว่าคุณสามารถติดตามได้อย่างชัดเจนว่า Chromium ไบนารีของเราถูกสร้างขึ้นอย่างไรตั้งแต่ต้นทางจนถึงการใช้งาน ซึ่งหมายความว่าคุณสามารถตรวจสอบความสมบูรณ์และคุณภาพของไบนารีของเราได้ และมีความเข้าใจที่ดีขึ้นเกี่ยวกับกระบวนการในการสร้างไบนารีเหล่านี้
การติดตั้งอัตโนมัติใช้ตัวแปรสภาพแวดล้อมเพื่อกำหนดค่า Playwright/Puppeteer ให้ดาวน์โหลดไบนารีที่เข้ากันได้กับ Lambda จาก CDN ของเรา การติดตั้งด้วยตนเองจำเป็นต้องดาวน์โหลดไฟล์ zip ที่ถูกต้องซึ่งมีการขึ้นต่อกันที่จำเป็น และอัปโหลดไปยัง Lambda ด้วยตนเองผ่านเลเยอร์ Lambda
ไบนารี Chromium สำหรับ Amazon Linux 2 (AL2) และ Amazon Linux 2023 (AL2023) มีความแตกต่างกันเนื่องจากคอมไพล์ด้วยเคอร์เนล Linux เวอร์ชันต่างๆ และการขึ้นต่อกัน
ความแตกต่างที่สำคัญคือ:
เวอร์ชันเคอร์เนล: AL2 ใช้เคอร์เนล 4.14 ในขณะที่ AL2023 ใช้เคอร์เนล 5.10 ซึ่งหมายความว่าไบนารี AL2023 ได้รับการคอมไพล์ด้วยเคอร์เนลเวอร์ชันใหม่กว่า ซึ่งสามารถให้การสนับสนุนฮาร์ดแวร์และคุณสมบัติใหม่ได้ดีขึ้น
เวอร์ชันการขึ้นต่อกัน: การขึ้นต่อกันที่ใช้ในการสร้างไบนารี Chromium เช่น glibc, libstdc++ และไลบรารีอื่น ๆ ก็แตกต่างกันระหว่าง AL2 และ AL2023 เช่นกัน ความแตกต่างเหล่านี้อาจส่งผลต่อความเข้ากันได้และฟังก์ชันการทำงานของเบราว์เซอร์ Chromium
หากคุณใช้ Amazon Linux 2 (AL2) คุณควรดาวน์โหลดไบนารี Chromium ที่คอมไพล์สำหรับ AL2 โดยเฉพาะ หากคุณใช้ Amazon Linux 2023 (AL2023) คุณควรดาวน์โหลดไบนารี Chromium ที่คอมไพล์สำหรับ AL2023 โดยเฉพาะ
หากคุณใช้ Node.js โปรดทราบว่า:
รันไทม์ Node.js 16 และ 18 Lambda ใช้ Amazon Linux 2 (AL2)
รันไทม์ Node.js 20 ใช้ Amazon Linux 2023 (AL2023)
ใช่. โปรดดูที่นี้.