مشاركة عبر


نظرة عامة على Azure Functions على Azure Container Apps

توفر Azure Functions على Azure Container Apps بيئة استضافة بلا خادم مدارة بالكامل تجمع بين الإمكانات المستندة إلى الأحداث ل Azure Functions مع الميزات القوية لتطبيقات الحاوية. يتضمن هذا التكامل إمكانات متقدمة مثل التنسيق المستند إلى Kubernetes، والتحجيم التلقائي المدمج المدعوم من KEDA (التحجيم التلقائي المستند إلى الحدث المستند إلى Kubernetes)، وتكامل Dapr (وقت تشغيل التطبيق الموزع)، ودعم حمل عمل GPU، ودعم السيارة الجانبية، واتصال الشبكة الظاهرية (VNet)، وإدارة المراجعة.

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

كميزة متكاملة على Azure Container Apps، يمكنك نشر صور Azure Functions مباشرة على Azure Container Apps باستخدام Microsoft.App موفر الموارد عن طريق تعيين kind=functionapp عند استدعاء az containerapp create. التطبيقات التي تم إنشاؤها بهذه الطريقة لها حق الوصول إلى جميع ميزات Azure Container Apps. في حالة النشر عبر مدخل Microsoft Azure، يمكنك تمكين خيار تطبيق Optimize for Functions أثناء الإعداد. راجع قسم النشر والإعداد لمزيد من التفاصيل.

المزايا الرئيسية

يعتمد نموذج استضافة Container Apps على مرونة أحمال العمل المعبأة في حاويات وطبيعة Azure Functions المستندة إلى الحدث. وهو يوفر المزايا الرئيسية التالية:

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

Feature Container Apps خطة استهلاك Flex
تغيير الحجم إلى الصفر ✅ نعم (عبر KEDA) ✅ نعم
الحد الأقصى للتوسع 1000 (افتراضي 10، قابل للتكوين) 1,000
مثيلات التشغيل الدائم ✅ نعم (عبر minReplicas) ✅ نعم (عبر مثيلات جاهزة دائما)
تكامل الشبكة الظاهرية ✅ نعم ✅ نعم
دعم الحاوية المخصصة ✅ نعم (أحضر صورتك الخاصة) ❌ محدودة (لا تجلب الحاوية الخاصة بك)
دعم GPU ✅ نعم (عبر ملف تعريف حمل العمل المخصص لوحدة معالجة الرسومات بلا خادم) ❌ لا
الميزات المضمنة دعم ميزة تطبيقات الحاوية. على سبيل المثال، KEDA، Dapr، المراجعات المتعددة، mTLS، sidecars، التحكم في الدخول والمزيد ميزات الوظائف فقط
نموذج الفوترة تسعير تطبيقات الحاوية: خطة الاستهلاك (وحدة المعالجة المركزية الظاهرية والذاكرة والطلبات) وخطة مخصصة (مستندة إلى ملف تعريف حمل العمل) وقت التنفيذ + مثيلات جاهزة دائما

للحصول على مقارنة كاملة بين Functions on Container Apps مقابل خطة Flex Consumption وجميع أنواع الخطط والاستضافة الأخرى، راجع خيارات تغيير حجم الوظائف والاستضافة.

Scenarios

تعد Azure Functions on Container Apps مثالية لمجموعة واسعة من حالات الاستخدام، خاصة عندما تحتاج إلى تنفيذ يستند إلى الحدث أو مرونة الحاوية أو التكامل الآمن مع الخدمات الأخرى:

  • واجهات برمجة تطبيقات خط الأعمال: حزم المكتبات والحزم وواجهات برمجة التطبيقات المخصصة باستخدام Azure Functions لتطبيقات خط الأعمال.
  • الترحيل والتحديث: ترحيل التطبيقات القديمة و/أو المتجانسة المحلية إلى الخدمات المصغرة السحابية الأصلية على الحاويات.
  • المعالجة المستندة إلى الأحداث: تعامل مع الأحداث من Event Grid و Service Bus و Event Hubs ومصادر الأحداث الأخرى بسهولة نموذج برمجة Functions.
  • أحمال عمل الذكاء الاصطناعي ووحدة معالجة الرسومات: معالجة عبء العمل بدون خادم لمقاطع الفيديو أو الصور أو النصوص أو أي مهام معالجة مكثفة أخرى تتطلب موارد حوسبة GPU. لمزيد من المعلومات، راجع استخدام وحدات معالجة الرسومات بلا خادم في Azure Container Apps.
  • الخدمات المصغرة: دمج Azure Functions مع الخدمات المستضافة الأخرى لتطبيقات الحاويات.
  • حاويات مخصصة: وظائف الحزمة مع أوقات تشغيل مخصصة أو سيارات جانبية.
  • التطبيقات الخاصة: تأمين الوظائف الداخلية فقط باستخدام الشبكة الظاهرية والدخول الداخلي.
  • .NET أسباير: يتيح لك تكامل .NET Aspire مع Azure Functions تطوير مشروع Azure Functions .NET وتصحيحه وتنسيقه كجزء من مضيف تطبيق .NET Aspire. اقرأ المزيد عن Azure Functions باستخدام .NET Aspire
  • الوظائف العامة: قم بتشغيل أي سيناريوهات Azure Functions القياسية المدعومة (على سبيل المثال، المؤقتات ومعالجة الملفات ومشغلات قاعدة البيانات).

النشر والإعداد

لنشر Azure Functions على Azure Container Apps، يمكنك حزم تطبيق Functions كصورة حاوية مخصصة ونشره مثل أي تطبيق حاوية آخر باختلاف رئيسي واحد. تحتاج إلى تعيين الخاصية kind=functionapp عند استخدام قوالب Azure CLI أو ARM/Bicep. للحصول على خطوات وأمثلة مفصلة ، راجع وثائق البدء الرسمية.

az containerapp create \
  --resource-group $RESOURCE_GROUP_NAME \
  --name $CONTAINER_APP_NAME \
  --environment $ENVIRONMENT_NAME \
  --image mcr.microsoft.com/k8se/quickstart-functions:latest \
  --ingress external \
  --target-port 80 \
  --kind functionapp \
  --query properties.outputs.fqdn

يرجع هذا الأمر عنوان URL لتطبيق Functions. انسخ عنوان URL هذا والصقه في متصفح ويب.

في مدخل Microsoft Azure، حدد الخيار تحسين لوظائف Azure أثناء إنشاء تطبيق الحاوية لتبسيط الإعداد.

لقطة شاشة لمدخل Microsoft Azure عند إنشاء تطبيق حاوية تم تكوينه مسبقا لوظائف Azure.

يتم دعم جميع طرق النشر القياسية، بما في ذلك:

للحصول على خطوات وأمثلة مفصلة ، راجع وثائق البدء الرسمية.

التسعير والفوترة

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

  • خطة الاستهلاك: يفرض عليك خيار الحوسبة بدون خادم هذا فقط الموارد التي تستخدمها تطبيقاتك أثناء تشغيلها.
  • خطة مخصصة: يوفر هذا الخيار موارد حوسبة مخصصة، وتفوترك بالمثيلات المخصصة لكل ملف تعريف حمل عمل.

يحدد اختيارك للخطة كيفية إجراء حسابات الفوترة. يمكن للتطبيقات المختلفة داخل بيئة استخدام خطط مختلفة.

النقاط الرئيسية التي يجب ملاحظتها:

  • لا توجد رسوم إضافية لاستخدام نموذج برمجة Azure Functions داخل تطبيقات الحاوية.
  • يتم دعم Durable Functions والأنماط المتقدمة الأخرى والفوترة بموجب نفس نموذج تسعير Container Apps. للحصول على آليات وأمثلة مفصلة للفوترة، راجع الفوترة في وثائق Azure Container Apps .

التحجيم المستند إلى الأحداث

تدعم Azure Functions on Container Apps جميع أوقات تشغيل اللغة الرئيسية المتوفرة في Azure Functions، بما في ذلك: C# وJavaScript / TypeScript (Node.js) وPython وJava وPowerShell والحاويات المخصصة (إحضار صورتك الخاصة).

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

تقوم المنصة تلقائيا بترجمة معلمات مشغل الوظائف (من host.json خصائص التكوين أو المشغل) إلى معلمات مقياس KEDA مناسبة. للحصول على مرجع مفصل حول كيفية تعيين تكوينات تفعيل الوظائف مع معلمات تكبير KEDA، راجع خرائط تكبير KEDA في Azure Functions.

