Aws Lambda – שירות Serverless של אמזון

בהרבה מקרים, כמפתחים, אנחנו צריכים לפתח מערכת/אפליקציה שתבצע פעולות מסוימות כאשר יש טריגר מסוים. הטריגר יכול להיות העלאה של קובץ, שורה חדשה שנכנסה לבסיס נתונים, פרק זמן קבוע וכיוב.

ניקח דוגמה של אפליקציה שצריכה לרוץ כל X דקות, לבצע בדיקה מסוימת ולשלוח מייל במידת הצורך. כמפתח שמגיע מעולם של מיקרוסופט, ברירת המחדל שלי הייתה להקים console application חדש, לכתוב את הקוד, לבדוק ריצה ב debug, לקמפל מ release ואז מגיע השלב הכייפי… להעלות לשרת

איפה הבעיה או יותר נכון… הבעיות?

האפליקציה שלנו יכולה לעבוד מצוין לוקאלית אבל יכולה לייצר וליצור בעיות על השרת שלנו שכנראה הוא שרת ייצור גם של אפליקציות נוספות

בנוסף, על מנת לבדוק שהכל עובד בצורה תקינה ואם לא אז ליידע את הגורם הרלוונטי, יש לכתוב לוג ולייצר מנגנון תומך

ומה אם אין לנו שרת בכלל? אנחנו צריכים להקים שרת איפשהו, לדאוג לתחזוק שלו, לאבטחה שלו, לשרידות שלו ועוד הרבה דברים שאנחנו כמפתחים לא (וכנראה גם לא רוצים להיות) מומחים בו. ומה קורה אם יש צורך במשאבים נוספים? ומה אם זה רק זמני?

פה נכנס המונח החדש יחסית בשם Serverless. הכוונה היא (במקרה הזה) שאנחנו כמפתחים צריכים לדאוג שהקוד יהיה תקין. כל השאר יהיה על החברה שמעניקה לנו את סביבת ה Serverless. במקרה שלנו אנחנו נבצע דוגמה קטנה של אחד השרותים המצליחים של אמזון בשם: Aws Lambda

מהו שירות Aws Lambda?

Lambda הוא שירות של אמזון שמעניק לנו סביבת פיתוח ללא התעסקות בצד השרת, כלומר אנחנו צריכים לכתוב את הקוד ולהעלות אותו. הקוד נכתתב כפונקציה ובעצם אפשר להתסתכל על השירות כעל FAAS (Function As A Service). אם נרצה יש לנו אפשרות גם לכתוב את הקוד לפונקציה ישירות בסביבת הפיתוח האינטרנטית שאמזון מעניקה לנו. זהו! לכל השאר השירות Lambda דואג. הריצה מתבצעת בהתאם לשפה שבה כתבנו את הקוד (יש תמיכה במספר רק של שפות) והמערכת מתאימה את צריכת המשאבים בהתאם לצורך שלנו כלומר אם הפונקציה שלנו תדרוש הרבה משאבים, Lambda תקצה את המשאבים האלו. במידה והפונקציה תצרוך מעט משאבים, המשאבים שהוקצו ישוחררו וישובו במידת הצורך בכמות הנדרשת.

ומה העלות?

בניגוד לשרת שאנחנו צריכים לתחזק וכו’ ועליו אנחנו צריכים לשלם בדר”כ תשלום חודשי, התשלום עבור השימוש בשירות הוא רק כאשר הפונקציה רצה. כלומר – Pay As You Go אמיתי. יותר מזה, עלות של מליון הקריאות הראשונות הוא חינם (בהתאם לכמות המידע שעובר וזמן הריצה) וזה יכול להתאים לחברות קטנות בינוניות בצורה מושלמת.

את המחירון המלא של אמזון לשירות Lambda ניתן לראות בכתובת:

https://aws.amazon.com/lambda/pricing/

שפות נתמכות ב Aws Lambda:

דוגמת קוד בסביבת Lambda

הדוגמה הבאה היא דוגמת קוד ברירת מחדל כאשר מקימים פונקציית Lambda חדשה. הקוד נכתב ב NodeJs ומציג דוגמה פשוטה של פונקציה שמחזירה סטטוס 200 (OK) ובגוף התשובה חזרה את הטקסט “Hello from Lambda!” בפורמט Json

כלומר כל מי שיפעיל או יבצע קריאה לפונקציה הזאת בכל דרך שאפשרית, יקבל את התגובה המוצגת חזרה.

Facebook
Twitter
LinkedIn