مشاركة عبر


تخصيص نقطة النهاية الخاصة بـ HTTP في وظائف Azure

في هذه المقالة، ستتعلم كيفية إنشاء واجهات برمجة تطبيقات قابلة للتطوير بدرجة كبيرة باستخدام Azure Functions عن طريق تخصيص مشغل HTTP للتعامل مع إجراءات محددة في تصميم واجهة برمجة التطبيقات. تتضمن Azure Functions مجموعة من مشغلات HTTP المضمنة والروابط، ما يسهل تأليف نقطة نهاية بلغات مختلفة، بما في ذلك Node.js وC#والمزيد. كما تستعد لتنمية واجهة برمجة التطبيقات الخاصة بك من خلال دمجها مع وكلاء Azure Functions وإعداد واجهات برمجة التطبيقات الوهمية. نظرا لأن هذه المهام يتم إنجازها أعلى بيئة الحوسبة بلا خادم Functions، لا تحتاج إلى القلق بشأن تحجيم الموارد. بدلا من ذلك، يمكنك التركيز فقط على منطق API الخاص بك.

هام

وكلاء Azure Functions هي ميزة قديمة للإصدارات من 1.x إلى 3.x من وقت تشغيل Azure Functions. يمكن إعادة تمكين دعم الوكلاء في الإصدار 4.x لترقية تطبيقات الوظائف بنجاح إلى أحدث إصدار من وقت التشغيل. في أقرب وقت ممكن، يجب التبديل إلى دمج تطبيقات الوظائف الخاصة بك مع Azure API Management. تتيح لك APIM الاستفادة من مجموعة أكثر اكتمالا من الميزات لتحديد واجهات برمجة التطبيقات المستندة إلى الوظائف وتأمينها وإدارتها والاستفادة منها. لمزيد من المعلومات، راجع تكامل APIM.

لمعرفة كيفية إعادة تمكين دعم الوكلاء في Functions الإصدار 4.x، راجع إعادة تمكين الوكلاء في Functions v4.x.

المتطلبات الأساسية

  • أداة اختبار HTTP تحافظ على أمان بياناتك. لمزيد من المعلومات، راجع أدوات اختبار HTTP.

تستخدم هذه المقالة كنقطة بداية للموارد التي تم إنشاؤها في إنشاء دالتك الأولى في مدخل Microsoft Azure. إذا لم تكن قد فعلت ذلك بالفعل، فأكمل هذه الخطوات الآن لإنشاء تطبيق الوظائف.

بعد إنشاء تطبيق الوظائف هذا، يمكنك اتباع الإجراءات الواردة في هذه المقالة.

تسجيل الدخول إلى Azure

سجل الدخول إلى مدخل Microsoft Azure باستخدام حساب Azure الخاص بك.

قم بتخصيص وظيفة HTTP الخاصة بك

بشكل افتراضي، يمكنك تكوين دالة مشغل HTTP لقبول أي أسلوب HTTP. يمكنك تعديل الوظيفة في هذا القسم للاستجابة فقط لطلبات GET باستخدام/api/hello. يمكنك استخدام عنوان URL الافتراضي، https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>:

  1. انتقل إلى تطبيق الوظائف الجديد الخاص بك في مدخل Microsoft Azure. قم بتحديد الإدماج في القائمة اليمنى، ثم حدد HTTP (req) ضمن المشغل.

    لقطة شاشة توضح كيفية تحرير إعدادات مشغل HTTP لوظيفة.

  2. قم باستخدام إعدادات مشغل HTTP كما هو محدد في الجدول التالي.

    الحقل عينة القيمة ‏‏الوصف
    قالب مسار hello تحديد المسار المستخدم لاستدعاء هذه الوظيفة
    مستوى التخويل مجهول اختياري: يجعل الوظيفة الخاصة بك قابلة للوصول إليها دون مفتاح API
    أساليب HTTP محددة GET يسمح فقط بأساليب HTTP المحددة لاستخدامها لاستدعاء هذه الوظيفة

    نظرا لأن الإعداد العمومي يعالج /api بادئة المسار الأساسي في قالب المسار، فلن تحتاج إلى تعيينه هنا.

  3. حدد حفظ.

لمزيد من المعلومات حول تخصيص وظائف HTTP، راجع نظرة عامة على مشغلات HTTP وروابط Azure Functions.

