מבוא ל-Amazon API Gateway באמצעות AWS Lambda

מבוא ל-Amazon API Gateway באמצעות AWS Lambda

צומת המקור: 1860150

מבוא

מהו ממשק API?

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

ממשק תכנות יישומים (API) הוא קבוצה של כללים המציינים כיצד שתי תוכנות צריכות לתקשר.

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

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

ממשקי API של HTTP

HTTP API הוא סוג של API המשתמש בפרוטוקול HTTP לשליחה וקבלה של נתונים. זה מאפשר לתוכנות לשלוח ולקבל נתונים באמצעות בקשות ותגובות HTTP. בקשות ותגובות אלו יכולות להיות בפורמטים שונים, כגון טקסט רגיל, JSON או XML. הם נמצאים בשימוש נפוץ במגוון רחב של יישומים, כולל יישומי אינטרנט, אפליקציות לנייד ומיקרו-שירותים. ממשקי API אלה זולים יותר יחסית ממשקי API של REST ויש להם פחות פונקציונליות מאשר המאוחר יותר.

ממשקי API REST

REST API הוא סוג של API העוקב אחר קבוצה של עקרונות אדריכליים הנקראים REST (Representational State Transfer). REST הוא סגנון של ארכיטקטורת תוכנה המגדיר קבוצה של אילוצים ליצירת ממשקי API באינטרנט.

ממשקי API סטטיים

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

ממשקי API חסרי מדינה

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

הבדלים עיקריים בין ממשקי API Stateful ו-Stateless

להלן כמה הבדלים עיקריים בין ממשקי API מצביים וחסרי מדינה:

ממשקי API סטטיסטיים

ממשקי API של STATELESS

1. דרוש הפעלה בצד השרת כדי לאחסן נתונים לגבי בקשות לקוח 1. אל תדרוש הפעלה בצד השרת כדי לאחסן נתונים לגבי בקשות לקוח
2. לפעמים אלה עשויים להיות איטיים יותר ממשקי API של Stateless מכיוון שהם דורשים ומאחסנים נתונים שלוקח זמן. 2. ממשקי API חסרי מצב מהירים יותר מכיוון שאלו אינם דורשים ולאחסנים נתונים לגבי בקשות.
3. ממשקי API Stateful אינם קלים להרחבה  3. קל יותר להרחבה מכיוון שהם לא צריכים לשמור נתונים לגבי בקשות קודמות.
4. בדרך כלל נחשב פחות בטוח מממשקי API ללא מצב 4. אלה נחשבים בדרך כלל בטוחים יותר.

מהו אמזון API Gateway?

Amazon API Gateway הוא שירות AWS המשמש ליצירה, תחזוקה וניטור של ממשקי API מצביים (websocket) וחסרי מצב (HTTP ו-REST). אנו יכולים להשתמש בממשקי API אלה כדי לגשת:

  1. כל שירות AWS
  2. הנתונים המאוחסנים בענן AWS (כגון דלי S3)
  3. כל שירותי אינטרנט אחרים.

אם אתה מפתח API, אתה יכול בקלות להפוך את ממשקי ה-API שלך למפתחים של צד שלישי.

ישנם בעיקר שני סוגים של משתמשים ב-AWS API Gateway.

  1. i) מפתחי API שיוצרים ופורסים API כדי לאפשר את הפונקציונליות הנדרשת ב-API Gateway
  2. ii) מפתחי אפליקציות שהם לקוחות של מפתח ה-API.

ארכיטקטורת שער ה-API של אמזון

ארכיטקטורה

ארכיטקטורה זו ממחישה כיצד ניתן לבנות יישומים ללא שרת עם חווית מפתח עקבית ומשולבת. ממשתמשי קצה ועד למרכזי הנתונים, API Gateway מטפל בכל המשימות הכרוכות בכך, כמו קבלה ועיבוד של אלפי שיחות במקביל, ניהול תעבורה, הרשאות, ניטור, בקרת גישה וכו'.

תכונות שער ה-API של Amazon

  1. הוא תומך בממשקי API מצביים וחסרי מדינה. (דוגמאות: Websocket, HTTP ו-REST).
  2. מנגנוני אימות רבי עוצמה כוללים זהות AWS, מדיניות ניהול גישה ואישור Lambda.
  3. פורטל מפתחים שבו מפתחי API יכולים לפרסם את ממשקי ה-API שלהם.
  4. רישום ביצוע וגישה עבור CloudWatch, כולל אפשרות להגדיר אזעקות.
  5. אינטגרציה עם שירותי AWS אחרים כגון AWS למבדה ו-AWS Kinesis.
  6. אינטגרציה עם AWS WAF משמשת להגנה מפני ניצול אינטרנט, ו-AWS X-Ray משמש כדי להבין ולהדגיש את השהייה בביצועים.

