التشغيل اليدوي لوظيفة غير مشغلة بواسطة HTTP
توضح هذه المقالة كيفية تشغيل دالة غير مشغلة بواسطة HTTP يدويًا عبر طلب HTTP منسق خصيصًا.
في بعض السياقات، مثل أثناء التطوير واستكشاف الأخطاء وإصلاحها، قد تحتاج إلى تشغيل وظيفة Azure "عند الطلب" التي يتم تشغيلها بشكل غير مباشر. تتضمن أمثلة المشغلات غير المباشرة دالات على جدول زمني أو دالات تعمل كنتيجة للأحداث.
الإجراء الموضح في هذه المقالة يعادل استخدام وظيفة Test/Run لعلامة التبويب Code + Test للوظيفة في مدخل Microsoft Azure. يمكنك أيضا استخدام Visual Studio Code لتشغيل الوظائف يدويا.
المتطلبات الأساسية
تستخدم الأمثلة في هذه المقالة أداة اختبار HTTP. تأكد من اختيار أداة تحافظ على أمان بياناتك. لمزيد من المعلومات، راجع أدوات اختبار HTTP.
تحديد موقع الطلب
لتشغيل دالة غير مشغلة من قبل HTTP، تحتاج إلى طريقة لإرسال طلب إلى Azure لتشغيل الدالة. عنوان URL المستخدم لإجراء هذا الطلب يأخذ شكلًا محددًا.
- اسم المضيف: الموقع العام لتطبيق الوظائف الذي يتكون من اسم تطبيق الوظائف بالإضافة إلى azurewebsites.net أو مجالك المخصص. عند العمل مع فتحات النشر المستخدمة للتقسيم المرحلي، يكون جزء اسم المضيف هو اسم مضيف الإنتاج مع
-<slotname>
إلحاقه. في المثال السابق، سيكونmyfunctiondemos-staging.azurewebsites.net
عنوان URL لفتحة تسمىstaging
. - مسار المجلد: للوصول إلى الوظائف التي لم يتم تشغيلها بواسطة HTTP عبر طلب HTTP، يجب عليك إرسال الطلب من خلال المسار
admin/functions
. يمكن الوصول إلى واجهات برمجة التطبيقات ضمن/admin/
المسار فقط باستخدام التخويل. - اسم الدالة: اسم الدالة التي تريد تشغيلها.
تنطبق الاعتبارات التالية عند تقديم طلبات إلى نقاط نهاية المسؤول في تطبيق الوظائف:
- عند تقديم طلبات إلى أي نقطة نهاية ضمن
/admin/
المسار، يجب توفير المفتاح الرئيسي لتطبيقك فيx-functions-key
رأس الطلب. - عند التشغيل محليا، لا يتم فرض التخويل ولا يكون المفتاح الرئيسي للوظيفة مطلوبا. يمكنك استدعاء الدالة
x-functions-key
حذف العنوان مباشرة. - عند الوصول إلى نقاط نهاية تطبيق الوظائف في فتحة توزيع، تأكد من استخدام اسم المضيف الخاص بالفتحة في عنوان URL للطلب، جنبا إلى جنب مع المفتاح الرئيسي الخاص بالفتحة.
الحصول على المفتاح الرئيسي
يمكنك الحصول على المفتاح الرئيسي إما من مدخل Azure أو باستخدام Azure CLI.
تنبيه
نظرا للأذونات المرتفعة في تطبيق الدالة الذي يمنحه المفتاح الرئيسي، يجب عدم مشاركة هذا المفتاح مع أطراف ثالثة أو توزيعه في أحد التطبيقات. يجب إرسال المفتاح فقط إلى نقطة نهاية HTTPS.
انتقل إلى تطبيق الوظائف في مدخل Microsoft Azure، وحدد مفاتيح التطبيق، ثم
_master
المفتاح.في قسم تحرير المفتاح ، انسخ قيمة المفتاح إلى الحافظة، ثم حدد موافق.
استدعاء الدالة
في مدخل Microsoft Azure، انتقل إلى أعلى تطبيق الوظائف واختر وظيفتك.
حدد Code + Test، ثم حدد Logs. ترى رسائل من الدالة مسجلة هنا عند تشغيل الدالة يدويا من أداة اختبار HTTP.
في أداة اختبار HTTP، استخدم موقع الطلب الذي حددته كعنوان URL للطلب، وتأكد من أن أسلوب طلب HTTP هو POST، وقم بتضمين عنواني الطلب هذين:
مفتاح القيمة x-functions-key
قيمة المفتاح الرئيسي التي تم لصقها من الحافظة. Content-Type
application/json
تأكد من أن حمولة/نص طلب POST هو
{ "input": "<TRIGGER_INPUT>" }
. تعتمد الخاصية التي<TRIGGER_INPUT>
توفرها على نوع المشغل، ولكن يمكن أن تكون قيمة سلسلة أو رقمية أو منطقية فقط. بالنسبة للخدمات التي تستخدم حمولات JSON، مثل ناقل خدمة Azure، يجب إلغاء حمولة JSON الاختبارية وتسلسلها كسلسلة.إذا كنت لا تريد تمرير بيانات الإدخال إلى الدالة، فلا يزال يتعين عليك توفير قاموس
{}
فارغ كنص أساسي لطلب POST. لمزيد من المعلومات، راجع المقالة المرجعية لمشغل معين غير HTTP.إرسال طلب HTTP POST. يجب أن تكون الاستجابة استجابة HTTP 202 (مقبولة).
بعد ذلك، ارجع إلى الدالة في مدخل Azure. راجع السجلات وترى الرسائل الواردة من الاستدعاء اليدوي إلى الدالة.
تعتمد الطريقة التي تصل بها إلى البيانات المرسلة إلى المشغل على نوع المشغل ولغة الدالة. لمزيد من المعلومات، راجع الأمثلة المرجعية للمشغل المحدد.