قم باختبار واجهة برمجة التطبيقات الخاصة بك

بعد ذلك، اختبر الوظيفة الخاصة بك لمعرفة كيفية عملها مع سطح واجهة برمجة التطبيقات الجديد:

  1. في صفحة Function ، حدد Code + Test من القائمة اليسرى.

  2. حدد «الحصول على وظيفة URL» من القائمة العلوية وانسخ عنوان URL. تأكد من أن الدالة /api/hello تستخدم المسار الآن.

  3. انسخ عنوان URL إلى علامة تبويب مستعرض جديدة أو عميل REST المفضل لديك. تستخدم المستعرضات GET بصفة افتراضية.

  4. قم بإضافة معلمات إلى سلسلة الاستعلام في عنوان URL. على سبيل المثال، /api/hello/?name=John

  5. اضغط على مفتاح الإدخال Enter للتأكد من أن الدالة تعمل. يجب أن ترى الرد،"مرحبًا جون."

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

النظرة العامة على الوكلاء

في القسم التالي، يمكنك عرض واجهة برمجة التطبيقات الخاصة بك من خلال وكيل. يسمح لك وكلاء Azure Functions بإعادة توجيه الطلبات إلى موارد أخرى. يمكنك تعريف نقطة نهاية HTTP كما تفعل مع مشغل HTTP. ومع ذلك، يمكنك توفير عنوان URL لتطبيق بعيد، بدلًا من كتابة التعليمات البرمجية للتنفيذ عند استدعاء نقطة النهاية هذه. يتيح لك القيام بذلك إنشاء مصادر واجهة برمجة تطبيقات متعددة في سطح واجهة برمجة تطبيقات واحد، وهو أمر يسهل على العملاء استهلاكه، وهو مفيد إذا كنت ترغب في إنشاء واجهة برمجة التطبيقات الخاصة بك كخدمات مصغرة.

يمكن للوكيل الإشارة إلى أي مورد HTTP، مثل:

لمعرفة المزيد حول وكلاء Azure Functions، راجع [العمل مع الوكلاء القدامى].

إشعار

يتوفر وكلاء Azure Functions في إصدارات Azure Functions من 1.x إلى 3.x.

قم بإنشاء وكيلك الأول

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

إعداد بيئة الواجهة الأمامية

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

  1. قم بالانتقال إلى تطبيق وظائف الواجهة الأمامية الجديد في المدخل.

  2. قم بتوسيع الإعدادات، ثم حدد متغيرات البيئة.

  3. حدد علامة التبويب إعدادات التطبيق، حيث يتم تخزين أزواج المفاتيح/القيم.

  4. حدد + إضافة لإنشاء إعداد جديد. أدخل HELLO_HOST لاسمه وقم بتعيين قيمته إلى مضيف تطبيق الدالة الخلفية، مثل <YourBackendApp>.azurewebsites.net.

    هذه القيمة هي جزء من عنوان URL الذي نسخته سابقا عند اختبار دالة HTTP. يمكنك لاحقا الرجوع إلى هذا الإعداد في التكوين.

    إشعار

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

  5. حدد تطبيق لحفظ الإعداد الجديد. في علامة التبويب إعدادات التطبيق، حدد تطبيق، ثم حدد تأكيد لإعادة تشغيل تطبيق الدالة.

إنشاء وكيل على الواجهة الأمامية

  1. انتقل مرة أخرى إلى تطبيق وظائف الواجهة الأمامية في المدخل.

  2. في القائمة اليسرى، قم بتوسيع Functions، وحدد Proxies، ثم حدد Add.

  3. في صفحة وكيل جديد، استخدم الإعدادات في الجدول التالي، ثم حدد إنشاء.

    الحقل عينة القيمة ‏‏الوصف‬
    الاسم مرحبًا بالوكيل اسم مألوف يتم استخدامه فقط للإدارة
    قالب مسار واجهة مستخدم التطبيقات/ الترحيب عن بُعد القيام بتحديد المسار المستخدم لاستدعاء هذا الوكيل
    عنوان URL خلفي https://%HELLO_HOST%/api/hello القيام بتحديد نقطة النهاية التي يجب أن يكون الطلب وكيلًا لها

    لقطة شاشة تعرض الإعدادات في صفحة وكيل جديد.

    نظرا لأن وكلاء Azure Functions لا يوفرون /api بادئة المسار الأساسي، يجب تضمينها في قالب المسار. %HELLO_HOST%يشير بناء الجملة إلى إعداد التطبيق الذي قمت بإنشائه سابقًا. يشير عنوان URL الذي تم حله إلى الدالة الأصلية.

  4. جرب وكيلك الجديد عن طريق نسخ عنوان URL الوكيل واختباره في المتصفح أو مع عميل HTTP المفضل لديك:

    • بالنسبة إلى دالة مجهولة، استخدم: https://YOURPROXYAPP.azurewebsites.net/api/remotehello?name="Proxies".
    • للحصول على دالة مع تخويل، استخدم: https://YOURPROXYAPP.azurewebsites.net/api/remotehello?code=YOURCODE&name="Proxies".

