استخدام Gateway APIs كنقطة إدخال مفردة لتطبيقات الويب وواجهات برمجة التطبيقات

تم إعداد ترجمة المقال خصيصًا لطلاب دورة "High Load Architect" .




المقدمة


أثبتت مزايا AWS ، مثل التوفر العالي ، والقابلية للتطوير ، والمرونة ، قيمتها بالفعل لمقدمي SaaS (البرامج كخدمة). من خلال تحديث تطبيقات SaaS ، تساعد AWS على الانتقال بسلاسة إلى بنية الخدمات الصغيرة مع توفير وصول API إلى التطبيقات الخارجية.

تعد أدوات إدارة API مثل بوابة Amazon API هي الاختيار الطبيعي لتوفير واجهة برمجة تطبيقات خارجية آمنة وقابلة للتطوير. ومع ذلك ، عند نقل تطبيقاتهم إلى السحابة ، غالبًا ما يواجه مقدمو خدمات SaaS الحاجة إلى نشر خدماتهم بسرعة إلى العديد من العملاء المختلفين. وبطبيعة الحال ، مع المتطلبات المحددة لكل منهم.

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

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

بوابة أمازون API - نقطة دخول مفردة


يعد إنشاء بنية باستخدام واجهة برمجة تطبيقات Gateway واحدة لتطبيقات الويب المتعددة والخدمات الصغيرة عاملاً مهمًا لإعادة استخدام المكونات وتحسين التكلفة.

يوفر Amazon API Gateway حلاً قابلاً للتطوير بدرجة عالية لإنشاء ونشر RESTful APIs و WebSocket APIs. يمكنك اختيار مجموعة متنوعة من التقنيات للواجهة الخلفية: ميزات AWS Lambda أو آلات حالة وظائف AWS أو استدعاء نقاط نهاية HTTP المستضافة على AWS Elastic Beanstalk أو Amazon EC2 أو خارج AWS.

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

بالإضافة إلى ما سبق ، تساعد وظائف بوابة API الرئيسية التالية في إنشاء البنية الموصوفة هنا.

1. دعم أسماء النطاقات المخصصة:


عند نشر واجهة برمجة تطبيقات باستخدام واجهة برمجة تطبيقات البوابة ، فإن اسم المجال الافتراضي لنقطة نهاية واجهة برمجة التطبيقات ليس مناسبًا جدًا للمستخدم النهائي:

https://api-id.execute-api.region.amazonaws.com/stage

  • api-id تم إنشاء Gateway API
  • region يتم الإشارة إليه عند إنشاء API ؛
  • stage تحدده أنت عند نشر API.

قد يكون من الصعب العمل مع نقطة نهاية واجهة برمجة التطبيقات الافتراضية. ولكن بفضل التكامل مع AWS Certificate Manager ، الذي يسمح لك باختبار النطاقات الفرعية بناءً على شهادات SSL ، يمكنك منح مستخدمي API الخاص بك عنوان URL أسهل وأكثر بديهية ، مثل ، customer1.example.com. تتيح لك واجهة برمجة تطبيقات Gateway تعيين نطاقات فرعية متعددة لنقطة نهاية واحدة لواجهة برمجة التطبيقات ، مما يسمح لك باستخدام اسم "التسمية الأولية" وفقًا لمتطلبات العملاء الخارجيين.

2. تعديل طلبات / استجابات API


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

مزايا مثل هذه العمارة


يتم عرض الميزات الموضحة في هذه المقالة في الرسم البياني أدناه.



في ما يلي التصميم المعماري لموفر SaaS النموذجي الذي يقدم خدماته إلى مؤسسات أخرى ويجب أن يدعم نطاقات "البطاقة البيضاء" للبنية الأساسية للويب و API. يتم تحقيق بنية مماثلة باستخدام الخطوات التالية:

  1. المجال example.comيمكن أن تكون مسجلة لدى مسجل المجال، ولكن يمكنك إنشاء النطاقات الفرعية من خلال CNAME قياسية، على سبيل المثال customer1.example.com، customer2.example.com. يمكن القيام بذلك في AWS باستخدام خدمة Amazon Route 53 أو من خلال أي مزود DNS تابع لجهة خارجية.
  2. AWS Certificate Manager (ACM) example.com *.example.com. ACM-, API Gateway.
  3. , ACM, API. API . : customer1.example.com customer2.example.com.

: CNAME- customer1 customer2 DNS, API Gateway.



4. API Endpoint


  • /service1 — integration type HTTP, ELB, ECS
  • /service2 - نوع التكامل HTTP ، توجيه حركة المرور إلى نقطة نهاية تطبيق ويب ELB المستضاف في مجموعة EC2
  • /docs - نوع التكامل AWS S3 للمستندات الثابتة



5. يمكن لـ Gateway API معالجة اسم المجال المؤهل بالكامل (FQDN) في عنوان URL وتعيينه إلى رؤوس أو معلمات مخصصة في سلسلة الاستعلام لإرسالها إلى الواجهة الخلفية المقابلة.

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

مجموع


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

All Articles