يتم دعم جميع مشغلات Azure Functions وارتباطاتها القياسية في Container Apps مع الاستثناءات التالية:

يتم دعم الهويات المدارة للمشغلات والروابط التي تسمح بذلك. وهي متاحة أيضا من أجل:

بالنسبة للمشغلات غير المدعومة، استخدم عدد النسخ المتماثلة الثابتة (أي تعيين minReplicas > 0) في Azure Functions على Azure Container Apps. لمزيد من التفاصيل، يرجى الرجوع إلى دليل مطور الوظائف.

التحجيم والأداء

يتم قياس Azure Functions على Container Apps تلقائيا استنادا إلى الأحداث باستخدام KEDA، دون الحاجة إلى تكوين قواعد المقياس يدويا. لا يزال بإمكانك تعيين الحد الأدنى/الحد الأقصى للنسخ المتماثلة للتحكم في سلوك التحجيم.

  • التحجيم المستند إلى الحدث: يتم القياس تلقائيا استنادا إلى مشغلات مثل Event Grid أو Service Bus أو HTTP.
  • تغيير الحجم إلى الصفر: قم بتحجيم التطبيقات الخاملة إلى الصفر لتوفير التكاليف.
  • التحكم في البدء البارد: تعرف على تقليل وقت البدء البارد على Azure Container Apps.
  • التزامن: يمكن لكل مثيل معالجة أحداث متعددة بالتوازي.
  • مقياس عالي: التوسع إلى 1,000 مثيل لكل تطبيق (الإعداد الافتراضي هو 10).
  • دعم وحدة معالجة الرسومات: قم بتشغيل أحمال العمل الثقيلة مثل استدلال الذكاء الاصطناعي باستخدام العقد المدعومة بوحدة معالجة الرسومات.

وهذا يجعل تطبيقات الحاوية مثالية لكل من أحمال العمل الاندفاعية والمستقرة. لمعرفة المزيد، راجع تعيين قواعد التحجيم في Azure Container Apps

الشبكات والأمان

تستفيد Azure Functions on Container Apps من ميزات الشبكاتوالأمان القوية في Container Apps لعمليات التوزيع الآمنة والقابلة للتطوير:

  • تكامل الشبكة الظاهرية: الوصول إلى الموارد الخاصة بأمان عبر نقاط النهاية الداخلية وقواعد البيانات الخاصة.
  • الهوية المدارة: المصادقة مع خدمات Azure باستخدام الهويات المعينة من قبل النظام/المستخدم - لا حاجة إلى أسرار أو سلاسل اتصال.
  • دعم Dapr: تمكين pub / sub وإدارة الحالة واستدعاء الخدمة الآمنة عبر Dapr sidecars. لمزيد من المعلومات، راجع واجهات برمجة تطبيقات الخدمات المصغرة التي يتم تشغيلها بواسطة Dapr.
  • الدخول وTLS: كشف نقاط نهاية HTTP الآمنة باستخدام TLS/mTLS أو المجالات المخصصة أو الاحتفاظ بها داخلية.
  • عزل البيئة: تشترك الوظائف في حدود بيئة تطبيقات الحاوية للاتصال الآمن والنطاق.

تجعل هذه الإمكانات الوظائف المستضافة على تطبيقات الحاوية مثالية للتطبيقات بلا خادم آمنة على مستوى المؤسسة.

المراقبة والتسجيل

تتكامل Azure Functions on Container Apps بسلاسة مع أدوات المراقبة في Azure لتعقب الأداء وتشخيص المشكلات:

  • رؤى التطبيق: يوفر بيانات تتبع الاستخدام للطلبات والتبعيات والاستثناءات والتتبعات المخصصة. للمزيد من المعلومات، راجع مراقبة دوال Azure.
  • تحليلات السجل: يلتقط دورة حياة الحاوية وأحداث التحجيم (على سبيل المثال، إدخالات FunctionsScalerInfo). لمزيد من المعلومات، راجع تسجيل التطبيق في Azure Container Apps.
  • التسجيل المخصص: يدعم الأطر القياسية مثل ILogger وتسجيل وحدة التحكم للمخرجات المنظمة.
  • المراقبة المركزية: توفر بيئة Container Apps لوحات معلومات وتنبيهات موحدة عبر جميع التطبيقات.

الاعتبارات

ضع هذه الاعتبارات الأخرى في الاعتبار عند استخدام Azure Functions على Azure Container Apps:

  • متطلبات الدخول للقياس التلقائي: لتمكين التحجيم التلقائي استنادا إلى الأحداث، يجب تمكين الدخول، إما بشكل عام أو داخل البيئة الداخلية لتطبيقات الحاوية.
  • حساب التخزين الإلزامي: يجب ربط كل تطبيق Functions تم نشره على Container Apps بحساب تخزين. هذا مطلوب لإدارة المشغلات والسجلات والحالة. راجع إرشادات حساب التخزين للحصول على أفضل الممارسات.
  • التخزين متعدد المراجعات: عند النشر باستخدام مراجعات نشطة متعددة، قم بتعيين حساب تخزين مخصص لكل مراجعة. يساعد استخدام حساب تخزين مخصص على منع التعارضات ويضمن العزل المناسب. بدلا من ذلك، إذا كنت لا تحتاج إلى مراجعات متزامنة، ففكر في استخدام وضع المراجعة الفردية الافتراضي للإدارة المبسطة.
  • مشغلات المراجعات المتعددة: إذا كنت تستخدم وضع المراجعة المتعددة مع مشغل قائم على السحب، فاستخدم مصدر حدث مختلفا لكل مراجعة لتجنب التعارضات المتعلقة بالمستهلكين المتنافسين. تعد الوظائف التي تستخدم Azure Queue Storage أو Azure Event Hub أو Azure Service Bus أو مشغلات Durable Functions أمثلة على المشغلات المستندة إلى السحب.
  • زمن انتقال البدء على البارد: عندما يتوسع تطبيق الحاوية الخاص بك إلى الصفر خلال فترات الخمول، يواجه الطلب الأول بعد عدم النشاط بداية باردة. تعرف على المزيد حول تقليل أوقات البدء على البارد.
  • تكامل Application Insights: للحصول على مراقبة وتشخيصات قوية، اربط تطبيق Functions ب Application Insights. لمزيد من المعلومات، راجع تكامل App Insights مع Functions.
  • وكلاء الوظائف: غير مدعوم. بالنسبة لسيناريوهات بوابة واجهة برمجة التطبيقات، التكامل مع إدارة واجهة برمجة تطبيقات Azure بدلا من ذلك.
  • فتحات التوزيع: لا تتوفر فتحات التدريج والإنتاج. استخدم استراتيجيات النشر باللون الأزرق والأخضر للإصدارات بدون تعطل.
  • مفاتيح الوصول إلى الوظائف: استخدام المدخل لإنشاء مفاتيح الوصول إلى الوظائف غير مدعوم. ضع في اعتبارك استخدام Azure Key Vault لتخزين المفاتيح. يمكنك أيضا استخدام الخيارات التالية لتأمين نقاط نهاية HTTP في الإنتاج:
  • حدود الحصة النسبية والموارد: تحتوي بيئات تطبيقات الحاوية على حدود افتراضية على عدد الذاكرة ووحدة المعالجة المركزية والمثيلات لكل منطقة. لمزيد من المعلومات، راجع حدود البيئةوالحصص النسبية الافتراضية. إذا كان حمل العمل الخاص بك يتطلب المزيد من الموارد، فيمكنك طلب زيادة الحصة النسبية.
  • تكوين قاعدة المقياس اليدوي: يتم تعطيل الزر "إضافة قواعد المقياس" على مدخل Microsoft Azure لوظائف Azure المستضافة على تطبيقات الحاوية لأن قواعد التحجيم يتم تكوينها تلقائيا استنادا إلى مصدر الحدث. تعريفات قواعد KEDA اليدوية غير مطلوبة في هذا الإعداد.

إرسال ملاحظات

إرسال مشكلة أو طلب ميزة إلى مستودع Azure Container Apps GitHub.

الخطوات التالية / موارد إضافية

لمواصلة التعلم والبناء باستخدام Azure Functions on Container Apps، استكشف الموارد التالية:

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