قم بإنشاء واجهة برمجة تطبيقات وهمية

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

  1. لإنشاء واجهة برمجة التطبيقات الوهمية هذه، قم بإنشاء وكيل جديد، هذه المرة باستخدام App Service Editor. للبدء، انتقل إلى تطبيق الوظائف في مدخل Microsoft Azure. حدد ميزات النظام الأساسي، ثم حدد محرر خدمة التطبيقات ضمن أدوات التطوير.

    يتم فتح محرر خدمة التطبيقات في علامة التبويب الجديدة.

  2. حدد proxies.json في الجزء الأيمن. يخزن هذا الملف التكوين لكافة الوكلاء الخاصين بك. إذا كنت تستخدم أحدأساليب توزيع الوظائف، يمكنك الاحتفاظ بهذا الملف في عنصر التحكم بالمصادر. لمزيد من المعلومات حول هذا الملف، راجع التكوين المتقدم للوكلاء.

    يجب أن يظهر ملف proxies.json كما يلي:

    {
        "$schema": "http://json.schemastore.org/proxies",
        "proxies": {
            "HelloProxy": {
                "matchCondition": {
                    "route": "/api/remotehello"
                },
                "backendUri": "https://%HELLO_HOST%/api/hello"
            }
        }
    }
    
  3. أضف واجهة برمجة التطبيقات الوهمية الخاصة بك. استبدل ملف proxies.json بالتعليمات البرمجية التالية:

    {
        "$schema": "http://json.schemastore.org/proxies",
        "proxies": {
            "HelloProxy": {
                "matchCondition": {
                    "route": "/api/remotehello"
                },
                "backendUri": "https://%HELLO_HOST%/api/hello"
            },
            "GetUserByName" : {
                "matchCondition": {
                    "methods": [ "GET" ],
                    "route": "/api/users/{username}"
                },
                "responseOverrides": {
                    "response.statusCode": "200",
                    "response.headers.Content-Type" : "application/json",
                    "response.body": {
                        "name": "{username}",
                        "description": "Awesome developer and master of serverless APIs",
                        "skills": [
                            "Serverless",
                            "APIs",
                            "Azure",
                            "Cloud"
                        ]
                    }
                }
            }
        }
    }
    

    تضيف هذه التعليمة البرمجية وكيلا جديدا، ، GetUserByNameوالذي يحذف الخاصية backendUri . بدلا من استدعاء مورد آخر، فإنه يعدل الاستجابة الافتراضية من وكلاء Azure Functions باستخدام تجاوز الاستجابة. يمكنك أيضا استخدام تجاوزات الطلب والاستجابة مع عنوان URL للواجهة الخلفية. هذه التقنية مفيدة عند الوكيل إلى نظام قديم، حيث قد تحتاج إلى تعديل الرؤوس ومعلمات الاستعلام وما إلى ذلك. لمزيد من المعلومات حول تجاوزات الطلب والاستجابة، راجع تعديل الطلبات والاستجابات.

  4. اختبر واجهة برمجة التطبيقات الوهمية عن طريق استدعاء <YourProxyApp>.azurewebsites.net/api/users/{username} نقطة النهاية باستخدام مستعرض أو عميل REST المفضل لديك. استبدل {username} بقيمة سلسلة تمثل اسم مستخدم.

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

لمزيد من المعلومات حول تطوير واجهة برمجة التطبيقات الخاصة بك: