مقدمة إلى Amazon API Gateway باستخدام AWS Lambda

مقدمة إلى Amazon API Gateway باستخدام AWS Lambda

عقدة المصدر: 1860150

المُقدّمة

ما هو API؟

بعبارات بسيطة ، API هو رسول ؛ دعونا نفهم هذا مع بعض الأمثلة. لنفترض أنك جائع وتحتاج إلى طهي شيء ما في المنزل. إذا كنت ترغب في صنع المعكرونة ، ما عليك سوى إخراج المكونات من الخزانة ، وإشعال الموقد ، وتحضيره بنفسك. هذا برنامج يقوم بشيء ما بمفرده باستخدام موارده الخاصة. لكن لنفترض أنك تريد البيتزا - ليس لديك المكونات ، وفرن منزلك ليس مناسبًا حقًا لصنع قشرة مقرمشة لطيفة. لذلك تذهب إلى مطعم بيتزا بدلاً من ذلك. ولكن على عكس المنزل ، لا يمكنك فقط الذهاب إلى المطبخ والبدء في استخدام مكوناته لصنع البيتزا. إنهم لا يريدون أيديكم القذرة على أغراضهم! لذلك ماذا ستفعل؟ يجب عليك الذهاب إلى المنضدة وإجراء طلب - ستكون هناك قائمة تسرد أنواع البيتزا التي يمكنك طلبها وما هي الطبقة أو الخيارات الأخرى التي يمكنك اختيارها. هذا هو API.

واجهة برمجة التطبيقات (API) هي مجموعة من القواعد التي تحدد كيفية تفاعل برنامجين.

تسمح API لبرنامج واحد بالوصول إلى وظائف برنامج آخر. على سبيل المثال ، إذا كان لديك برنامج يحتاج إلى استرداد البيانات من الإنترنت ، فيمكنه استخدام واجهة برمجة التطبيقات (API) لطلب تلك البيانات من الخادم. سوف يستجيب الخادم بعد ذلك بالبيانات المطلوبة ، ويمكن للبرنامج استخدامها حسب الحاجة.

تُستخدم واجهات برمجة التطبيقات (API) للسماح للبرامج المختلفة بالتواصل مع بعضها البعض ومشاركة البيانات والوظائف. إنها جزء مهم من تطوير البرمجيات الحديثة ، لأنها تسمح للأنظمة المختلفة بالعمل معًا وتمكين إنشاء تطبيقات برمجية أكثر تعقيدًا وقوة.

واجهات برمجة تطبيقات HTTP

HTTP API هو نوع من API يستخدم بروتوكول HTTP لإرسال واستقبال البيانات. يسمح للبرامج بإرسال واستقبال البيانات باستخدام طلبات واستجابات HTTP. يمكن أن تكون هذه الطلبات والاستجابات بتنسيقات مختلفة ، مثل نص عادي أو JSON أو XML. يتم استخدامها بشكل شائع في مجموعة واسعة من التطبيقات ، بما في ذلك تطبيقات الويب وتطبيقات الأجهزة المحمولة والخدمات المصغرة. تعد واجهات برمجة التطبيقات هذه أرخص نسبيًا من واجهات برمجة تطبيقات REST ولديها وظائف أقل من الأحدث.

واجهات برمجة التطبيقات REST

REST API هو نوع من API يتبع مجموعة من المبادئ المعمارية تسمى REST (نقل الحالة التمثيلية). REST هو نمط من هندسة البرمجيات يحدد مجموعة من القيود لإنشاء واجهات برمجة تطبيقات الويب.

واجهات برمجة التطبيقات ذات الحالة

واجهة برمجة التطبيقات ذات الحالة هي واجهة برمجة تطبيقات تحتفظ بمعلومات حول كل طلب عميل وتستخدم هذه المعلومات لمعالجة الطلبات اللاحقة. هذا يعني أن واجهة برمجة التطبيقات تخزن البيانات حول كل طلب ، مثل معلمات الطلب ، في جلسة من جانب الخادم. ثم يتم استخدام هذه البيانات لمعالجة الطلبات اللاحقة من نفس العميل.

واجهات برمجة التطبيقات عديمة الحالة

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