תחילת העבודה עם אמזון API Gateway

עכשיו אנחנו הולכים ליצור API ללא שרת. ב-API ללא שרתים, אנו יכולים להתמקד ביישומים שלנו במקום לבזבז זמן בניהול שרתים. זה עובד ככה:

  • ה-API מופעל על ידי הלקוח
  • API שולח בקשה ל- Lambda
  • Lambda מבצעת את פונקציית lambda ושולחת את התוצאה בחזרה ל-API
  • לאחר קבלת התוצאה מ- lambda, API מגיב ללקוח

http api

שלב 1 - צור פונקציית למבדה

הפונקציה Lambda משמשת עבור הקצה האחורי של ה-API שלנו. Lambda מריץ את הקוד רק כאשר הוא נחוץ. זה גם משתנה אוטומטית מכמה בקשות ביום לאלף בקשות בכל שנייה.

ליצור פונקציית למבדה

יצירת פונקציית למבדה:

1) עבור אל קונסולת הלמבדה בכתובת https://console.aws.amazon.com/lambda

2) לחץ על יצירת פונקציה.

3) הזן "my-function" כשם הפונקציה.

4) בחר Python 3.9 כזמן ריצה.

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

4) לחץ על יצירת פונקציה.

שלב 2 - יצירת API של HTTP

ממשק API של אמזון

ה-API של HTTP מספק נקודת קצה HTTP עבור פונקציית Lambda שלך. זה עובד ככה:

  • הלקוח שולח שאילתה ל-HTTP API
  • ה-API מפעיל lambda אשר לאחר מכן מבצע את פונקציית lambda
  • Lambda שולחת את התוצאה ל-API
  • API מגיב ללקוח עם התגובה שהתקבלה

שלבים ליצירת API של HTTP

1) בקר במסוף API Gateway בכתובת https://console.aws.amazon.com/apigateway

2) לחץ על Build כדי ליצור HTTP API הראשון שלך

3) לחץ על הוסף אינטגרציה לשילוב

4) בחר Lambda.

5) הזן את פונקציית הלמבדה שלך my-function.

6) עבור שם API, הזן my-http-api.

7) לחץ על הבא.

8) סקור את המסלול שנוצר עבורך ולאחר מכן בחר הבא.

9) סקור את השלב שנוצר עבורך, ולאחר מכן בחר הבא.

10) לחץ על צור.

שלב 3 בדוק את ה-API שלך -

לאחר מכן, עלינו לבדוק את ה-API שלנו כדי לוודא שהוא עובד. לשם כך נשתמש בדפדפן אינטרנט כדי להפעיל את ה-API שלנו.

ממשק API של אמזון

כדי לבדוק את ה-API שלנו

  1. עבור אל מסוף ה-API Gateway בכתובת https://console.aws.amazon.com/apigateway
  2. בחר את ה-API שלך.
  3. רשום את כתובת האתר להפעלת ה-API שלך. (ראה את התמונה למעלה)
  4. העתק את כתובת האתר להפעלת ה-API שלך והדבק אותה בדפדפן אינטרנט. הצטרף לכתובת ה-URL להפעלת ולשם פונקציית הלמבדה שלך כדי לקרוא לפונקציית הלמבדה שלך. מסוף ה-API Gateway יוצר מסלול באמצעות השם של פונקציית Lambda שלך "my-function" כברירת מחדל. 

    כתובת האתר המלאה צריכה להיראות כמו https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. כאשר אתה טוען כתובת אתר זו, בקשת GET נשלחת על ידי הדפדפן שלך ל-API

  1. אתה אמור לראות את הטקסט "שלום מלמבדה!" בדפדפן שלך. מכאן שהתגובה של ה-API שלך מאומתת.

ממשק API של אמזון

סיכום

יצרנו את ה-HTTP API הראשון שלנו באמצעות Amazon API Gateway ו-AWS Lambda. יתר על כן, אנו יכולים לחקור מקרי שימוש שונים של אותו הדבר, ובאופן דומה, אנו יכולים ליצור גם REST API, המספק יותר פונקציות.

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

בול זמן:

עוד מ אנליטיקה וידיה