ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توفر Azure Functions دعما متكاملا لتطوير تطبيقات الوظائف المعبأة في حاويات ونشرها وإدارتها على Azure Container Apps. استخدم Azure Container Apps لاستضافة حاويات تطبيق الوظائف عندما تحتاج إلى تشغيل الوظائف المستندة إلى الحدث في Azure في نفس البيئة مثل الخدمات المصغرة الأخرى أو واجهات برمجة التطبيقات أو مواقع الويب أو مهام سير العمل أو أي برامج مستضافة على الحاوية. تتيح لك استضافة Container Apps تشغيل وظائفك في بيئة مدارة بالكامل وقائمة على Kubernetes مع دعم مضمن للمراقبة مفتوحة المصدر وmTLS وDpr وKubernetes المستندة إلى الأحداث (KEDA).
يمكنك كتابة التعليمات البرمجية للدالة الخاصة بك في أي مكدس لغة تدعمه الدالات. يمكنك استخدام نفس مشغلات الوظائف والروابط مع التحجيم المستند إلى الحدث. يمكنك أيضا استخدام أدوات عميل Functions الموجودة ومدخل Azure لإنشاء حاويات، ونشر حاويات تطبيق الوظائف إلى Container Apps، وتكوين النشر المستمر.
تكامل تطبيقات الحاوية يعني أيضا أن تكوينات الشبكة وإمكانية المراقبة، والتي يتم تعريفها على مستوى بيئة تطبيق الحاوية، تنطبق على تطبيق الوظائف الخاص بك كما تفعل على جميع الخدمات المصغرة التي تعمل في بيئة Container Apps. يمكنك أيضا الحصول على القدرات السحابية الأصلية الأخرى لتطبيقات الحاويات، بما في ذلك KEDA وDpr و Envoy. لا يزال بإمكانك استخدام Application Insights لمراقبة عمليات تنفيذ الوظائف، ويمكن لتطبيق الوظائف الوصول إلى نفس موارد الشبكات الظاهرية التي توفرها البيئة.
للحصول على نظرة عامة حول خيارات استضافة الحاويات ل Azure Functions، راجع دعم حاوية Linux في Azure Functions.
ملفات تعريف حمل العمل والاستضافة
هناك خطتان أساسيتان للاستضافة لتطبيقات الحاوية، وخطة استهلاك بلا خادم وخطة مخصصة، والتي تستخدم ملفات تعريف حمل العمل للتحكم بشكل أفضل في موارد النشر الخاصة بك. يحدد ملف تعريف حمل العمل مقدار موارد الحوسبة والذاكرة المتوفرة لتطبيقات الحاوية المنشورة في بيئة ما. يتم تكوين ملفات التعريف هذه لتناسب الاحتياجات المختلفة لتطبيقاتك.
ملف تعريف حمل العمل الاستهلاك هو ملف التعريف الافتراضي المضاف إلى كل نوع بيئة ملفات تعريف حمل العمل. يمكنك إضافة ملفات تعريف حمل العمل المخصصة إلى بيئتك أثناء إنشاء بيئة أو بعد إنشائها. لمعرفة المزيد حول ملفات تعريف حمل العمل، راجع ملفات تعريف حمل العمل في Azure Container Apps.
يتم دعم استضافة تطبيقات الحاوية لتطبيقات الوظائف المعبأة في حاويات في جميع المناطق التي تدعم تطبيقات الحاوية.
إذا لم يكن تطبيقك يحتوي على متطلبات أجهزة محددة، فيمكنك تشغيل بيئتك إما في خطة استهلاك أو في خطة مخصصة باستخدام ملف تعريف حمل عمل الاستهلاك الافتراضي. عند تشغيل الوظائف على Container Apps، يتم تحصيل رسوم منك فقط مقابل استخدام Container Apps. لمزيد من المعلومات، راجع صفحة تسعير Azure Container Apps.
تدعم Azure Functions على Azure Container Apps الاستضافة التي تدعم وحدة معالجة الرسومات في الخطة المخصصة مع ملفات تعريف حمل العمل.
لمعرفة كيفية إنشاء حاوية تطبيق دالة ونشرها إلى Container Apps في خطة الاستهلاك الافتراضية، راجع إنشاء أول وظائف حاوية على Azure Container Apps.
لمعرفة كيفية إنشاء بيئة Container Apps مع ملفات تعريف حمل العمل ونشر حاوية تطبيق دالة إلى حمل عمل معين، راجع ملفات تعريف حمل عمل تطبيقات الحاوية.
دالات في حاويات
لاستخدام استضافة تطبيقات الحاوية، يجب تشغيل التعليمات البرمجية الخاصة بك على تطبيق دالة في حاوية Linux التي تقوم بإنشائها وصيانتها. تحتفظ الوظائف بمجموعة من الصور الأساسية الخاصة باللغة التي يمكنك استخدامها لإنشاء تطبيقات الوظائف المعبأة في حاويات.
عند إنشاء مشروع تعليمة برمجية باستخدام Azure Functions Core Tools وتضمين --docker
الخيار، تقوم Core Tools بإنشاء Dockerfile بالصورة الأساسية الصحيحة، والتي يمكنك استخدامها كنقطة بداية عند إنشاء الحاوية الخاصة بك.
هام
عند إنشاء الحاويات الخاصة بك، يطلب منك الاحتفاظ بالصورة الأساسية للحاوية الخاصة بك محدثة إلى أحدث صورة أساسية مدعومة. الصور الأساسية المدعومة ل Azure Functions خاصة باللغة ويتم العثور عليها في مستودعات الصور الأساسية ل Azure Functions.
يلتزم فريق الوظائف بنشر التحديثات الشهرية لهذه الصور الأساسية. تتضمن التحديثات العادية آخر تحديثات الإصدار الثانوي وإصلاحات الأمان لكل من وقت تشغيل الوظائف واللغات. يجب تحديث الحاوية بانتظام من أحدث صورة أساسية وإعادة نشر الإصدار المحدث من الحاوية الخاصة بك. لمزيد من المعلومات، راجع الحفاظ على حاويات مخصصة.
عند إجراء تغييرات على التعليمات البرمجية للدالات، يجب إعادة إنشاء صورة الحاوية وإعادة نشرها. لمزيد من المعلومات، راجع تحديث صورة في السجل.
خيارات النشر
تدعم Azure Functions حاليا الطرق التالية لنشر تطبيق دالة حاوية إلى Azure Container Apps:
- Apache Maven
- قوالب ARM
- Azure CLI
- Azure Developer CLI (azd)
- أدوات Azure Functions الأساسية
- مهام Azure Pipeline
- مدخل Microsoft Azure
- ملفات Bicep
- GitHub Actions
- Visual Studio Code
يمكنك نشر تطبيقاتك الحاوية باستمرار من التعليمات البرمجية المصدر باستخدام Azure Pipelines أو GitHub Actions. ميزة النشر المستمر للوظائف غير مدعومة حاليا عند النشر إلى تطبيقات الحاوية.
تخويل الهوية المدارة
للحصول على أفضل أمان، يجب الاتصال بالخدمات البعيدة باستخدام مصادقة Microsoft Entra وتخويل الهوية المدارة. يمكنك استخدام الهويات المدارة لهذه الاتصالات:
عند التشغيل في Container Apps، يمكنك استخدام معرف Microsoft Entra مع الهويات المدارة لجميع ملحقات الربط التي تدعم الهويات المدارة. حاليا، تدعم ملحقات الربط هذه فقط التحجيم المستند إلى الحدث عند استخدام مصادقة الهوية المدارة:
- مراكز أحداث Azure
- Azure Queue Storage
- ناقل خدمة Azure
بالنسبة للروابط الأخرى، استخدم النسخ المتماثلة الثابتة عند استخدام مصادقة الهوية المدارة. لمزيد من المعلومات، راجع دليل مطور الوظائف.
تكامل الشبكة الظاهرية
عند استضافة تطبيقات الوظائف في بيئة Container Apps، تكون وظائفك قادرة على الاستفادة من كل من الشبكات الظاهرية التي يمكن الوصول إليها داخليا وخارجيا. لمعرفة المزيد حول شبكات البيئة، راجع الشبكات في بيئة Azure Container Apps.
التحجيم المستند إلى الحدث
يمكن استخدام جميع مشغلات الوظائف في تطبيق الوظائف المعبأة في حاويات. ومع ذلك، يمكن لهذه المشغلات فقط تغيير الحجم ديناميكيا (من صفر مثيلات) استنادا إلى الأحداث المستلمة عند التشغيل في بيئة Container Apps:
- شبكة أحداث Azure
- مراكز أحداث Azure
- Azure Blob Storage (قائمة على شبكة الأحداث)
- Azure Queue Storage
- ناقل خدمة Azure
- Durable Functions (موفر تخزين MSSQL)
- HTTP
- Kafka
- عدّاد الوقت
- Azure Cosmos DB
تم تصميم Azure Functions على تطبيقات الحاوية لتكوين معلمات وقواعد المقياس وفقا لهدف الحدث. لا داعي للقلق بشأن تكوين الكائنات التي تم تغيير حجمها في KEDA. لا يزال بإمكانك تعيين الحد الأدنى والحد الأقصى لعدد النسخ المتماثلة عند إنشاء تطبيق الوظائف أو تعديله. يعين أمر Azure CLI التالي الحد الأدنى والحد الأقصى لعدد النسخ المتماثلة عند إنشاء تطبيق دالة جديد في بيئة Container Apps من Azure Container Registry:
az functionapp create --name <APP_NAME> --resource-group <MY_RESOURCE_GROUP> --max-replicas 15 --min-replicas 1 --storage-account <STORAGE_NAME> --environment MyContainerappEnvironment --image <LOGIN_SERVER>/azurefunctionsimage:v1 --registry-username <USERNAME> --registry-password <SECURE_PASSWORD> --registry-server <LOGIN_SERVER>
يعين الأمر التالي نفس الحد الأدنى والحد الأقصى لعدد النسخ المتماثلة على تطبيق دالة موجود:
az functionapp config container set --name <APP_NAME> --resource-group <MY_RESOURCE_GROUP> --max-replicas 15 --min-replicas 1
مجموعات الموارد المدارة
تعمل Azure Functions على Container Apps على تشغيل موارد تطبيق الوظائف المعبأة في حاويات في مجموعات موارد مدارة خصيصا. تساعد مجموعات الموارد المدارة هذه في حماية تناسق تطبيقاتك من خلال منع التعديل أو الحذف غير المقصود أو غير المصرح به للموارد في المجموعة المدارة، حتى من قبل كيانات الخدمة.
يتم إنشاء مجموعة موارد مدارة لك في المرة الأولى التي تقوم فيها بإنشاء موارد تطبيق الوظائف في بيئة Container Apps. يتم تشغيل موارد Container Apps المطلوبة من قبل تطبيق الوظائف الحاوية في مجموعة الموارد المدارة هذه. تستخدم أي تطبيقات وظائف أخرى تقوم بإنشائها في نفس البيئة هذه المجموعة الموجودة.
تتم إزالة مجموعة الموارد المدارة تلقائيا بعد إزالة جميع موارد حاوية تطبيق الوظائف من البيئة. بينما تكون مجموعة الموارد المدارة مرئية، تؤدي أي محاولات لتعديل مجموعة الموارد المدارة أو إزالتها إلى حدوث خطأ. لإزالة مجموعة موارد مدارة من بيئة، قم بإزالة كافة موارد حاوية تطبيق الوظائف ويتم إزالتها نيابة عنك.
إذا واجهت أي مشكلات في مجموعات الموارد المدارة هذه، فيجب عليك الاتصال بالدعم.
تسجيل التطبيق
يمكنك مراقبة تطبيق الوظائف المستضاف في حاويات في Container Apps باستخدام Azure Monitor Application Insights بنفس الطريقة التي تقوم بها مع التطبيقات التي تستضيفها Azure Functions. للمزيد من المعلومات، راجع مراقبة دوال Azure.
بالنسبة للروابط التي تدعم التحجيم المستند إلى الحدث، يتم تسجيل أحداث المقياس ك FunctionsScalerInfo
وأحداث FunctionsScalerError
في مساحة عمل Log Analytics. لمزيد من المعلومات، راجع تسجيل التطبيق في Azure Container Apps.
اعتبارات استضافة تطبيقات الحاوية
ضع في اعتبارك الاعتبارات التالية عند نشر حاويات تطبيق الوظائف إلى Container Apps:
- تنطبق هذه القيود على مشغلات Kafka:
- لا يتم دعم قيمة البروتوكول عند
ssl
استضافتها على Container Apps. استخدم قيمة بروتوكول مختلفة. - لكي يتم تغيير حجم مشغل Kafka ديناميكيا عند الاتصال بمراكز الأحداث،
username
يجب حل الخاصية إلى إعداد تطبيق يحتوي على قيمة اسم المستخدم الفعلية. عند استخدام القيمة الافتراضية$ConnectionString
، لا يتمكن مشغل Kafka من التسبب في تغيير حجم التطبيق ديناميكيا.
- لا يتم دعم قيمة البروتوكول عند
- بالنسبة لتعريفات نهج تطبيقات الحاوية المضمنة، تنطبق حاليا النهج على مستوى البيئة فقط على حاويات Azure Functions.
- يمكنك استخدام الهويات المدارة لهذه الاتصالات:
- بشكل افتراضي، يراقب تطبيق الوظائف الحاوية المنفذ 80 للطلبات الواردة. إذا كان يجب أن يستخدم تطبيقك منفذا مختلفا، فاستخدم
WEBSITES_PORT
إعداد التطبيق لتغيير هذا المنفذ الافتراضي. - لا يمكنك حاليا استخدام ميزات النشر المستمر المضمنة عند الاستضافة على Container Apps. يجب عليك بدلا من ذلك النشر من التعليمات البرمجية المصدر باستخدام إما Azure Pipelines أو GitHub Actions.
- لا يمكنك حاليا نقل نشر تطبيق الوظائف المستضاف في Container Apps بين مجموعات الموارد أو بين الاشتراكات. بدلا من ذلك، سيتعين عليك إعادة إنشاء نشر التطبيق الموجود في حاويات في مجموعة موارد جديدة أو اشتراك أو منطقة جديدة.
- عند استخدام Container Apps، ليس لديك حق الوصول المباشر إلى واجهات برمجة تطبيقات Kubernetes ذات المستوى الأدنى.
-
containerapp
يتعارض الملحق مع الملحقappservice-kube
في Azure CLI. إذا كنت قد نشرت التطبيقات مسبقا إلى Azure Arc، فقم بتشغيلaz extension list
وتأكد من عدم تثبيتهاappservice-kube
. إذا كان كذلك، يمكنك إزالته عن طريق تشغيلaz extension remove -n appservice-kube
.