التكاملات: Lambda وHTTP وMock
اربطوا أساليب API Gateway بتكاملات Lambda proxy ونقاط نهاية HTTP العلوية وتكاملات Mock للاختبار.
التكاملات: Lambda وHTTP وMock درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
نظرة عامة على أنواع تكامل API Gateway
تحتاج كل طريقة في API Gateway إلى تكامل خلفي—أي النظام الذي يعالج الطلب ويعيد الاستجابة. تدعم API Gateway خمسة أنواع من التكامل: Lambda Proxy وLambda Custom وHTTP Proxy وHTTP Custom وMock. ولا تدعم HTTP APIs سوى Lambda Proxy وHTTP Proxy. أما REST APIs فتدعم الأنواع الخمسة كلها. ويحدد اختيار التكامل المناسب مقدار التحكم الذي تملكه في تحويل الطلب والاستجابة.
تكامل Lambda Proxy
مع تكامل Lambda Proxy، تمرر API Gateway طلب HTTP بالكامل إلى Lambda في صورة كائن حدث منظم يتضمن الرؤوس وسلاسل الاستعلام ومعلمات المسار والنص وسياق الطلب. وتكون وظيفة Lambda مسؤولة عن إعادة كائن استجابة منسق بشكل صحيح، يتضمن statusCode وheaders وbody. هذا هو النمط الأبسط والأكثر شيوعًا—فلا حاجة إلى قوالب تعيين، وتتحكم Lambda في الاستجابة بالكامل.
def lambda_handler(event, context):
# event.httpMethod, event.path, event.queryStringParameters
# event.headers, event.body
user_id = event['pathParameters']['userId']
return {
'statusCode': 200,
'headers': {'Content-Type': 'application/json'},
'body': '{"userId": "' + user_id + '", "name": "Alice"}'
}تكامل Lambda غير الوكيلي (المخصص)
مع تكامل Lambda Non-Proxy (التكامل المخصص)، تستخدم API Gateway قوالب التعيين (لغة قوالب Apache Velocity، VTL) لتحويل الطلب قبل إرساله إلى Lambda، وتحويل استجابة Lambda قبل إعادتها إلى العميل. وتتلقى وظيفة Lambda حمولة مخصصة ومنظمة—وليس حدث API Gateway الخام. يفصل ذلك مخاوف النقل عن منطق الأعمال، لكنه يتطلب صيانة قوالب VTL. استخدم التكامل المخصص عندما تريد فصلًا صارمًا بين عقد API والعقد الخلفي.
## Integration Request Mapping Template (VTL)
#set($inputRoot = $input.path('$'))
{
'userId': '$input.params('userId')',
'action': '$inputRoot.action',
'timestamp': '$context.requestTime'
}تكامل HTTP Proxy
يعمل تكامل HTTP Proxy على تمرير الطلبات مباشرةً إلى نقطة نهاية HTTP خارجية (قد تكون مثيل EC2 أو ALB أو خادمًا محليًا أو أي عنوان URL عام) من دون تحويل. تمرر API Gateway الطلب كما هو، ثم تعيد استجابة الواجهة الخلفية إلى العميل. ويُعد هذا مثاليًا لترحيل الواجهات الخلفية REST الحالية خلف API Gateway، لإضافة تحديد المعدل والمراقبة ومفاتيح API من دون تغيير التعليمات البرمجية للواجهة الخلفية. كما يدعم الواجهات الخلفية HTTPS مع التحقق من الشهادة.
# Create HTTP proxy integration via REST API
aws apigateway put-integration \
--rest-api-id 'abc123' \
--resource-id 'xyz789' \
--http-method GET \
--type HTTP_PROXY \
--integration-http-method GET \
--uri 'https://my-backend.example.com/api/users/{userId}'تكامل HTTP المخصص (غير الوكيلي)
يُمرر تكامل HTTP Custom الطلبات أيضًا إلى نقطة نهاية HTTP خارجية، لكنه يستخدم قوالب التعيين لتحويل الطلب المرسل إلى الواجهة الخلفية والاستجابة العائدة منها. ويفيد ذلك عندما تكون واجهة API Gateway وواجهة API الخلفية قائمتين على عقد مختلفة—إذ يمكنك تحويل استدعاء REST API إلى SOAP قديم أو تنسيق مخصص، ثم تحويل استجابة الواجهة الخلفية إلى بنية JSON نظيفة للعميل. يضيف هذا مزيدًا من التعقيد، لكنه يوفر أكبر قدر من التحكم للتكاملات القديمة.
تكامل خدمة AWS
يربط تكامل AWS Service API Gateway مباشرةً بخدمات AWS من دون وسيط Lambda. فعلى سبيل المثال، يمكنك إعداد نقطة نهاية POST تكتب رسالة مباشرةً إلى SQS، أو تنشرها إلى SNS، أو تبدأ تنفيذ Step Functions. يقلل ذلك الكمون ويلغي تكاليف وظائف Lambda لعمليات التوجيه البسيطة. ويتطلب التكامل إعداد دور IAM وقوالب تعيين لتنسيق استدعاء API الخاص بـ AWS بشكل صحيح.
# Direct API Gateway → SQS integration
# Integration Request URI:
https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
# Integration Request Body Mapping Template:
Action=SendMessage&MessageBody=$input.bodyالتكامل الوهمي للتطوير والاختبار
التكامل الوهمي يضبط API Gateway لإرجاع استجابة محددة مسبقًا من دون استدعاء أي نظام خلفي. تحدد الاستجابة في قالب تعيين استجابة التكامل. وتناسب التكاملات الوهمية تمامًا الحالات التالية: تطوير واجهة API قبل إنشاء النظام الخلفي، بحيث يمكن لفرق الواجهة الأمامية البدء فورًا؛ واختبار وحدات إعدادات واجهة API؛ وإرجاع ترويسات CORS القياسية؛ أو توفير بديل مؤقت للشركاء الخارجيين أثناء التطوير. ويمكن أيضًا استخدام نقاط النهاية الوهمية لحظر إصدارات واجهة API المهجورة عبر إرجاع 410 Gone.
# Integration Response for Mock
# Integration Response Mapping Template:
{
'statusCode': 200,
'message': 'This is a mock response',
'timestamp': '$context.requestTime'
}
# Method Response: map status code 200 to this templateإعداد CORS في API Gateway
يجب تفعيل CORS (مشاركة الموارد بين الأصول المختلفة) عندما يستدعي عميل يعمل في متصفح على نطاق معيّن واجهة API موجودة على نطاق آخر. توفر HTTP API إعدادًا لـ CORS بنقرة واحدة؛ أما REST API فتتطلب إنشاء طريقة OPTIONS مع تكامل وهمي يعيد ترويسات CORS المطلوبة (Access-Control-Allow-Origin وAccess-Control-Allow-Methods وAccess-Control-Allow-Headers). كما يتطلب تكامل Lambda proxy أن تعيد Lambda ترويسات CORS ضمن استجابتها.
# HTTP API CORS config (simple)
aws apigatewayv2 update-api \
--api-id 'abc123' \
--cors-configuration '{
"AllowOrigins": ["https://myapp.example.com"],
"AllowMethods": ["GET", "POST", "OPTIONS"],
"AllowHeaders": ["Content-Type", "Authorization"]
}'التحقق من الطلبات في REST API
تدعم REST API التحقق من الطلبات: إذ يمكن لـ API Gateway التحقق من وجود معاملات سلسلة الاستعلام والترويسات ومخطط نص الطلب المطلوبة، ومن تنسيقها الصحيح، قبل استدعاء النظام الخلفي. ويقلل ذلك من استدعاءات Lambda غير الضرورية الناتجة عن الطلبات غير الصحيحة، كما يعيد أخطاء 400 قياسية تلقائيًا. عرّف نموذج طلب باستخدام JSON Schema وأرفقه بالطريقة لتمكين التحقق من نص الطلب. لا يتوفر التحقق من الطلبات في HTTP API.
مهلات التكامل
تبلغ مهلة التكامل الافتراضية في API Gateway 29 ثانية لكل من REST API وHTTP API، وهي الحد الأقصى في REST API وثابتة في تكامل HTTP API proxy. إذا استغرق النظام الخلفي أكثر من 29 ثانية، فستعيد API Gateway خطأ 504 Gateway Timeout. وهذا يعني أن دوال Lambda التي تُستدعى بشكل متزامن عبر API Gateway يجب أن تكتمل خلال 29 ثانية، رغم أن Lambda نفسها تدعم مهلات تصل إلى 15 دقيقة. بالنسبة إلى العمليات طويلة التشغيل، استخدم نمطًا غير متزامن: تستدعي API Gateway دالة Lambda التي تبدأ مهمة غير متزامنة وتعيد معرّف المهمة فورًا.
اختيار نوع التكامل المناسب
دليل اختيار نوع التكامل: Lambda Proxy: الأكثر شيوعًا والأبسط، مع تحكم كامل في الطلب داخل Lambda؛ Lambda Custom: عندما تحتاج إلى تحويل الطلب أو الاستجابة في طبقة البوابة؛ HTTP Proxy: للأنظمة الخلفية الحالية التي تعمل عبر HTTP ولسيناريوهات الترحيل؛ HTTP Custom: لترجمة تنسيقات واجهات API القديمة؛ AWS Service: للاستغناء عن Lambda عند التوجيه البسيط إلى SQS أو SNS أو DynamoDB؛ Mock: للنماذج المؤقتة أثناء التطوير ولطلبات CORS التمهيدية. في اختبار SAA-C03، يُعد نمطا Lambda Proxy وHTTP Proxy الأكثر شيوعًا.
تحقق سريع
اختبر مدى استيعابك لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.
مراجعة الدرس
تعلمت في هذا الدرس أن تكامل Lambda Proxy يمرر الطلب بالكامل إلى Lambda، التي تتحكم في الاستجابة، وهو أبسط أنواع التكامل وأكثرها شيوعًا؛ وأن HTTP Proxy يمرر الطلبات إلى أنظمة خلفية موجودة عبر HTTP لإضافة ميزات API Gateway دون تغيير النظام الخلفي؛ وأن التكامل الوهمي يعيد استجابات محددة مسبقًا لتطوير الواجهة الأمامية واختبارها دون الحاجة إلى بنية تحتية خلفية. بعد ذلك سنستكشف التفويض في API Gateway باستخدام IAM ومخوّلات Lambda ومخوّلات Amazon Cognito.
تعلم Cloud & IT Cert Prep مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 150
- الدروس
- 600
الأسئلة الشائعة
هل درس «التكاملات: Lambda وHTTP وMock» مجاني؟
نعم — نص درس «التكاملات: Lambda وHTTP وMock» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ماذا ستتعلم في «التكاملات: Lambda وHTTP وMock»؟
اربطوا أساليب API Gateway بتكاملات Lambda proxy ونقاط نهاية HTTP العلوية وتكاملات Mock للاختبار. تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟
لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «التكاملات: Lambda وHTTP وMock»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟
نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- REST API مقابل HTTP API مقابل WebSocket API
- التكاملات: Lambda وHTTP وMock
- التفويض: IAM وLambda Authorizers وCognito
- التقييد والتخزين المؤقت وخطط الاستخدام