كيفية استخدام وظائف 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:
- How to start with Firebase Hosting
- A tutorial to host your Static Site on Netlify
- Code Linters and Formatters for Web Developers
- Auto trigger deploys on Netlify
- Glitch, a great Platform for Developers
- Airtable API for Developers
- How to authenticate to any Google API
- Zeit Now Tutorial
- Netlify Lambda Functions Tutorial
- How to use Firebase Firestore as your database
- How I fixed the trailing slash in Netlify rewrites
- How to access query parameters in Netlify functions
- How to use environment variables in Netlify functions
- How to use npm packages in Netlify Functions
- How to create your first VPS on DigitalOcean