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

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

هام

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

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

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

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

يتم استخدام الوظيفة الناتجة لبقية هذه المقالة.

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

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

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

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

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

    تخصيص وظيفة HTTP

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

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

    لم تقم بتضمين البادئة الخاصة بـ /api المسار الأساسي في قالب المسار؛ لأنه يتم معالجتها بواسطة إعداد عمومي.

  3. حدد حفظ.

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

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

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

  1. في صفحة الوظيفة، قم بتحديد تعليمة برمجية + الاختبارمن القائمة اليسرى.

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

  3. قم بنسخ عنوان URL في علامة تبويب متصفح جديد أوعميل REST المفضل لديك.

    تستخدم المستعرضات GET بصفة افتراضية.

  4. قم بإضافة معلمات إلى سلسلة الاستعلام في عنوان URL.

    على سبيل المثال، /api/hello/?name=John

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

  6. يمكنك أيضًا محاولة الاتصال بنقطة النهاية باستخدام أسلوب HTTP آخر للتأكيد على عدم تنفيذ الوظيفة. للقيام بذلك، قم باستخدام عميل REST مثل cURL أو Postman أو Fiddler.

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

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

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

لمعرفة المزيد حول وكلاء، يرجى مراجعةالعمل مع وكلاء وظائف Azure.

إشعار

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

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

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

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

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

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

  2. قم بتحديدالتكوينواخترتطبيق الإعدادات.

  3. مرر لأسفل إلىإعدادات التطبيق، أين يتم تخزين أزواج المفاتيح /القيم، ثم قم بإنشاء إعداد جديد باستخدام المفتاحHELLO_HOST. قم بتعيين قيمته إلى مضيف تطبيق الوظيفة الخلفية، مثل<YourBackendApp>.azurewebsites.net. تُعتبر هذه القيمة جزءًا من عنوان URL الذي قمت بنسخه مسبَقًا عند اختبار وظيفة HTTP. ثم تشير إلى هذا الإعداد في التكوين لاحقًا.

    إشعار

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

  4. حدد حفظ.

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

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

  2. في القائمة اليسرى، قم بتحديد «وكلاء»، ثم حدد «إضافة».

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

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

    إنشاء الوكيل

    لا توفر وكلاء وظائف Azure/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".

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

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

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

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

يجب أن يكون وكلاء json على النحو التالي، إذا كنت قد قمت بالمتابعة حتى الآن:

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "HelloProxy": {
            "matchCondition": {
                "route": "/api/remotehello"
            },
            "backendUri": "https://%HELLO_HOST%/api/hello"
        }
    }
}

تقوم بعد ذلك بإضافة واجهة برمجة تطبيقات وهمية. قم باستبدال وكلاء 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الخاصية. يقوم بتعديل الاستجابة الافتراضية من الوكلاء باستخدام مانع استجابة، بدلًا من استدعاء مورد آخر. يمكن أيضًا استخدام مانعات الطلب والاستجابة مع عنوان URL الخلفي. تصبح هذه التقنية مفيدة في حالة الوكالة عن نظام قديم، حيث يمكن أن تحتاج إلى تعديل العناوين ومعلمات الاستعلام وغيره. لمعرفة المزيد حول مانع الطلب والاستجابة، يرجى مراجعةتعديل الطلبات والاستجابات في الوكلاء.

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

الخطوات التالية

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

يمكن أن تكون المراجع التالية نافعة أثناء تطوير API الخاص بك أكثر: