خيارات استضافة وظائف Azure
عند إنشاء تطبيق وظائف في Azure، يجب عليك اختيار خطة استضافة لتطبيقك. هناك ثلاث خطط استضافة أساسية ل Azure Functions توفرها Azure Functions: خطة الاستهلاك وخطة Premium وخطة مخصصة (App Service). تسهل البنية الأساسية لخدمة تطبيقات Azure خطط الاستضافة هذه وهي متاحة بشكل عام (GA) على كل من الأجهزة الظاهرية التي تعمل بنظامي Linux وWindows.
تحدد خطة استضافة Azure Functions التي تختارها السلوكيات التالية:
- كيفية قياس تطبيق الوظيفة.
- الموارد المتوفرة لكل مثيل تطبيق وظيفي.
- دعم الوظائف المتقدمة، مثل اتصال الشبكة الظاهرية من Azure.
بالإضافة إلى استضافة Azure Functions، يمكنك أيضا استضافة تطبيقات الوظائف الحاوية في حاويات يمكن نشرها في مجموعات Kubernetes أو إلى Azure Container Apps. إذا اخترت استضافة الوظائف الخاصة بك في مقطع تخزين Kubernetes، ففكر في استخدام مقطع تخزين Kubernetes وتمكين Azure Arc لمعرفة المزيد حول نشر تطبيقات الحاوية المخصصة، راجع استضافة Azure Container Apps ل Azure Functions.
توفر هذه المقالة مقارنة مفصلة بين خطط الاستضافة المختلفة، بما في ذلك خيارات الاستضافة المستندة إلى الحاوية.
إشعار
استضافة حاويات Azure Functions على كل من مجموعات Kubernetes الممكنة في Azure Arc وتطبيقات حاويات Azure قيد المعاينة حاليا.
نظرة عامة على الخطط
فيما يلي ملخص لفوائد خطط استضافة وظائف Azure الرئيسية الثلاثة:
الخطة | المزايا |
---|---|
خطة الاستهلاك | قم بتغيير الحجم تلقائيا والدفع فقط مقابل موارد الحوسبة عند تشغيل الوظائف. على خطة الاستهلاك، يتم إضافة مثيلات مضيف الوظائف بشكل حيوي وإزالتها استنادًا إلى عدد الأحداث الواردة. ✔ الافتراضي استضافة الخطة. ✔ الدفع فقط عند تشغيل الوظائف. ✔ المقاييس تلقائيًا، حتى خلال فترات التحميل العالي. |
خطة متميزة | تعمل المقاييس تلقائيًا على أساس الطلب باستخدام عمال مستعدين لتشغيل التطبيقات دون تأخير بعد أن كانت معطلة، على مثيلات أكثر قوة، وتتصل بالشبكات الظاهرية. ضع في اعتبارك خطة Azure Functions Premium في الحالات التالية: ✔ تعمل تطبيقات الوظائف بشكل مستمر أو بشكل مستمر تقريبا. ✔ لديك عدد كبير من عمليات التنفيذ الصغيرة وفاتورة تنفيذ عالية، ولكن منخفضة GB ثانية في خطة الاستهلاك. ✔ تحتاج إلى خيارات معالج أو ذاكرة أكثر مما توفره خطة الاستهلاك. ✔ التعليمات البرمجية الخاصة بك تحتاج إلى تشغيل أطول من الحد الأقصى لوقت التنفيذ المسموح به في خطة الاستهلاك. ✔ تحتاج إلى ميزات غير متوفرة في خطة الاستهلاك، مثل اتصال الشبكة الظاهرية. ✔ تريد توفير صورة Linux مخصصة لتشغيل وظائفك. |
خطة مخصصة | تشغيل وظائفك ضمن خطة خدمة التطبيقات بأسعار خطة خدمة التطبيقات العادية الأولوية للسيناريوهات طويلة الأمد حيث لا يمكن استخدام "الوظائف الدائمة". خذ بعين الاعتبار خطة خدمة التطبيقات في الحالات التالية: ✔ لديك VMs موجودة، غير مستغلة بشكل أقل التي تقوم بالفعل بتشغيل مثيلات خدمة التطبيقات الأخرى. ✔ التحجيم التنبؤي والتكاليف مطلوبة. |
تتضمن جداول المقارنة في هذه المقالة أيضا خيارات الاستضافة التالية ، والتي توفر أكبر قدر من التحكم والعزلة لتشغيل تطبيقات الوظائف الخاصة بك.
خيار الاستضافة | التفاصيل |
---|---|
ASE | بيئة خدمة التطبيقات (ASE) هي ميزة خدمة التطبيقات التي توفر بيئة معزولة ومُخصصة تماماً لتشغيل تطبيقات خدمة التطبيقات بشكل آمن وعلى نطاقٍ عالٍ. ASEs مناسبة لأحمال عمل التطبيق التي تتطلب: ✔ نطاق عال جدا. ✔ عزل حساب كامل والوصول الآمن إلى الشبكة. ✔ استخدام ذاكرة عالية. |
Azure Container Apps | Azure Container Apps هي بيئة مدارة بالكامل تمكنك من تشغيل الخدمات المصغرة والتطبيقات المعبأة في حاويات على نظام أساسي بلا خادم. تتيح لك Azure Container Apps تشغيل وظائفك باستخدام قوة خدمة Azure Kubernetes (AKS) الأساسية مع إزالة تعقيد الاضطرار إلى العمل مع واجهات برمجة تطبيقات Kubernetes. |
Kubernetes مباشر Azure Arc ) |
يوفر Kubernetes بيئة معزولة ومُخصصة بالكامل تعمل على قمة النظام الأساسي Kubernetes. Kubernetes مناسب لأحمال عمل التطبيق التي تتطلب: ✔ متطلبات الأجهزة المخصصة. ✔ العزل والوصول الآمن للشبكة. ✔ القدرة على التشغيل في بيئة مختلطة أو متعددة السحابة. ✔ تشغيل جنبا إلى جنب مع التطبيقات Kubernetes والخدمات القائمة. |
الجداول المتبقية في هذه المقالة تقارن الخطط على ميزات وسلوكيات مختلفة. لمقارنة التكلفة بين خطط الاستضافة الديناميكية (الاستهلاك والمميز)، راجع صفحة التسعير لوظائف Azure . لتسعير خيارات الخطة المخصصة المختلفة، راجع صفحة تسعير خدمة التطبيقات
نظام التشغيل / وقت التشغيل
يوضح الجدول التالي نظام التشغيل ودعم اللغة لخطط الاستضافة.
Linux1,2 كود فقط |
تعليمة برمجية Windows فقط | Linux1,2,3 حاوية Docker |
|
---|---|---|---|
خطة الاستهلاك | C# JavaScript Java Python PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
غير مدعوم |
خطة متميزة | C# JavaScript Java Python PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core Python TypeScript |
خطة مخصصة | C# JavaScript Java Python TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core Python TypeScript |
ASE | C# JavaScript Java Python TypeScript |
C# JavaScript Java PowerShell Core TypeScript |
C# JavaScript Java PowerShell Core Python TypeScript |
(مباشر) Kubernetes | غير متوفر | غير متوفر | C# JavaScript Java PowerShell Core Python TypeScript |
(معاينة)Azure Arc | C# JavaScript Java Python TypeScript |
غير متوفر | C# JavaScript Java PowerShell Core Python TypeScript |
1 Linux هو نظام التشغيل الوحيد المعتمد لمكدس وقت تشغيل Python.
2 دعم PowerShell على Linux في الإصدار الأولي حالياً.
3 Linux هو نظام التشغيل الوحيد المعتمد لحاويات Docker
مدة مهلة تطبيق الوظائف
يتم تعريف مدة المهلة للوظائف في تطبيق الوظائف بواسطة الخاصية functionTimeout
في ملف مشروع host.json . تنطبق هذه الخاصية بشكل خاص على عمليات تنفيذ الوظائف. بعد أن يبدأ المشغل في تنفيذ الدالة، تحتاج الدالة إلى الإرجاع/الاستجابة خلال مدة المهلة. لمزيد من المعلومات، راجع تحسين أداء وموثوقية Azure Functions.
يعرض الجدول التالي القيم الافتراضية والحد الأقصى (بالدقائق) لخطط معينة:
الخطة | الإعداد الافتراضي | الحد الأقصى1 |
---|---|---|
خطة الاستهلاك | 5 | 10 |
خطة متميزة | 302 | غير محدود3 |
خطة مخصصة | 302 | غير محدود3 |
1 بغض النظر عن إعداد مهلة تطبيق الوظائف، فإن 230 ثانية هي الحد الأقصى للوقت الذي يمكن أن تستغرقه وظيفة HTTP المشغلة للاستجابة لطلب. هذا بسبب مهلة الخمول الافتراضية ل Azure Load Balancer. لأوقات المعالجة الأطول، ضع في اعتبارك استخدام نمط Durable Functions غير المتزامن أو تأجيل العمل الفعلي وإرجاع استجابة فورية.
2 المهلة الافتراضية للإصدار 1.x من وقت تشغيل الوظائف غير محدودة.
3 مضمونة لمدة تصل إلى 60 دقيقة. لا يزال بإمكان تصحيح نظام التشغيل ووقت التشغيل، وتصحيح الثغرات الأمنية، وتوسيع نطاق السلوكيات إلغاء عمليات تنفيذ الوظائف، لذا تأكد من كتابة وظائف قوية.
المقياس
يقارن الجدول التالي سلوكيات التحجيم لخطط الاستضافة المختلفة.
يتم تقديم الحد الأقصى من المثيلات على أساس تطبيق لكل وظيفة (استهلاك) أو لكل خطة (بريميوم/مخصص)، ما لم يُذكر خلاف ذلك.
الخطة | التوسيع | Max # مثيلات |
---|---|---|
خطة الاستهلاك | يستند إلى حدث قم بالتوسع تلقائيًا، حتى خلال فترات الحمل العالي. Azure وظائف البنية التحتية جداول وحدة المعالجة المركزية وموارد الذاكرة عن طريق إضافة مثيلات إضافية من المضيف وظائف، استنادا إلى عدد من الأحداث المشغل واردة. | Windows: 200 Linux: 1001 |
خطة متميزة | يستند إلى حدث قم بالتوسع تلقائيًا، حتى خلال فترات الحمل العالي. وظائف البنية التحتية في وحدة المعالجة المركزية وموارد الذاكرة في Azure عن طريق إضافة مثيلات إضافية من وظائف المضيف، استنادا إلى عدد من الأحداث التي يتم تشغيل وظائفها على. | Windows: 100 Linux: 20-1002 |
خطة مخصصة3 | مقياس يدوي/تلقائي | 10-30 |
ASE3 | مقياس يدوي/تلقائي | 100 |
Kubernetes | مقطع تخزين تلقائي يستند إلى الحدث لمجموعات Kubernetes باستخدام KEDA. | يختلف حسب نظام المجموعة |
1 أثناء التوسع، يوجد حالياً حد 500 مثيل لكل اشتراك في الساعة لتطبيقات Linux في خطة الاستهلاك.
2 في بعض المناطق، يمكن توسيع نطاق تطبيقات Linux على خطة Premium إلى 100 مثيل. لمزيد من المعلومات، راجع مقالة الخطة المميزة .
3 للحصول على حدود معينة لخيارات خطة خدمة التطبيق المتنوعة، راجع حدود خطة خدمة التطبيق .
سلوك البدء البارد
الخطة | التفاصيل |
---|---|
خطة الاستهلاك | قد يتم قياس التطبيقات إلى الصفر عند الخمول، مما يعني أن بعض الطلبات قد يكون لها زمن وصول إضافي عند بدء التشغيل. تحتوي خطة الاستهلاك على بعض التحسينات للمساعدة في تقليل وقت البدء البارد، بما في ذلك السحب من وظائف العنصر النائب التي تم تسخينها مسبقًا والتي لديها بالفعل مضيف الوظيفة وعمليات اللغة قيد التشغيل. |
خطة متميزة | حالات دافئة على الدوام لتجنب أي بداية باردة. |
خطة مخصصة | عند التشغيل في خطة مخصصة، يمكن تشغيل وظائف المضيف بشكل مستمر، مما يعني أن البداية الباردة ليست حقا مشكلة. |
ASE | عند التشغيل في خطة مخصصة، يمكن تشغيل وظائف المضيف بشكل مستمر، مما يعني أن البداية الباردة ليست حقا مشكلة. |
Kubernetes | اعتمادًا على تكوين KEDA، يمكن تكوين التطبيقات لتجنب بداية باردة. إذا تم تكوينه إلى مقياس إلى صفر، ثم يتم تجربة بداية باردة للأحداث الجديدة. |
حدود الخدمة
Resource | خطة الاستهلاك | خطة متميزة | خطة مخصصة | ASE | Kubernetes |
---|---|---|---|---|---|
مدة المهلة الافتراضية (دقيقة) | 5 | 30 | 301 | 30 | 30 |
الحد الأقصى لمدة المهلة (دقيقة) | 10 | غير مقيد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 | تسعير AKS |
الحد الأقصى للذاكرة (جيجابايت لكل مثيل) | 1.5 | 3.5-14 | 1.75-14 | 3.5 - 14 | يتم دعم أي عقدة |
أقصى عدد للمثيل (Windows/Linux) | 200/100 | 100/20 | يختلف حسب وحدة SKU9 | 1009 | يعتمد على المجموعة |
تطبيقات الوظائف لكل خطة11 | 100 | 100 | غير مقيد4 | غير مقيد | غير مقيد |
خطط App Service | 100 لكل منطقة | 100 لكل مجموعة موارد | 100 لكل مجموعة موارد | - | - |
فتحات التوزيع لكل تطبيق10 | 2 | 3 | 1-209 | 20 | غير متوفر |
التخزين5 | 5 غيغابايت | 250 غيغابايت | 50-1000 جيجابايت | 1 تيرابايت | غير متوفر |
المجالات المخصصة لكل تطبيق | 5006 | 500 | 500 | 500 | غير متوفر |
مجال مخصص دعم SSL | تم تضمين اتصال SNI SSL غير المحدود | تم تضمين اتصال SNI SSL غير المحدود واتصال IP SSL واحد | تم تضمين اتصال SNI SSL غير المحدود واتصال IP SSL واحد | تم تضمين اتصال SNI SSL غير المحدود واتصال IP SSL واحد | غير متوفر |
1 بشكلٍ افتراضي، تكون مهلة وقت تشغيل الوظائف 1.x في خطة خدمة التطبيق غير محدودة.
2 يتطلب تعيين خطة خدمة التطبيق على التشغيل دائمًا. الدفع بالأسعار القياسية.
3 تم تعيين هذه الحدود في المضيف.
4 يعتمد العدد الفعلي لتطبيقات الوظائف التي يمكنك استضافتها على نشاط التطبيقات وحجم مثيلات الجهاز واستخدام الموارد المقابل.
5 حد التخزين هو الحجم الإجمالي للمحتوى في التخزين المؤقت عبر جميع التطبيقات في خطة خدمة التطبيقات نفسها. تستخدم خطة الاستهلاك ملفات Azure للتخزين المؤقت.
6 عندما تتم استضافة تطبيق وظيفتك في خطة استهلاك، يتم دعم خيار CNAME فقط. بالنسبة للتطبيقات الوظيفية في الخطة المتميزة أو خطة خدمة التطبيقات، يمكنك تعيين مجال مخصص باستخدام إما سجل CNAME أو سجل A.
7 مضمون لمدة تصل إلى 60 دقيقة.
8 العمال هم الأدوار التي تستضيف تطبيقات العملاء. يتوفر العمال بثلاثة أحجام ثابتة: واحد vCPU/3.5 جيجابايت من ذاكرة الوصول العشوائي؛ اثنان vCPU/7 جيجابايت من ذاكرة الوصول العشوائي؛ أربعة وحدات معالجة مركزية (vCPU)/14 جيجابايت من ذاكرة الوصول العشوائي.
9 راجع حدود خدمة التطبيق لمعرفة التفاصيل.
10 بما في ذلك فتحة الإنتاج.
11 يوجد حاليا حد 5000 تطبيق وظيفة في اشتراك معين.
قيود إنشاء تطبيقات وظائف جديدة في مجموعة موارد موجودة
في بعض الحالات، عند محاولة إنشاء خطة استضافة جديدة لتطبيق الوظائف في مجموعة موارد موجودة، قد تتلقى أحد الأخطاء التالية:
- مستوى التسعير غير مسموح به في مجموعة الموارد هذه
- لا يتوفر العاملون <SKU_name> في مجموعة الموارد <resource_group_name>
يمكن أن يحدث هذا عند استيفاء الشروط التالية:
- يمكنك إنشاء تطبيق دالة في مجموعة موارد موجودة تحتوي على تطبيق وظائف آخر أو تطبيق ويب آخر. على سبيل المثال، تطبيقات استهلاك Linux غير مدعومة في نفس مجموعة الموارد مثل خطط Linux Dedicated أو Linux Premium.
- يتم إنشاء تطبيق الوظائف الجديد في نفس المنطقة مثل التطبيق السابق.
- التطبيق السابق غير متوافق بطريقة ما مع تطبيقك الجديد. يمكن أن يحدث هذا بين وحدات SKU أو أنظمة التشغيل أو بسبب ميزات أخرى على مستوى النظام الأساسي، مثل دعم منطقة التوفر.
ويرجع سبب حدوث ذلك إلى كيفية تعيين خطط تطبيق الوظائف وتطبيق الويب إلى مجموعات مختلفة من الموارد عند إنشائها. تتطلب وحدات SKU المختلفة مجموعة مختلفة من قدرات البنية الأساسية. عند إنشاء تطبيق في مجموعة موارد، يتم تعيين مجموعة الموارد هذه وتعيينها إلى مجموعة موارد معينة. إذا حاولت إنشاء خطة أخرى في مجموعة الموارد هذه ولم يكن لدى التجمع المعين الموارد المطلوبة، فسيحدث هذا الخطأ.
عند حدوث هذا الخطأ، قم بدلًا من ذلك بإنشاء تطبيق الوظائف وخطة الاستضافة في مجموعة موارد جديدة.
ميزات الشبكات
ميزة | خطة الاستهلاك | خطة متميزة | خطة مخصصة | ASE |
---|---|---|---|---|
قيود IP الواردة | ✅نعم | ✅نعم | ✅نعم | ✅نعم |
نقاط النهاية الخاصة الواردة | ❌لا | ✅نعم | ✅نعم | ✅نعم |
تكامل الشبكة الظاهرية | ❌لا | ✅نعم (إقليمي) | ✅نعم (إقليمي وبوابة) | ✅نعم |
مشغلات الشبكة الظاهرية (غير HTTP) | ❌لا | ✅نعم | ✅نعم | ✅نعم |
اتصالات مختلطة (نظام Windows فحسب) | ❌لا | ✅نعم | ✅نعم | ✅نعم |
قيود IP الصادرة | ❌لا | ✅نعم | ✅نعم | ✅نعم |
الفوترة
الخطة | التفاصيل |
---|---|
خطة الاستهلاك | ادفع فقط للوقت الذي تعمل فيه وظائفك. تستند الفواتير إلى عدد عمليات التنفيذ ووقت التنفيذ والذاكرة المستخدمة. |
خطة متميزة | تعتمد الخطة المتميزة على عدد الثواني الأساسية والذاكرة المستخدمة عبر المثيلات المطلوبة والمرتفعة الحرارة مسبقًا. يجب دائماً الاحتفاظ بمثيل واحد على الأقل لكل خطة دافئاً. توفر هذه الخطة التسعير الأكثر قابلية للتنبؤ. |
خطة مخصصة | تدفع نفس المبلغ مقابل تطبيقات الوظائف في خطة خدمة التطبيقات كما تدفع مقابل موارد خدمة التطبيقات الأخرى، مثل تطبيقات الويب. |
بيئة خدمة التطبيقات (ASE) | هناك سعر شهري ثابت لـASE يدفع للبنية التحتية ولا يتغير مع حجم ASE. هناك أيضًا تكلفة لكل خطة خدمة تطبيقات vCPU. جميع التطبيقات المستضافة في ASE موجودة في SKU التسعير المعزول. |
Kubernetes | أنت تدفع فقط تكاليف مجموعة Kubernetes الخاصة بك؛ ولا فواتير إضافية للدالات. يعمل تطبيق الوظيفة الخاص بك كتطبيق حمل العمل أعلى مقطع التخزين الخاصة بك ، تمامًا مثل التطبيق العادي. |
الخطوات التالية
- تقنيات التوزيع في Azure Functions
- دليل مطور خدمة وظائف Azure