نظرة عامة على مشغلات HTTP وروابط البيانات في دالات Azure

قد يتم استدعاء دالات Azure عبر طلبات HTTP لإنشاء واجهات برمجة التطبيقات بلا خادم والاستجابة للإخطارات على الويب.

الإجراء نوع
تشغيل دالة من طلب HTTP المشغِّل
إرجاع استجابة HTTP من دالة ربط الإخراج

تثبيت الملحق

تعتمد حزمة NuGet الملحق التي تقوم بتثبيتها على وضع C# الذي تستخدمه في تطبيق الوظائف:

يتم تنفيذ الوظائف في عملية عامل C# معزولة. لمعرفة المزيد، راجع دليل تشغيل وظائف C# Azure في عملية عامل معزولة.

تختلف وظيفة الملحق باختلاف إصدار الملحق:

أضف الملحق إلى مشروعك عن طريق تثبيت حزمة NuGet، الإصدار 3.x.

إشعار

هناك حاجة إلى حزمة ملحق إضافية لتكامل ASP.NET Core في .NET Isolated

تثبيت الحزمة

بدءاً من الإصدار 2.x من الوظائف، يعد ملحق HTTP جزءاً من حزمة الملحقات المحددة في ملف مشروع host.json الخاص بك. لمعرفة المزيد، راجع حزمة الإضافات.

من المفترض أن يكون هذا الإصدار من الإضافة متاحاً بالفعل لتطبيق وظيفتك باستخدام حزمة الإضافات، الإصدار 2.x.

إعدادات host.json

يصف هذا القسم إعدادات التكوين المتاحة لهذا الربط في الإصدارات 2.x وأعلى. تنطبق الإعدادات في ملف host.json على جميع الوظائف في مثيل تطبيق الوظائف. يحتوي مثال ملف host.json أدناه على إعدادات الإصدار 2.x + فقط لهذا الربط. للحصول على مزيدٍ من المعلومات عن إعدادات تكوين التطبيق الوظيفي في الإصدارات 2.x والإصدارات الأحدث، راجع مرجع host.json لوظائف Azure.

إشعار

للحصول على مرجع لـ host.json في دالات 1.x، راجع مرجع host.json لوظائفAzure 1.x.

{
    "extensions": {
        "http": {
            "routePrefix": "api",
            "maxOutstandingRequests": 200,
            "maxConcurrentRequests": 100,
            "dynamicThrottlesEnabled": true,
            "hsts": {
                "isEnabled": true,
                "maxAge": "10"
            },
            "customHeaders": {
                "X-Content-Type-Options": "nosniff"
            }
        }
    }
}
الخاصية Default ‏‏الوصف
customHeaders لا شيء يسمح لك بتعيين عناوين مخصصة في استجابة HTTP. يضيف المثال السابق X-Content-Type-Optionsالعنوان إلى الاستجابة لتجنب التعرف على نوع المحتوى. ينطبق هذا العنوان المخصص على جميع وظائف HTTP المشغلة في تطبيق الوظائف.
dynamicThrottlesEnabled صحيح * عند التمكين، يتسبب هذا الإعداد طلب معالجة البنية الأساسية لبرنامج ربط العمليات التجارية للفحص بشكل دوري لعدّاد الأداء النظام مثل connections/threads/processes/memory/cpu/etc وإذا تجاوز أي من هذه العدّادات حدًا مرتفعًا متضمنًا (80٪)، فسيتم رفض الطلبات مع 429 "Too Busy" استجابة حتى تعود العدّاد (العدّادات ) إلى المستويات العادية.
*الافتراضي في خطة الاستهلاك هو true. الافتراضي في خطة مخصصة هو false.
hsts ‏‏لم يتم التمكين عندما يتم تعين isEnabled إلى true، يتم فرض سلوك HTTP Strict Transport Security (HSTS) NET Core كما هو محدد في HstsOptions فئة. المثال أعلاه أيضا يعيّنmaxAge الخاصية إلى 10 أيام. الخصائص المدعومة هي hsts :
الخاصية‏‏الوصف
excludedHostsصفيف السلسلة من أسماء المضيفين التي لم تتم إضافة عنوان HSTS لها.
includeSubDomainsالقيمة المنطقية التي تشير إلى ما إذا تم تمكين معلمة includeSubDomain لعنوان Strict-Transport-Security.
maxAgeالسلسلة التي تحدد معلمة max-age لعنوان Strict-Transport-Security.
تحميل في الخلفيةالقيمة المنطقية التي تشير إلى ما إذا تم تمكين معلمة تحميل في الخلفية لعنوان Strict-Transport-Security.
maxConcurrentRequests 100* الحد الأقصى لعدد دالات HTTP التي يتم تنفيذها بالتوازي. تسمح لك هذه القيمة عنصر تحكم في التزامن، والذي يمكن أن يساعد في إدارة استخدام مورد. على سبيل المثال، قد يكون لديك دالة HTTP تستخدم عدد كبير من موارد النظام (memory/cpu/sockets) بحيث تتسبب في حدوث مشكلات عندما يكون التزامن مرتفعًا جدًا. أو قد يكون لديك دالة تقدم طلبات صادرة لخدمة جهة خارجية، ويجب أن تكون هذه الاتصالات محدودة التقييم. في هذه الحالات، يمكن أن يساعد استخدام تقييد هنا.
*القيمة الافتراضية لخطة استهلاك هو 100. القيمة الافتراضية لخطة مخصصة غير مرتبط ( -1 ).
maxOutstandingRequests 200* الحد الأقصى لعدد الطلبات المعلقة التي يتم الاحتفاظ بها في أي وقت. يتضمن هذا الحد الطلبات التي تم وضعها في قائمة الانتظار ولكن لم يتم بدء تنفيذها، بالإضافة إلى أي عمليات تنفيذ قيد التقدم. يتم رفض أي طلبات واردة تتجاوز هذا الحد باستجابة 429 "مشغول للغاية". يسمح ذلك للمتصلين باستخدام استراتيجيات إعادة المحاولة المستندة إلى الوقت، ويساعدك أيضًا على عنصر تحكم في الحد الأقصى من أزمنة انتقال الطلب. يتحكم هذا فقط في قائمة الانتظار التي تحدث ضمن مسار تنفيذ مضيف البرنامج النصي. ستظل قوائم الانتظار الأخرى مثل قائمة الانتظار طلب ASP.NET سارية ولن تتأثر بهذا الإعداد.
*الافتراضي لخطة استهلاك هو 200. القيمة الافتراضية لخطة مخصصة غير مرتبط ( -1 ).
routePrefix واجهة برمجة التطبيقات بادئة المسار التي تنطبق على كافة المسارات. استخدم سلسلة فارغة ليزيل البادئة الافتراضية.

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