الاختلافات الرئيسية بين واجهات برمجة التطبيقات ذات الحالة وعديمة الحالة

فيما يلي بعض الاختلافات الرئيسية بين واجهات برمجة التطبيقات ذات الحالة والعديمة الحالة:

واجهات برمجة تطبيقات ثابتة

واجهات برمجة تطبيقات STATELESS

1. طلب ​​جلسة من جانب الخادم لتخزين البيانات حول طلبات العميل 1. لا تتطلب جلسة من جانب الخادم لتخزين البيانات حول طلبات العميل
2. قد تكون هذه أحيانًا أبطأ من واجهات برمجة التطبيقات عديمة الحالة لأنها تتطلب وتخزن البيانات التي تستغرق وقتًا. 2. تعد واجهات برمجة التطبيقات عديمة الحالة أسرع لأنها لا تتطلب بيانات حول الطلبات وتخزنها.
3. واجهات برمجة التطبيقات ذات الحالة ليس من السهل قياسها  3. أسهل في القياس لأنها لا تحتاج إلى الاحتفاظ ببيانات حول الطلبات السابقة.
4. تعتبر بشكل عام أقل أمانًا من واجهات برمجة التطبيقات عديمة الحالة 4. تعتبر هذه بشكل عام أكثر أمانًا.

ما هي Amazon API Gateway؟

Amazon API Gateway هي خدمة AWS تُستخدم لإنشاء وصيانة ومراقبة واجهات برمجة التطبيقات (APIs) وعديمة الحالة (HTTP و REST). يمكننا استخدام واجهات برمجة التطبيقات هذه للوصول إلى:

  1. أي خدمة AWS
  2. البيانات المخزنة في سحابة AWS (مثل حاوية S3)
  3. أي خدمات ويب أخرى.

إذا كنت مطورًا لواجهة برمجة التطبيقات ، فيمكنك بسهولة إنشاء واجهات برمجة التطبيقات الخاصة بك لمطوري الطرف الثالث أيضًا.

يوجد نوعان أساسيان من مستخدمي AWS API Gateway.

  1. ط) مطورو API الذين يقومون بإنشاء ونشر API لتمكين الوظائف المطلوبة في API Gateway
  2. ب) مطورو التطبيقات الذين هم عملاء مطور API.

هندسة Amazon API Gateway

هندسة معمارية

توضح هذه البنية كيف يمكن إنشاء تطبيقات بدون خادم من خلال تجربة مطور متسقة ومتكاملة. من المستخدمين النهائيين إلى مراكز البيانات ، تتعامل API Gateway مع جميع المهام المعنية ، مثل قبول ومعالجة آلاف المكالمات المتزامنة ، وإدارة حركة المرور ، والتفويض ، والمراقبة ، والتحكم في الوصول ، وما إلى ذلك.

ميزات Amazon API Gateway

  1. وهو يدعم واجهات برمجة التطبيقات ذات الحالة والعديمة الحالة. (أمثلة: Websocket و HTTP و REST).
  2. تتضمن آليات المصادقة القوية AWS Identity ، وسياسات إدارة الوصول ، ومخول Lambda.
  3. بوابة المطور حيث يمكن لمطوري واجهات برمجة التطبيقات نشر واجهات برمجة التطبيقات الخاصة بهم.
  4. التنفيذ والوصول إلى تسجيل الدخول لـ CloudWatch ، بما في ذلك خيار ضبط الإنذارات.
  5. التكامل مع خدمات AWS الأخرى مثل AWS لامدا و AWS Kinesis.
  6. يتم استخدام التكامل مع AWS WAF للحماية من عمليات استغلال الويب ، ويتم استخدام AWS X-Ray لفهم وتأكيد فترات انتقال الأداء.

بدء استخدام Amazon API Gateway

الآن سنقوم بإنشاء واجهة برمجة تطبيقات بدون خادم. في واجهة برمجة تطبيقات بدون خادم ، يمكننا التركيز على تطبيقاتنا بدلاً من قضاء الوقت في إدارة الخوادم. يعمل مثل هذا:

  • يتم استدعاء API من قبل العميل
  • يرسل API طلبًا إلى lambda
  • ينفذ Lambda وظيفة lambda ويرسل النتيجة مرة أخرى إلى API
  • بعد استلام النتيجة من lambda ، تستجيب API للعميل

