كيفية تشغيل JavaScript على الحافة باستخدام وظائف AWS CloudFront

جدول المحتويات:

كيفية تشغيل JavaScript على الحافة باستخدام وظائف AWS CloudFront
كيفية تشغيل JavaScript على الحافة باستخدام وظائف AWS CloudFront
Anonim

تحتاج العديد من التطبيقات إلى أقل زمن انتقال ممكن ، ولكنها لا تزال ترغب في تنفيذ شكل من أشكال المنطق. في حين أن شبكات توصيل المحتوى (CDN) ثابتة تقليديًا ، فقد أصبح من الشائع بشكل متزايد تشغيل التعليمات البرمجية على حافة الشبكة ، الأقرب إلى المستخدم.

ألا تمتلك AWS بالفعل Lambda @ Edge؟

وظائف CloudFront ليست الطريقة الأولى أو الوحيدة لتشغيل التعليمات البرمجية المخصصة الخاصة بك على حافة CDN. AWS لديها Lambda @ Edge لفترة من الوقت الآن ، مما يتيح لك تشغيل أي وظيفة Lambda على حافة CDN ، وإن كان ذلك بثلاثة أضعاف التكلفة.

هذه التكلفة تمنع الكثير من وظائف التحويل البسيطة من أن تكون قابلة للتطبيق على الحافة. في كثير من الحالات ، لا تحتاج إلى القيام بأكثر من معالجة بسيطة للسلسلة أو طلب / استجابة أساسية. يمكن تنفيذها بدلاً من ذلك عن طريق وظائف أساسية قصيرة العمر.

ومن هنا جاءت الحاجة إلى وظائف CloudFront. إنهم قادرون فقط على تشغيل شفرة JavaScript خفيفة الوزن ، لكنهم يعملون في جميع عُقد حافة CloudFront CDN مقابل 1/6 من سعر Lambda @ Edge. في الواقع ، هذا أرخص من Lambda نفسها.

نظرًا لأنه JS خفيف الوزن فقط ، فإن استخداماته أضيق كثيرًا. ولكن ، لا يزال هناك عدد غير قليل من العمليات المفيدة ، مثل:

  • معالجة الرأس
  • URL يعيد توجيه أو يعيد كتابة
  • طلب الإذن
  • تطبيع مفتاح ذاكرة التخزين المؤقت

لديك خياران لتوقيت تشغيل وظائف CloudFront: إما قبل أو بعد أن يجلب CloudFront الاستجابة من CDN.إذا كنت تعدل عناوين URL أو تتحقق من صحة الرموز المميزة للمصادقة ، فقد ترغب في تشغيلها من قبل. إذا كنت تقوم فقط بتعديل الرؤوس الصادرة ، فقد لا يهم.

شيء واحد لا يمكنه فعله هو معالجة المحتوى من الخادم الأصلي قبل تخزينه مؤقتًا ، أي على Origin Response ؛ يمكنك فقط تشغيل الوظائف بناءً على طلب العارض أو استجابة العارض. لأي شيء آخر ، ستحتاج إلى استخدام [email protected]

صورة
صورة

يجب تشغيل الوظائف لأقصى وقت تنفيذ أقل من 1 مللي ثانية. هذا يضمن أن الأداء جيد حتى عبر ملايين الطلبات. تستخدم وظائف CloudFront نموذج عزل جديدًا قائمًا على العمليات مع وصول محدود إلى نظام الملفات والشبكة ، والذي يجب أن يكون بمثابة تحسين للأداء مقارنة بحل Lambda VM التقليدي.

مقابل 1/6 من التكلفة ، تحصل على حجم حزمة إجمالي يبلغ 10 كيلوبايت ، و 2 ميجابايت من الذاكرة. استخدمه بحكمة

استخدام وظائف CloudFront

للبدء ، ستحتاج بالطبع إلى استخدام CloudFront CDN. إذا لم تكن كذلك ، وترغب في البدء بواحد ، فيمكنك قراءة دليلنا لإعداد واحد.

من وحدة تحكم CloudFront ، انقر فوق "الوظائف" في الشريط الجانبي وأنشئ وظيفة جديدة:

صورة
صورة

أعطها اسمًا ، وسيتم نقلك بعد ذلك إلى شاشة حيث يمكنك إنشاء الوظيفة واختبارها ونشرها ونشرها.

صورة
صورة

بالطبع ، سيختلف الرمز الذي تكتبه بشكل كبير اعتمادًا على أهدافك. بالنسبة لهذا البرنامج التعليمي ، سأقوم ببساطة بعمل وظيفة غير مجدية تمامًا تقوم بتغيير كل رمز حالة إلى 404 وإيقاف تشغيل موقع الويب ، لأنه من السهل اختباره.

تأكد من النقر فوق "حفظ" بعد كتابة الرمز ، قبل الانتقال إلى الخطوة التالية ، الاختبار. لقد تم إعطاؤك بعض نماذج أحداث الاختبار بناءً على أنواع الأحداث المختلفة ، والتي يمكنك من أجلها اختيار عنوان URL وطلب الرؤوس التي يرسلها العميل.

ستجلب استجابة من CDN كما لو كانت في الإنتاج. هذا من شأنه أن يجعل من السهل اختبار أي وظيفة قبل بدء العمل بها.

صورة
صورة

ثم ، في الصفحة التالية ، انقر فوق "نشر" لحفظ التغييرات التي أجريتها على إصدار الإنتاج من الوظيفة. هذا لا ينطبق على CDN تلقائيًا بالرغم من ذلك ؛ ستحتاج إلى ربطه بتوزيع CloudFront ، أو توزيعات متعددة.

صورة
صورة

سترغب بالطبع في اختبار أن نسخة الإنتاج تعمل بشكل صحيح. توجه إلى CDN الخاص بك وسترى الوظيفة قيد التطبيق. في هذه الحالة ، تقوم الوظيفة بعملها المتمثل في جعل مثال موقع الويب الخاص بي غير قابل للاستخدام تمامًا.

صورة
صورة

إذا لم يكن يعمل ، فقد ترغب في إضافة

وحدة تحكم.log ()، والتي سيتم إرسالها مباشرة إلى AWS CloudWatch. هذا هو الشكل الوحيد المتاح للتسجيل ، إلى جانب المقاييس الأساسية ، حيث أن الوظائف خفيفة الوزن للغاية. لمزيد من المعلومات ، يمكنك قراءة دليل AWS حول تسجيل الدخول إلى وظائف CloudFront

موضوع شعبي