عند إنشاء تطبيقات بدون خادم على AWS، غالبًا ما يكون AWS Lambda هو الحل الأمثل لتشغيل التعليمات البرمجية دون توفير الخوادم أو إدارتها. تقليديًا، تم استخدام AWS API Gateway لعرض وظائف Lambda باعتبارها واجهات برمجة تطبيقات RESTful. ومع ذلك، قدمت AWS عناوين URL لوظائف Lambda، وهي طريقة أبسط لاستدعاء وظائف Lambda عبر HTTPS دون تحمل تكاليف تكوين بوابة API. في هذا المنشور، سنستكشف كيفية استخدام عناوين URL لوظيفة Lambda للتعامل مع طرق HTTP المختلفة — GET وPOST وPUT وDELETE — مع دمج مصادقة الأمان.
توفر عناوين URL لوظيفة Lambda نقطة نهاية HTTP(S) مخصصة لوظيفة Lambda الخاصة بك. تعتبر هذه الميزة مفيدة بشكل خاص للخدمات الصغيرة ذات الوظيفة الواحدة، أو واجهات برمجة التطبيقات خفيفة الوزن، أو عندما تحتاج إلى عرض وظيفة Lambda للعامة بأقل قدر من الإعداد.
أولاً، لنقم بإنشاء دالة Lambda وتكوين عنوان URL الخاص بها. يمكنك القيام بذلك عبر وحدة الإدارة في AWS، أو AWS CLI، أو أدوات البنية التحتية كرمز (IaC) مثل AWS CloudFormation أو Terraform.
إنشاء وظيفة لامدا:
إنشاء عنوان URL للوظيفة:
تأمين عنوان URL لوظيفتك:
يمكن لوظائف Lambda التي يتم تشغيلها بواسطة عناوين URL للوظائف التعامل مع طرق HTTP المتعددة — GET، وPOST، وPUT، وDELETE — داخل وظيفة واحدة. فيما يلي مثال بسيط لكيفية تنفيذ ذلك:
import json def lambda_handler(event, context): # Determine the HTTP method http_method = event['httpMethod'] if http_method == 'GET': return handle_get(event) elif http_method == 'POST': return handle_post(event) elif http_method == 'PUT': return handle_put(event) elif http_method == 'DELETE': return handle_delete(event) else: return { 'statusCode': 405, 'body': json.dumps({'message': 'Method Not Allowed'}) } def handle_get(event): # Handle GET request logic return { 'statusCode': 200, 'body': json.dumps({'message': 'GET request received'}) } def handle_post(event): # Handle POST request logic return { 'statusCode': 200, 'body': json.dumps({'message': 'POST request received'}) } def handle_put(event): # Handle PUT request logic return { 'statusCode': 200, 'body': json.dumps({'message': 'PUT request received'}) } def handle_delete(event): # Handle DELETE request logic return { 'statusCode': 200, 'body': json.dumps({'message': 'DELETE request received'}) }
إذا اخترت استخدام AWS_IAM لتأمين عنوان URL لوظيفتك، فسيحتاج العملاء إلى توقيع الطلبات باستخدام AWS SigV4 (إصدار التوقيع 4). فيما يلي نظرة عامة مختصرة حول كيفية تقديم طلبات مصادق عليها:
على سبيل المثال، مع AWS CLI:
aws lambda invoke-url https://.lambda-url. .on.aws/ \ --http-method POST \ --body '{ "key": "value" }' \ --region \ --profile
توفر عناوين URL لوظائف AWS Lambda طريقة مبسطة لعرض وظائف Lambda عبر HTTP دون الحاجة إلى بوابة API. من خلال التعامل مع أساليب HTTP المختلفة (GET، POST، PUT، DELETE) ضمن وظيفة Lambda وتأمين الوصول باستخدام AWS IAM، يمكنك إنشاء واجهات برمجة تطبيقات خفيفة الوزن وآمنة بسرعة. سواء كنت تقوم بتطوير خدمة صغيرة بسيطة أو تطبيق أكثر تعقيدًا، فإن عناوين URL لوظيفة Lambda تمثل إضافة قوية لمجموعة أدوات AWS الخاصة بك.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3