http API

الخطوة 1 - إنشاء وظيفة لامدا

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

إنشاء وظيفة lambada

إنشاء دالة لامدا:

1) انتقل إلى وحدة تحكم lambda على https://console.aws.amazon.com/lambda

2) انقر فوق إنشاء وظيفة.

3) أدخل "my-function" كاسم الوظيفة.

4) اختر Python 3.9 كوقت تشغيل.

5) بالنسبة لهذه الوظيفة ، لن نحتاج إلى تغيير أي شيء في علامة التبويب الأذونات والإعدادات المتقدمة لأن الأذونات الافتراضية كافية لهذا العرض التوضيحي.

4) انقر فوق إنشاء وظيفة.

الخطوة 2 - إنشاء واجهة برمجة تطبيقات HTTP

واجهة برمجة تطبيقات Amazon

توفر واجهة برمجة تطبيقات HTTP نقطة نهاية HTTP لوظيفة Lambda الخاصة بك. يعمل مثل هذا:

  • يرسل العميل الاستعلام إلى HTTP API
  • تقوم API بتشغيل lambda والتي تقوم بعد ذلك بتنفيذ وظيفة lambda
  • يرسل Lambda النتيجة إلى API
  • API يستجيب للعميل مع الاستجابة المستلمة

خطوات إنشاء HTTP API

1) قم بزيارة وحدة تحكم بوابة API على https://console.aws.amazon.com/apigateway

2) انقر فوق إنشاء لإنشاء أول واجهة برمجة تطبيقات HTTP

3) انقر فوق إضافة التكامل للتكامل

4) حدد Lambda.

5) أدخل وظيفتي لامدا.

6) بالنسبة لاسم API ، أدخل my-http-api.

7) انقر فوق التالي.

8) راجع المسار الذي تم إنشاؤه لك ، ثم اختر التالي.

9) راجع المرحلة التي تم إنشاؤها لك ، ثم اختر التالي.

10) انقر فوق إنشاء.

الخطوة 3 اختبر API الخاص بك -

بعد ذلك ، نحتاج إلى اختبار واجهة برمجة التطبيقات الخاصة بنا للتأكد من أنها تعمل. لهذا سوف نستخدم متصفح الويب لاستدعاء API الخاص بنا.

واجهة برمجة تطبيقات Amazon

لاختبار API الخاص بنا

  1. انتقل إلى وحدة تحكم بوابة API على https://console.aws.amazon.com/apigateway
  2. حدد API الخاص بك.
  3. قم بتدوين عنوان URL الخاص باستدعاء API. (انظر الصورة أعلاه)
  4. انسخ عنوان URL الخاص باستدعاء API ، والصقه في متصفح الويب. انضم إلى عنوان URL الذي تم الاستدعاء إليه واسم وظيفة lambda لاستدعاء وظيفة Lambda الخاصة بك. تنشئ وحدة التحكم في بوابة API مسارًا باستخدام اسم وظيفة Lambda "my-function" افتراضيًا. 

    يجب أن يبدو عنوان URL الكامل بالشكل https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. عند تحميل عنوان URL هذا ، يتم إرسال طلب GET بواسطة متصفحك إلى واجهة برمجة التطبيقات

  1. يجب أن ترى النص "مرحبًا من Lambda!" في متصفحك. ومن ثم تم التحقق من استجابة API الخاصة بك.

واجهة برمجة تطبيقات Amazon

وفي الختام

لقد أنشأنا أول واجهة برمجة تطبيقات HTTP باستخدام Amazon API Gateway و AWS Lambda. علاوة على ذلك ، يمكننا استكشاف حالات استخدام مختلفة لها ، وبالمثل ، يمكننا إنشاء واجهة برمجة تطبيقات REST أيضًا ، والتي توفر المزيد من الوظائف.

هل أعجبك هذا المقال؟ أخبرنا بأفكارك في التعليق أدناه. أيضًا ، لا تنسَ ذكر المقالة التي ترغب في قراءتها بعد ذلك.

الطابع الزمني:

اكثر من تحليلات Vidhya