"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تبسيط الوصول إلى واجهة برمجة التطبيقات باستخدام عناوين URL لوظيفة AWS Lambda: التعامل مع GET وPOST وPUT وDELETE باستخدام الأمان المدمج

تبسيط الوصول إلى واجهة برمجة التطبيقات باستخدام عناوين URL لوظيفة AWS Lambda: التعامل مع GET وPOST وPUT وDELETE باستخدام الأمان المدمج

تم النشر بتاريخ 2024-08-24
تصفح:671

Simplifying API Access with AWS Lambda Function URLs: Handling GET, POST, PUT, and DELETE with Built-in Security

عند إنشاء تطبيقات بدون خادم على AWS، غالبًا ما يكون AWS Lambda هو الحل الأمثل لتشغيل التعليمات البرمجية دون توفير الخوادم أو إدارتها. تقليديًا، تم استخدام AWS API Gateway لعرض وظائف Lambda باعتبارها واجهات برمجة تطبيقات RESTful. ومع ذلك، قدمت AWS عناوين URL لوظائف Lambda، وهي طريقة أبسط لاستدعاء وظائف Lambda عبر HTTPS دون تحمل تكاليف تكوين بوابة API. في هذا المنشور، سنستكشف كيفية استخدام عناوين URL لوظيفة Lambda للتعامل مع طرق HTTP المختلفة — GET وPOST وPUT وDELETE — مع دمج مصادقة الأمان.

ما هي عناوين URL لوظائف Lambda؟

توفر عناوين URL لوظيفة Lambda نقطة نهاية HTTP(S) مخصصة لوظيفة Lambda الخاصة بك. تعتبر هذه الميزة مفيدة بشكل خاص للخدمات الصغيرة ذات الوظيفة الواحدة، أو واجهات برمجة التطبيقات خفيفة الوزن، أو عندما تحتاج إلى عرض وظيفة Lambda للعامة بأقل قدر من الإعداد.

إعداد عنوان URL لوظيفة Lambda

أولاً، لنقم بإنشاء دالة Lambda وتكوين عنوان URL الخاص بها. يمكنك القيام بذلك عبر وحدة الإدارة في AWS، أو AWS CLI، أو أدوات البنية التحتية كرمز (IaC) مثل AWS CloudFormation أو Terraform.

  1. إنشاء وظيفة لامدا:

    • انتقل إلى وحدة تحكم AWS Lambda.
    • انقر على "إنشاء وظيفة".
    • اختر خيار "المؤلف من الصفر".
    • حدد اسم وظيفتك ووقت التشغيل ودور التنفيذ.
    • اكتب رمز وظيفتك أو قم بتحميل حزمة النشر.
  2. إنشاء عنوان URL للوظيفة:

    • ضمن تكوين وظيفتك، حدد علامة التبويب "عنوان URL للوظيفة".
    • انقر على "إنشاء عنوان URL للوظيفة".
    • اختر نوع التفويض (على سبيل المثال، AWS_IAM للوصول المصادق أو NONE للوصول العام).
    • انقر على "إنشاء عنوان URL للوظيفة".
  3. تأمين عنوان URL لوظيفتك:

    • يمكنك استخدام AWS IAM للمصادقة عن طريق تحديد AWS_IAM كنوع التفويض.
    • قم بإنشاء أدوار أو سياسات IAM للتحكم في المستخدمين أو الخدمات التي يمكنها استدعاء الوظيفة عبر عنوان URL.
    • اختياريًا، يمكنك تنفيذ منطق التفويض المخصص داخل الوظيفة نفسها لتقييد الوصول بشكل أكبر.

التعامل مع طرق HTTP المختلفة

يمكن لوظائف 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'})
    }

مثال على تأمين عنوان URL للوظيفة باستخدام مصادقة IAM

إذا اخترت استخدام AWS_IAM لتأمين عنوان URL لوظيفتك، فسيحتاج العملاء إلى توقيع الطلبات باستخدام AWS SigV4 (إصدار التوقيع 4). فيما يلي نظرة عامة مختصرة حول كيفية تقديم طلبات مصادق عليها:

  1. إنشاء مستخدم/دور IAM مع الأذونات المناسبة لاستدعاء وظيفة Lambda.
  2. توقيع الطلب: استخدم AWS SDKs أو CLI أو أدوات مثل Postman (مع مصادقة AWS IAM) لتوقيع طلبات HTTP.
  3. استدعاء عنوان URL للوظيفة: تأكد من أن الطلب الموقع يحتوي على بيانات اعتماد صالحة؛ وإلا سيتم رفض الطلب.

على سبيل المثال، مع 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 الخاصة بك.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/sunil_yaduvanshi/simplifying-api-access-with-aws-lambda-function-urls-handling-get-post-put-and-delete-with-built-in- الأمان- 4665?1 في حالة وجود أي مخالفة يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3