دروس وظائف Netlify Lambda

كيفية استخدام وظائف Netlify Lambda وإضافة المعالجة الديناميكية إلى مواقع JAMstack

لقد كتبت عن Netlify سابقًا علىبرنامج Netlify التعليمي. أستخدمها لاستضافة هذه المدونة ، وهي رائعة.

I also use it to run other sites, and all run on Hugo - which makes my stack 100% جامستاك.

الشيء الرائع في JAM هو أنه لا يقتصر فقط على المواقع الثابتة و "الغبية" - يمكنك القيام بالعديد من الأشياء الديناميكية كما تريد.

تأتي معظم هذه القوة في شكلوظائف لامدا.

يمكنك جعل JavaScript على موقعك (أو نماذج HTML العادية) تستدعي نقطة نهاية عنوان URL ، والتي عند استدعائها تنفذ بعض التعليمات البرمجية المحددة مسبقًا. يقدم مقدمو الخدمات المختلفون الدعم للغات مختلفة. يدعم Netlify حاليًا Node.js و Go.

في هذا البرنامج التعليمي نركز على وظائف lambda المكتوبة في Node.js.

يمنحنا Netlify حدًا مجانيًا سخيًا للطبقة ، مع ما يصل إلى 125.000 استدعاءات دالة وإجمالي 100 ساعة من وقت التشغيل كل شهر. تحتوي الوظائف على ذاكرة تبلغ 128 ميجابايت ويمكن تشغيل كل منها لمدة تصل إلى 10 ثوانٍ. بالنسبة للاحتياجات العادية ، هذا أكثر من كافٍ.

داخليًا ، يقوم Netlify بتشغيل هذه الوظيفة علىAWS Lambda، للتخلص من كل تعقيدات AWS من أجلك.

كيف ننشئ وظيفة؟ نقوم بتحميل ملف JavaScript بتنسيقfunctionsمجلد الموقع.

في هذا الملف يجب أن نتبع طريقة تسمىhandler:

exports.handler = (event, context, callback) => {
  //functionality
}

إذا كنت معتادًا على AWS Lambda ، فسيكون رمز الوظيفة مألوفًا لك. إذا لم تستخدمه مطلقًا ، فلا داعي للقلق - إليك نظرة عامة موجزة عن المعلمات التي يتلقاها معالجنا:

  • eventهو كائن يحتوي على بيانات في الطلب
  • contextيحتوي على معلومات المستخدم عند استخدام الهوية لمصادقة المستخدم
  • callbackهي وظيفة يمكننا استخدامها لإنشاء استجابة

أبسط شيء يمكننا فعله هو إرجاع استجابة إيجابية. للقيام بذلك ، نستخدم ملفcallback()طريقة:

exports.handler = (event, context, callback) => {
  callback(null, {
    statusCode: 200,
    body: 'No worries, all is working fine!'
  })
}

احفظ هذا في ملفfunctions/test.jsملف.

الشيء الوحيد الذي عليك القيام به لإنجاحه هو تكوين المجلد للوظائف الموجودة في ملفnetlify.tomlملف:

[build]
functions = "./functions"

Try this. Create the file in an empty folder, push it to a GitHub repository and create a new Netlify site from that repo.

Once you do so, in the Settings -> Functions menu in Netlify a new menu will show up which shows the details of our functions usage:

The function, which was stored in the functions/test.js file, is accessible at https://YOURSITENAME.netlify.com/.netlify/functions/test.

To access the request parameters, use the event object:

  • event.path the request path
  • event.httpMethod the request HTTP method
  • event.headers the request headers
  • event.queryStringParameters the request query parameters
  • event.body the request body in JSON format

Before we used

callback(null, {
  statusCode: 200,
  body: 'No worries, all is working fine!'
})

to craft a response. You can also add a headers object which contains an associative array (object) with the header values.

This repository by Netlify https://github.com/netlify/netlify-functions-example contains a lot of samples for Netlify Lambda Functions.


More services tutorials: