خيارات استضافة وظائف Azure

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

خيار الاستضافة الخدمة التوافر دعم الحاويات
خطة الاستهلاك دالات Azure متوفرة بشكل عام (GA) بلا
خطة استهلاك Flex دالات Azure الإصدار الأولي بلا
خطة متميزة دالات Azure التوفر العام Linux
خطة مخصصة دالات Azure التوفر العام Linux
تطبيقات الحاوية Azure Container Apps التوفر العام Linux

يتم تسهيل خيارات استضافة Azure Functions بواسطة البنية الأساسية لخدمة تطبيقات Azure على كل من أجهزة Linux وWindows الظاهرية. يحدد خيار الاستضافة الذي تختاره السلوكيات التالية:

  • كيفية قياس تطبيق الوظيفة.
  • الموارد المتوفرة لكل مثيل تطبيق وظيفي.
  • دعم الوظائف المتقدمة، مثل اتصال الشبكة الظاهرية من Azure.
  • دعم حاويات Linux.

تؤثر الخطة التي تختارها أيضا على تكاليف تشغيل التعليمات البرمجية للدالة. لمزيد من المعلومات، انظرالفواتير.

توفر هذه المقالة مقارنة مفصلة بين خيارات الاستضافة المختلفة. لمعرفة المزيد حول تشغيل وإدارة التعليمات البرمجية للدالة في حاويات Linux، راجع دعم حاوية Linux في Azure Functions.

نظرة عامة على الخطط

فيما يلي ملخص لفوائد الخيارات المختلفة لاستضافة Azure Functions:

خيار المزايا
خطة الاستهلاك ادفع مقابل موارد الحوسبة فقط عند تشغيل وظائفك (الدفع أولا بأول) بمقياس تلقائي.

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

✔ خطة الاستضافة الافتراضية التي توفر استضافة حقيقية بلا خادم.
✔ الدفع فقط عند تشغيل الوظائف.
✔ المقاييس تلقائيًا، حتى خلال فترات التحميل العالي.
خطة استهلاك Flex احصل على قابلية توسع عالية مع خيارات الحوسبة والشبكات الظاهرية وفواتير الدفع أولا بأول.

في خطة Flex Consumption، تتم إضافة مثيلات مضيف الوظائف وإزالتها ديناميكيا استنادا إلى التزامن المكون لكل مثيل وعدد الأحداث الواردة.

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

ضع في اعتبارك خطة Azure Functions Premium في الحالات التالية:

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

الأولوية للسيناريوهات طويلة الأمد حيث لا يمكن استخدام "الوظائف الدائمة". خذ بعين الاعتبار خطة خدمة التطبيقات في الحالات التالية:

✔ لديك أجهزة ظاهرية موجودة وغير مستخدمة بشكل جيد تعمل بالفعل على مثيلات App Service الأخرى.
✔ يجب أن يكون لديك فوترة يمكن التنبؤ بها بالكامل، أو تحتاج إلى تغيير حجم المثيلات يدويا.
✔ تريد تشغيل تطبيقات ويب وتطبيقات وظائف متعددة على نفس الخطة
✔ تحتاج إلى الوصول إلى خيارات حجم الحوسبة الأكبر.
✔ عزل الحساب الكامل والوصول الآمن إلى الشبكة التي توفرها بيئة خدمة التطبيقات (ASE).
✔ استخدام ذاكرة عال جدا ومقياس عال (ASE).
تطبيقات الحاوية إنشاء ونشر تطبيقات الوظائف المعبأة في حاويات في بيئة مدارة بالكامل تستضيفها Azure Container Apps.

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

✔ تريد حزم مكتبات مخصصة باستخدام التعليمات البرمجية للدالة لدعم تطبيقات خط العمل.
✔ تحتاج إلى ترحيل تنفيذ التعليمات البرمجية من التطبيقات المحلية أو القديمة إلى الخدمات المصغرة الأصلية السحابية التي تعمل في حاويات.
✔ عندما تريد تجنب النفقات العامة وتعقيد إدارة مجموعات Kubernetes والحوسبة المخصصة.
✔ تحتاج وظائفك إلى قوة معالجة عالية المستوى توفرها موارد حوسبة GPU مخصصة.

تقارن الجداول المتبقية في هذه المقالة خيارات الاستضافة استنادا إلى ميزات وسلوكيات مختلفة.

دعم نظام التشغيل

يعرض هذا الجدول دعم نظام التشغيل لخيارات الاستضافة.

الاستضافة توزيع Linux1 توزيع Windows2
خطة الاستهلاك ✅ التعليمات البرمجية فقط
❌ الحاوية (غير مدعومة)
✅ التعليمات البرمجية فقط
خطة استهلاك Flex ✅ التعليمات البرمجية فقط
❌ الحاوية (غير مدعومة)
❌ غير مدعوم
خطة متميزة ✅ التعليمات البرمجية فقط
✅ حاويه
✅ التعليمات البرمجية فقط
خطة مخصصة ✅ التعليمات البرمجية فقط
✅ حاويه
✅ التعليمات البرمجية فقط
تطبيقات الحاوية ✅ الحاوية فقط ❌ غير مدعوم

1 Linux هو نظام التشغيل الوحيد المدعوم لمكدس وقت تشغيل Python.
2 عمليات نشر Windows هي تعليمات برمجية فقط. لا تدعم الوظائف حاليا حاويات Windows.

مدة مهلة تطبيق الوظائف

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

يعرض الجدول التالي القيم الافتراضية والحد الأقصى (بالدقائق) لخطط معينة:

الخطة الإعداد الافتراضي الحد الأقصى1
خطة الاستهلاك 5 10
خطة استهلاك Flex 30 غير محدود3
خطة متميزة 302 غير محدود3
خطة مخصصة 302 غير محدود3

1 بغض النظر عن إعداد مهلة تطبيق الوظائف، فإن 230 ثانية هي الحد الأقصى للوقت الذي يمكن أن تستغرقه وظيفة HTTP المشغلة للاستجابة لطلب. هذا بسبب مهلة الخمول الافتراضية ل Azure Load Balancer. لأوقات المعالجة الأطول، ضع في اعتبارك استخدام نمط Durable Functions غير المتزامن أو تأجيل العمل الفعلي وإرجاع استجابة فورية.
2 المهلة الافتراضية للإصدار 1.x من وقت تشغيل الوظائف غير محدودة.
3 مضمونة لمدة تصل إلى 60 دقيقة. لا يزال بإمكان تصحيح نظام التشغيل ووقت التشغيل، وتصحيح الثغرات الأمنية، وتوسيع نطاق السلوكيات إلغاء عمليات تنفيذ الوظائف، لذا تأكد من كتابة وظائف قوية. 4 في خطة استهلاك Flex، لا يفرض المضيف حدا زمنيا للتنفيذ. ومع ذلك، لا توجد ضمانات حاليا لأن النظام الأساسي قد يحتاج إلى إنهاء مثيلاتك أثناء التوسيع أو عمليات النشر أو لتطبيق التحديثات.

الدعم اللغوي

للحصول على تفاصيل حول دعم مكدس اللغة الأصلية الحالي في Functions، راجع اللغات المدعومة في Azure Functions.

المقياس‬

يقارن الجدول التالي سلوكيات التحجيم لخطط الاستضافة المختلفة.
يتم تقديم الحد الأقصى من المثيلات على أساس تطبيق لكل وظيفة (استهلاك) أو لكل خطة (بريميوم/مخصص)، ما لم يُذكر خلاف ذلك.

الخطة التوسيع Max # مثيلات
خطة الاستهلاك يستند إلى حدث يتوسع تلقائيا، حتى خلال فترات التحميل العالي. تقوم البنية الأساسية للوظائف بتغيير حجم وحدة المعالجة المركزية وموارد الذاكرة عن طريق إضافة المزيد من مثيلات مضيف الوظائف، استنادا إلى عدد أحداث المشغل الواردة. Windows: 200
Linux: 1001
خطة استهلاك Flex التحجيم لكل وظيفة. يتم حساب قرارات التحجيم المستندة إلى الحدث على أساس كل وظيفة، ما يوفر طريقة أكثر حتمية لتحجيم الوظائف في تطبيقك. باستثناء HTTP وتخزين Blob (Event Grid) و Durable Functions، جميع أنواع مشغلات الوظائف الأخرى في مقياس التطبيق الخاص بك على مثيلات مستقلة. تتوسع جميع مشغلات HTTP في تطبيقك معا كمجموعة على نفس المثيلات، كما تفعل جميع مشغلات تخزين Blob (شبكة الأحداث). تشترك جميع مشغلات Durable Functions أيضا في المثيلات وتتوسع معا. يقتصر فقط على إجمالي استخدام الذاكرة لكافة المثيلات عبر منطقة معينة. لمزيد من المعلومات، راجع ذاكرة المثيل.
خطة متميزة يستند إلى حدث قم بالتوسع تلقائيًا، حتى خلال فترات الحمل العالي. تقوم البنية الأساسية ل Azure Functions بتغيير حجم وحدة المعالجة المركزية وموارد الذاكرة عن طريق إضافة المزيد من مثيلات مضيف الوظائف، استنادا إلى عدد الأحداث التي يتم تشغيل وظائفها عليها. Windows: 100
Linux: 20-1002
خطة مخصصة3 مقياس يدوي/تلقائي 10-30
100 (ASE)

1 أثناء التوسع، يوجد حالياً حد 500 مثيل لكل اشتراك في الساعة لتطبيقات Linux في خطة الاستهلاك.
2 في بعض المناطق، يمكن توسيع نطاق تطبيقات Linux على خطة Premium إلى 100 مثيل. لمزيد من المعلومات، راجع مقالة الخطة المميزة .
3 للحصول على حدود معينة لخيارات خطة خدمة التطبيق المتنوعة، راجع حدود خطة خدمة التطبيق .

سلوك البدء البارد

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

حدود الخدمة

Resource خطة الاستهلاك خطةاستهلاك Flex 12 خطة متميزة خطة/مخصصة ASE
مدة المهلة الافتراضية (دقيقة) 5 30 30 301
الحد الأقصى لمدة المهلة (دقيقة) 10 15 غير مقيد غير مقيد7 غير مقيد2
الحد الأقصى من الاتصالات الصادرة (لكل مثيل) 600 نشط (إجمالي 1200) غير مقيد غير مقيد غير مقيد
الحجم الأقصى للطلب (ميجابايت)3 100 100 100 100
أقصى طول لسلسلة الاستعلام3 4096 4096 4096 4096
الحد الأقصى لطول عنوان URL للطلب3 8192 8192 8192 8192
مفهوم وحدة الحوسبة لكل مثيل 100 يختلف 210-840 100-840/210-2508
الحد الأقصى للذاكرة (جيجابايت لكل مثيل) 1.5 413 3.5-14 1.75-14/3.5-14
أقصى عدد للمثيل (Windows/Linux) 200/100 1000 14 100/20 يختلف حسب SKU/1009
تطبيقات الوظائف لكل خطة11 100 100 100 غير مقيد4
خطط App Service 100 لكل منطقة غير متوفر 100 لكل مجموعة موارد 100 لكل مجموعة موارد
فتحات التوزيع لكل تطبيق10 2 غير متوفر 3 1-209
التخزين5 5 جيجابايت 250 غيغابايت 250 غيغابايت 50-1000 جيجابايت
المجالات المخصصة لكل تطبيق 5006 500 500 500
مجال مخصص دعم SSL تم تضمين اتصال SNI SSL غير المحدود تم تضمين اتصال SNI SSL غير المحدود واتصال IP SSL واحد تم تضمين اتصال SNI SSL غير المحدود واتصال IP SSL واحد تم تضمين اتصال SNI SSL غير المحدود واتصال IP SSL واحد

ملاحظات حول حدود الخدمة:

  1. بشكل افتراضي، تكون مهلة وقت تشغيل Functions 1.x في خطة App Service غير مقيدة.
  2. يتطلب تعيين خطة App Service إلى Always On. الدفع بالأسعار القياسية.
  3. يتم تعيين هذه الحدود في المضيف.
  4. يعتمد العدد الفعلي لتطبيقات الوظائف التي يمكنك استضافتها على نشاط التطبيقات وحجم مثيلات الجهاز واستخدام الموارد المقابلة.
  5. حد التخزين هو إجمالي حجم المحتوى في التخزين المؤقت عبر جميع التطبيقات في نفس خطة App Service. تستخدم خطة الاستهلاك ملفات Azure للتخزين المؤقت.
  6. عند استضافة تطبيق الوظائف في خطة Consumption، يتم دعم خيار CNAME فقط. بالنسبة للتطبيقات الوظيفية في الخطة المتميزة أو خطة خدمة التطبيقات، يمكنك تعيين مجال مخصص باستخدام إما سجل CNAME أو سجل A.
  7. مضمون لمدة تصل إلى 60 دقيقة.
  8. العمال هم الأدوار التي تستضيف تطبيقات العملاء. يتوفر العمال بثلاثة أحجام ثابتة: واحد vCPU/3.5 جيجابايت من ذاكرة الوصول العشوائي؛ اثنان vCPU/7 جيجابايت من ذاكرة الوصول العشوائي؛ أربعة وحدات معالجة مركزية (vCPU)/14 جيجابايت من ذاكرة الوصول العشوائي.
  9. راجع حدود App Service للحصول على التفاصيل.
  10. بما في ذلك فتحة الإنتاج.
  11. يوجد حاليا حد 5000 تطبيق وظيفة في اشتراك معين.
  12. خطة Flex Consumption قيد المعاينة حاليا.
  13. يتم تعريف أحجام مثيل خطة استهلاك Flex حاليا على أنها إما 2048 ميغابايت أو 4096 ميغابايت. لمزيد من المعلومات، راجع ذاكرة المثيل.
  14. تحتوي خطة الاستهلاك المرن أثناء المعاينة على حصة اشتراك إقليمية تحد من إجمالي استخدام الذاكرة لجميع المثيلات عبر منطقة معينة. لمزيد من المعلومات، راجع ذاكرة المثيل.
  15. في خطة استهلاك Flex، لا يفرض المضيف حدا زمنيا للتنفيذ. ومع ذلك، لا توجد ضمانات حاليا لأن النظام الأساسي قد يحتاج إلى إنهاء مثيلاتك أثناء التوسيع أو عمليات النشر أو لتطبيق التحديثات.

ميزات الشبكات

ميزة خطة الاستهلاك خطة استهلاك Flex خطة متميزة خطة/مخصصة ASE
قيود IP الواردة ✅نعم ✅نعم ✅نعم ✅نعم
نقاط النهاية الخاصة الواردة ❌لا ✅نعم ✅نعم ✅نعم
تكامل الشبكة الظاهرية ❌لا ✅نعم (إقليمي) ✅نعم (إقليمي) ✅نعم (إقليمي وبوابة)
مشغلات الشبكة الظاهرية (غير HTTP) ❌لا ✅نعم ✅نعم ✅نعم
اتصالات مختلطة (نظام Windows فحسب) ❌لا ✅نعم ✅نعم ✅نعم
قيود IP الصادرة ❌لا ✅نعم ✅نعم ✅نعم

الفوترة

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

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

لمقارنة التكلفة المباشرة بين خطط الاستضافة الديناميكية (الاستهلاك واستهلاك Flex وPremium)، راجع صفحة تسعير Azure Functions. لتسعير خيارات الخطة المخصصة المختلفة، راجع صفحة تسعير خدمة التطبيقات لتسعير استضافة تطبيقات الحاوية، راجع تسعير Azure Container Apps.

قيود إنشاء تطبيقات وظائف جديدة في مجموعة موارد موجودة

في بعض الحالات، عند محاولة إنشاء خطة استضافة جديدة لتطبيق الوظائف في مجموعة موارد موجودة، قد تتلقى أحد الأخطاء التالية:

  • مستوى التسعير غير مسموح به في مجموعة الموارد هذه
  • لا يتوفر العاملون <SKU_name> في مجموعة الموارد <resource_group_name>

يمكن أن يحدث هذا عند استيفاء الشروط التالية:

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

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

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

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