المقياس القائم على الأحداث في Azure Functions

في خطط Consumption وPremium، تقوم Azure Functions بتحجيم موارد وحدة المعالجة المركزية والذاكرة عن طريق إضافة المزيد من مثيلات مضيف الوظائف. يتم تحديد عدد المثيلات على عدد الأحداث التي تؤدي إلى تشغيل وظيفة.

يقتصر كل مثيل من مضيف الوظائف في خطة الاستهلاك، عادة على 1.5 غيغابايت من الذاكرة ومعالج واحد. مثيل المضيف هو تطبيق الوظيفة بأكمله، مما يعني أن جميع الوظائف داخل مورد مشاركة تطبيق الوظائف ضمن مثيل ونطاق في نفس الوقت. يتم قياس تطبيقات الوظائف التي تشترك في نفس خطة الاستهلاك بشكلٍ مستقل. في خطة Premium، يحدد حجم الخطة الذاكرة المتوفرة ووحدة المعالجة المركزية (CPU) لجميع التطبيقات في تلك الخطة على هذا المثيل.

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

قياس وقت التشغيل

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

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

Scale controller monitoring events and creating instances

تشغيل بارد

بعد أن يكون تطبيق الوظائف خاملاً لعدة دقائق، قد يقوم النظام الأساسي بتحجيم عدد المثيلات التي يعمل عليها تطبيقك إلى الصفر. يحتوي الطلب التالي على زمن انتقال إضافي للتحجيم من صفر إلى واحد. ويُشار إلى زمن الانتقال هذا بـ cold start. يمكن أن يؤثر عدد التبعيات المطلوبة من قبل تطبيق الوظائف على وقت البدء البارد. يُحدث Cold start أكثر من مشكلة للعمليات المتزامنة، مثل مشغلات HTTP التي يجب أن ترجع استجابة. إذا كانت البدايات الباردة تؤثر على وظائفك، ففكر في التشغيل في خطة Premium أو في خطة مخصصة مع تمكين الإعداد Always on .

فهم سلوكيات المقياس

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

  • الحد الأقصى للمثيلات: يتم توسيع نطاق تطبيق دالة واحدة فقط إلى الحد الأقصى المسموح به من قبل الخطة. قد يعالج مثيل واحد أكثر من رسالة أو طلب واحد في كل مرة، لذلك لا يوجد حد مُحدد لعدد العمليات المتزامنة. يمكنك تحديد الحد الأقصى الأدنى لخنق المقياس كما هو مطلوب.
  • معدل المثيل الجديد: بالنسبة إلى مشغلات HTTP، يتم تخصيص مثيلات جديدة، على الأكثر، مرة واحدة في الثانية. بالنسبة للمشغلات غير HTTP، يتم تخصيص مثيلات جديدة، على الأكثر، مرة واحدة كل 30 ثانية. المقياس أسرع عند تشغيل في خطة Premium.
  • التحجيم المستند إلى الهدف: يوفر التحجيم المستند إلى الهدف نموذج تحجيم سريع وبديهي للعملاء وهو مدعوم حاليا لقوائم انتظار وموضوعات ناقل خدمة Microsoft Azure وقوائم انتظار التخزين ومراكز الأحداث وملحقات Cosmos DB. تأكد من مراجعة التحجيم المستند إلى الهدف لفهم سلوك التحجيم.

الحد من التوسيع

قد ترغب في تقييد الحد الأقصى لعدد المثيلات التي يستخدمها التطبيق لتوسيع نطاقه. هذا هو الأكثر شيوعاً للحالات حيث يكون لدى مكون انتقال البيانات من الخادم مثل قاعدة بيانات مُعدل نقل محدود. بشكل افتراضي، يتم توسيع نطاق وظائف خطة الاستهلاك إلى ما يصل إلى 200 مثيل، وسيتم توسيع نطاق وظائف الخطة Premium إلى ما يصل إلى 100 مثيل. يمكنك تحديد حد أقصى وأدنى لتطبيق معين عن طريق تعديل قيمة functionAppScaleLimit. يمكن تعيين functionAppScaleLimit إلى 0 أوnull لقيمة غير مقيدة وصالحة بين 1 والحد الأقصى للتطبيق.

az resource update --resource-type Microsoft.Web/sites -g <RESOURCE_GROUP> -n <FUNCTION_APP-NAME>/config/web --set properties.functionAppScaleLimit=<SCALE_LIMIT>

سلوكيات تضييق النطاق

يقلل التحجيم المستند إلى الحدث تلقائيًا من السعة عند تقليل الطلب على وظائفك. يقوم بذلك عن طريق استنزاف مثيلات عمليات تنفيذ الدالة الحالية الخاصة بهم ثم إزالة هذه المثيلات. يتم تسجيل هذا السلوك كوضع استنزاف. يمكن أن تمتد فترة السماح للوظائف التي يتم تنفيذها حاليا إلى 10 دقائق لتطبيقات خطة الاستهلاك وما يصل إلى 60 دقيقة لتطبيقات الخطة المتميزة. لا ينطبق التحجيم المستند إلى الحدث وهذا السلوك على تطبيقات الخطة المخصصة.

تنطبق الاعتبارات التالية على سلوكيات تضييق النطاق:

  • بالنسبة لتطبيقات وظائف خطة الاستهلاك التي تعمل على Windows، يتم تمكين سلوكيات وضع الاستنفاذ بشكل افتراضي فقط للتطبيقات التي تم إنشاؤها بعد مايو 2021.
  • لتمكين إيقاف التشغيل بأمان للوظائف باستخدام مشغل ناقل خدمة Microsoft Azure، استخدم الإصدار 4.2.0 أو إصدار أحدث من ملحق ناقل خدمة Microsoft Azure.

أفضل الممارسات والأنماط للتطبيقات القابلة للتطوير

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

لمزيد من المعلومات حول المقياس في Python و Node.js، راجع دليل مطور Azure Functions Python - التحجيم والتزامن ودليل مطور وظائف Azure Node.js - المقياس والتزامن.

نموذج الفوترة

يتم وصف الفوترة للخطط المختلفة بالتفصيل في صفحة التسعير وظائف Azure. يتم تجميع الاستخدام على مستوى تطبيق الدالة ويتم احتساب الوقت الذي يتم فيه تنفيذ رمز الدالة فقط. فيما يلي وحدات للفوترة:

  • استهلاك الموارد في غيغابايت ثانية (GB-s). يحسب كمزيج من حجم الذاكرة ووقت التنفيذ لجميع الوظائف داخل تطبيق دالة.
  • عمليات التنفيذ . تحسب في كل مرة يتم فيها تنفيذ دالة استجابة لمشغل حدث.

يمكن العثور على استعلامات ومعلومات مفيدة حول كيفية فهم فاتورة الاستهلاك الخاصة بك في الأسئلة الشائعة حول الفوترة.

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

لمعرفة المزيد، راجع المقالات التالية: