يوفر هذا المستودع ثنائيات Chromium التي تم تجميعها لـ AWS Lambda، وهي متوافقة وتم اختبارها مع Playwright وPuppeteer.
نحن نقدم كلاً من الثنائيات ARM_64
و X86_64
، بالإضافة إلى دعم كل من Amazon Linux 2 (NodeJS 16 & 18) وAmazon Linux 2023 (NodeJS 20+).
هل تستخدم بالفعل محرك الدمى أو الكاتب المسرحي؟ لا حاجة لإضافة حزم NPM إضافية إلى مشروعك!
ما عليك سوى تعيين متغيرات البيئة المناسبة في Lambda وسيقوم Playwright/Puppeteer تلقائيًا بتنزيل الثنائيات المتوافقة مع Lambda. وبدلاً من ذلك، يمكنك تنزيل ثنائياتنا وتثبيتها يدويًا.
للتثبيت التلقائي، قم بتعيين متغيرات البيئة وسيقوم Playwright/Puppeteer تلقائيًا بتنزيل الثنائيات المتوافقة (التفاصيل).
للتثبيت عبر طبقة Lambda، قم بتنزيل الملف المضغوط الصحيح الذي يحتوي على Chromium والتبعيات المطلوبة وقم بتحميله إلى Lambda بنفسك (التفاصيل).
نحن نسعى جاهدين لتوفير إصدارات Chromium المتوافقة بمجرد إصدارها رسميًا. ومع ذلك، فإن تجميع هذه الإصدارات وتصحيح أخطائها واختبارها يستهلك الكثير من الموارد ويتطلب قوة حسابية كبيرة وجهدًا بشريًا. لضمان قدرتنا على الاستمرار في تقديم هذه الخدمة، نطلب اشتراكًا احترافيًا أو دفعة لمرة واحدة للوصول إلى أحدث 5 إصدارات.
نسخة الكروم | إصدارات الكاتب المسرحي المتوافقة | إصدارات محرك الدمى المتوافقة | تحميل آرم | تحميل اكس 86 |
---|---|---|---|---|
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 الافتراضي، قمنا بتعيين متغير بيئة لتوجيه محرك الدمى / الكاتب المسرحي لتنزيل المتصفح من 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 # (إذا كنت تستخدم 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-linux-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 } من "الكاتب المسرحي الأساسي"؛ معالج التصدير const = async () => { const install = require('playwright-core/lib/server').installBrowsersForNpmInstall; في انتظار التثبيت(['الكروم']); متصفح const = انتظار chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--عملية واحدة'], }); صفحة ثابتة = انتظار المتصفح.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
// تأكد من أن: // - أنك تستخدم إصدارًا مدعومًا من محرك الدمى (راجع 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 محرك الدمى من "محرك الدمى"؛export const Handler = async () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowsers; في انتظار التثبيت () متصفح const = انتظار puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], بدون رأس : 'shell' |. true // true يُطلق المتصفح في الوضع بدون رأس الجديد، بينما يُطلق 'shell' الصدفة المعروفة باسم الوضع القديم بدون رأس. }); صفحة ثابتة = انتظار المتصفح.newPage(); // رمز محرك الدمى الخاص بك كالمعتاد}
إذا لم تكن قد قمت بتثبيت 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 # (إذا كنت تستخدم الجديد وضع مقطوعة الرأس)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (إذا كنت تستخدم وضع مقطوعة الرأس القديم)PUPPETEER_CACHE_DIR=/tmp
// تأكد من أن: // - أنك تستخدم إصدارًا مدعومًا من محرك الدمى (راجع https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - أنت لقد قمت بتعيينprocess.env.PUPPETEER_DOWNLOAD_BASE_URL وprocess.env.PUPPETEER_CACHE_DIR.import محرك الدمى من "محرك الدمى"؛ معالج التصدير الثابت = غير متزامن () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; في انتظار التثبيت () متصفح const = انتظار puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], بدون رأس : 'shell' |. true // true يُطلق المتصفح في الوضع بدون رأس الجديد، بينما يُطلق 'shell' الصدفة المعروفة باسم الوضع القديم بدون رأس. }); صفحة ثابتة = انتظار المتصفح.newPage(); // رمز محرك الدمى الخاص بك كالمعتاد}
إذا لم تكن قد قمت بتثبيت 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 # (إذا كنت تستخدم الجديد وضع مقطوعة الرأس)PUPPETEER_SKIP_CHROME_DOWNLOAD=true # (إذا كنت تستخدم وضع مقطوعة الرأس القديم)PUPPETEER_CACHE_DIR=/tmp
// تأكد من أن: // - أنك تستخدم إصدارًا مدعومًا من محرك الدمى (راجع https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - أنت لقد قمت بتعيينprocess.env.PUPPETEER_DOWNLOAD_BASE_URL وprocess.env.PUPPETEER_CACHE_DIR.import محرك الدمى من "محرك الدمى"؛ معالج التصدير الثابت = غير متزامن () => { const install = require(`puppeteer/internal/node/install.js`).downloadBrowser; في انتظار التثبيت () متصفح const = انتظار puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], بدون رأس : true |. 'new' // 'new' يطلق المتصفح في الوضع الجديد بدون رأس، بينما يطلق true الصدفة المعروفة باسم الوضع القديم بدون رأس. }); صفحة ثابتة = انتظار المتصفح.newPage(); // رمز محرك الدمى الخاص بك كالمعتاد}
طبقة Lambda عبارة عن أرشيف ملف بتنسيق zip يحتوي على تعليمات برمجية أو بيانات تكميلية. يمكنك استخدام طبقة Lambda لدمج متصفح Chromium مع وظيفتك. نظرًا لقيود الحجم، لا يمكن استخدام Chromium إلا مع الوضع القديم بدون رأس (عبر الوضع الثنائي chrome-headless-shell). من المؤسف أن ثنائي Chromium الكامل المستخدم في وضع مقطوعة الرأس الجديد كبير جدًا بحيث لا يمكن تثبيته عبر طبقة.
يمكنك تنزيل ملف headless_shell-*.zip الذي يتطابق مع إصدار Playwright / Puppeteer الخاص بك وتحميله كطبقة.
إذا لم تكن قد قمت بتثبيت 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 } من "playwright-core";export const Handler = async () => { متصفح const = انتظار chromium.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process'],executablePath: '/opt/chrome-headless -شل-لينكس 64/كروم بلا رأس-شل' }); صفحة ثابتة = انتظار المتصفح.newPage(); // كود الكاتب المسرحي الخاص بك كالمعتاد}
إذا لم تكن قد قمت بتثبيت Puppeteer بعد: npm install puppeteer@
.
// تأكد من أن: // - أنك تستخدم إصدارًا مدعومًا من محرك الدمى (راجع https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - أنت لقد قمت بتحميل ملف headless_shell-*.zip كطبقة Lambda وقمت بتكوين Lambda لاستخدام تلك الطبقة. استيراد محرك الدمى من "محرك الدمى";تصدير معالج const = async () => { متصفح const = انتظار puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], بدون رأس : 'shell'، المسار القابل للتنفيذ: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); صفحة ثابتة = انتظار المتصفح.newPage(); // رمز محرك الدمى الخاص بك كالمعتاد}
إذا لم تكن قد قمت بتثبيت Puppeteer بعد: npm install puppeteer@
.
// تأكد من أن: // - أنك تستخدم إصدارًا مدعومًا من محرك الدمى (راجع https://github.com/chromium-for-lambda/binaries?tab=readme-ov-file#versions).// - أنت لقد قمت بتحميل ملف headless_shell-*.zip كطبقة Lambda وقمت بتكوين Lambda لاستخدام تلك الطبقة. استيراد محرك الدمى من "محرك الدمى";تصدير معالج const = async () => { متصفح const = انتظار puppeteer.launch({args: ['--use-gl=angle', '--use-angle=swiftshader', '--single-process', '--no-sandbox'], بدون رأس : صحيح، المسار القابل للتنفيذ: '/opt/chrome-headless-shell-linux64/chrome-headless-shell' }); صفحة ثابتة = انتظار المتصفح.newPage(); // رمز محرك الدمى الخاص بك كالمعتاد}
نحن نختبر ثنائياتنا بدقة قبل النشر. لكن لا تتردد في خلق مشكلة إذا واجهت سلوكًا غير متوقع.
يتم تجميع الثنائيات الخاصة بنا في إجراء Github. وهذا يعني أنه يمكنك متابعة كيفية إنشاء ثنائيات Chromium الخاصة بنا بالضبط، من المصدر إلى النشر. وهذا يعني أنه يمكنك التحقق من سلامة وجودة الثنائيات لدينا، والحصول على فهم أفضل للعملية التي تدخل في إنشائها.
يستخدم التثبيت التلقائي متغيرات البيئة لتكوين Playwright/Puppeteer لتنزيل الثنائيات المتوافقة مع Lambda من CDN الخاص بنا. يتطلب التثبيت اليدوي تنزيل الملف المضغوط الصحيح الذي يحتوي على التبعيات المطلوبة وتحميله إلى Lambda يدويًا عبر طبقة Lambda.
تختلف ثنائيات Chromium لـ Amazon Linux 2 (AL2) وAmazon Linux 2023 (AL2023) لأنها مجمعة مع إصدارات مختلفة من Linux kernel والتبعيات.
الاختلافات الرئيسية هي:
إصدار النواة: AL2 مبني على النواة 4.14، بينما AL2023 مبني على النواة 5.10. وهذا يعني أن ثنائيات AL2023 يتم تجميعها باستخدام إصدار kernel أحدث، والذي يمكن أن يوفر دعمًا أفضل للأجهزة والميزات الأحدث.
إصدارات التبعية: التبعيات المستخدمة لإنشاء ثنائيات 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)
نعم. يرجى إلقاء نظرة على هذا.