دالات Azure on Azure Container Apps overview

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

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

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

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

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

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

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

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

Scenarios

دالات Azure على تطبيقات الحاويات مثالية لمجموعة واسعة من حالات الاستخدام، خاصة عندما تحتاج إلى تنفيذ مدفوع بالأحداث، أو مرونة الحاويات، أو تكامل آمن مع خدمات أخرى:

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

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

لنشر دالات Azure على Azure Container Apps، قم بتجميع تطبيق الوظيفة كصورة حاوية مخصصة ونشره مثل أي تطبيق حاوية آخر مع اختلاف رئيسي واحد. قم بتعيين الخاصية kind=functionapp عند استخدام قوالب Azure CLI أو Azure Resource Manager أو 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 هذا والصقه في متصفح ويب.

في بوابة Azure، اختر خيار Optimize for دالات Azure أثناء إنشاء تطبيق الحاويات لاستخدام تكوين دالات Azure.

لقطة شاشة لبوابة Azure عند إنشاء تطبيق حاوية مهيأ مسبقا ل دالات Azure.

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

  • واجهة سطر الأوامر Azure (Azure CLI)
  • مدخل Azure
  • قوالب ARM / Bicep
  • خطوط أنابيب CI/CD (على سبيل المثال، GitHub Actions و Azure Pipelines)

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

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

دالات Azure on Azure Container Apps follow هەمان Model Price Model مثل Azure Container Apps. تستند الفوترة إلى نوع الخطة التي تحددها لبيئتك، والتي يمكن أن تكون إما استهلاكية أو مخصصة.

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

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

تفاصيل الفوترة:

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

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

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

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

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

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

جميع المشغلات والروابط دالات Azure القياسية مدعومة في تطبيقات الحاويات مع exceptions التالية:

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

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

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

دالات Azure on Container Apps يتدرج تلقائيا بناء على الأحداث باستخدام KEDA بشكل افتراضي. لا يزال بإمكانك تعيين الحد الأدنى/الحد الأقصى للنسخ المتماثلة للتحكم في سلوك التحجيم. يمكنك أيضا استخدامها allowScalingRuleOverride لتوفير قواعد مقياس مخصصة.

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

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

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

دالات Azure on Container Apps يستخدم ميزات الشبكةوالأمان من Container Apps:

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

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

دالات Azure on Container Apps يتكامل مع أدوات Azure observability لتتبع الأداء وتشخيص المشكلات:

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

متغيرات البيئة

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

للحصول على قائمة كاملة بمتغيرات البيئة المقدمة من النظام، انظر متغيرات البيئة في Azure Container Apps.

الاعتبارات

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

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

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

قدم مشكلة أو طلب ميزة إلى Azure Container Apps GitHub repos.

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

لمواصلة التعلم والبناء باستخدام دالات Azure على تطبيقات الحاويات، استكشف الموارد التالية:

  • Getting started: دليل خطوة بخطوة لنشر وتكوين دالات Azure في Azure Container Apps.
  • Azure Container Apps documentation: مرجع كامل لميزات تطبيقات الحاويات بما في ذلك التكبير، الشبكات، DAPR، وملفات تعريف عبء العمل.
  • Azure Container Apps التسعير: تفاصيل حول الفوترة القائمة على الاستهلاك وتكاليف الخطط المخصصة.
  • خيارات استضافة دالات Azure: مقارنة خطط الاستضافة بما في ذلك تطبيقات الحاويات، الاستهلاك المرن، المميز، والمخصص.
  • دالات Azure دليل المطورين: تعمق في المحفزات، والقيود، وسلوك وقت التشغيل، والتكوين.