إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة الدعم الذي توفره Azure Functions لتطبيقات الوظائف المعبأة في حاويات والتي تعمل في بيئة Azure Container Apps. لمزيد من المعلومات، راجع استضافة Azure Container Apps ل Azure Functions.
Important
تتوفر الآن طريقة استضافة جديدة لتشغيل Azure Functions مباشرة في Azure Container Apps. راجع دعم Azure Functions الأصلي في Azure Container Apps. يتيح لك هذا التكامل استخدام الميزات والإمكانيات الكاملة لتطبيقات حاوية Azure. يمكنك أيضا الاستفادة من نموذج برمجة الوظائف وبساطة التحجيم التلقائي الذي توفره Azure Functions.
نوصي بهذا النهج لمعظم أحمال العمل الجديدة. لمزيد من المعلومات، راجع Azure Functions على Azure Container Apps.
توضح هذه المقالة الدعم الذي توفره Azure Functions لتطبيقات الوظائف التي تعمل في حاويات Linux.
اختر بيئة الاستضافة لتطبيق الوظائف المعبأ في حاويات أعلى هذه المقالة.
إذا كنت تريد الانتقال مباشرة، توضح لك المقالة التالية كيفية إنشاء وظيفتك الأولى في حاوية Linux ونشر الصورة من سجل حاوية إلى خدمة استضافة Azure مدعومة:
إنشاء أول Azure Functions في حاويات على Azure Container Apps
لمعرفة المزيد حول عمليات النشر إلى Azure Container Apps، راجع استضافة Azure Container Apps لوظائف Azure.
Important
توضح هذه المقالة حاليا كيفية الاتصال بحساب التخزين الافتراضي باستخدام سلسلة الاتصال. للحصول على أفضل أمان، بدلا من ذلك، قم بإنشاء اتصال مدار يستند إلى الهوية ب Azure Storage باستخدام مصادقة Microsoft Entra. For more information, see Connections.
إنشاء تطبيقات وظائف في حاويات
تسهل الوظائف نشر تطبيقات الوظائف وتشغيلها كحاويات Linux، والتي تقوم بإنشائها وصيانتها. تحتفظ الوظائف بمجموعة من الصور الأساسية الخاصة باللغة التي يمكنك استخدامها عند إنشاء تطبيقات الوظائف المعبأة في حاويات.
Important
عند إنشاء الحاويات الخاصة بك، يطلب منك تحديث الصورة الأساسية للحاوية إلى أحدث صورة أساسية مدعومة. الصور الأساسية المدعومة لوظائف Azure خاصة باللغة. راجع مستودعات الصور الأساسية ل Azure Functions.
يلتزم فريق الوظائف بنشر التحديثات الشهرية لهذه الصور الأساسية. تتضمن التحديثات العادية آخر تحديثات الإصدار الثانوي وإصلاحات الأمان لكل من وقت تشغيل الوظائف واللغات. يجب تحديث الحاوية بانتظام من أحدث صورة أساسية وإعادة نشر الإصدار المحدث من الحاوية الخاصة بك. لمزيد من المعلومات، راجع الحفاظ على حاويات مخصصة.
للحصول على مثال كامل حول كيفية إنشاء تطبيق الدالة المحلية في حاويات من سطر الأوامر ونشر الصورة إلى سجل حاوية، راجع إنشاء تطبيق دالة في حاوية Linux محلية.
إنشاء Dockerfile
توفر أدوات الوظائف خيار Docker الذي ينشئ Dockerfile مع مشروع التعليمات البرمجية للوظائف. يمكنك استخدام هذا الملف مع Docker لإنشاء وظائفك في حاوية مشتقة من الصورة الأساسية الصحيحة، والتي تتضمن اللغة والإصدار.
تعتمد طريقة إنشاء Dockerfile على كيفية إنشاء مشروعك.
- Command line
- Visual Studio Code
- Visual Studio
عند إنشاء مشروع Functions باستخدام Azure Functions Core Tools، قم بتضمين
--dockerالخيار عند تشغيلfunc initالأمر، كما في المثال التالي:func init --dockerيمكنك أيضا إضافة Dockerfile إلى مشروع موجود باستخدام
--docker-onlyالخيار عند تشغيلfunc initالأمر في مجلد مشروع موجود، كما في المثال التالي:func init --docker-only
للحصول على مثال كامل، راجع إنشاء تطبيق دالة في حاوية Linux محلية.
إنشاء تطبيق الوظائف في حاوية
باستخدام Dockerfile الذي تم إنشاؤه بواسطة Functions في مشروع التعليمات البرمجية، يمكنك استخدام Docker لإنشاء تطبيق الوظائف المضمن في حاويات على الكمبيوتر المحلي. ينشئ الأمر التالي docker build صورة للوظائف الحاوية الخاصة بك من المشروع في الدليل المحلي:
docker build --tag <DOCKER_ID>/<IMAGE_NAME>:v1.0.0 .
للحصول على مثال حول كيفية إنشاء الحاوية، راجع إنشاء صورة الحاوية والتحقق محليا.
تحديث صورة في السجل
عند إجراء تغييرات على مشروع التعليمات البرمجية للوظائف أو تحتاج إلى التحديث إلى أحدث صورة أساسية، أعد إنشاء الحاوية محليا. أعد نشر الصورة المحدثة إلى سجل الحاوية الذي اخترته. يعيد الأمر التالي إنشاء الصورة من المجلد الجذر برقم إصدار محدث ويدفعها إلى السجل الخاص بك:
az acr build --registry <REGISTRY_NAME> --image <LOGIN_SERVER>/azurefunctionsimage:v1.0.1 .
استبدل <REGISTRY_NAME> بمثيل Container Registry واسم <LOGIN_SERVER> خادم تسجيل الدخول.
قم بتحديث نشر موجود لاستخدام الصورة الجديدة. You can update the function app to use the new image either by using the Azure CLI or in the Azure portal:
az functionapp config container set --image <IMAGE_NAME> --registry-password <SECURE_PASSWORD>--registry-username <USER_NAME> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
في هذا المثال، <IMAGE_NAME> هو الاسم الكامل للصورة الجديدة مع الإصدار. تتطلب السجلات الخاصة توفير اسم مستخدم وكلمة مرور. قم بتخزين بيانات الاعتماد هذه بشكل آمن.
يجب عليك أيضا التفكير في تمكين النشر المستمر.
إنشاء تطبيق دالة في حاويات باستخدام مدخل Microsoft Azure
When you create a function app in the Azure portal, you can choose to deploy the function app from an image in a container registry. لمعرفة كيفية إنشاء تطبيق دالة في حاوية في سجل حاوية، راجع إنشاء تطبيق الوظائف في حاوية.
تنشئ الخطوات التالية تطبيق وظائف موجود في حاويات وتنشره من سجل حاوية.
From the Azure portal menu or the Home page, select Create a resource.
In the New page, select Compute>Function App.
ضمن تحديد خيار استضافة، اختر تحديد Functions Premium>.
This action creates a function app hosted by Azure Functions in the Premium plan, which supports dynamic scaling. يمكنك أيضا اختيار التشغيل في خطة App Service، ولكن في هذا النوع من الخطة المخصصة، يجب عليك إدارة تحجيم تطبيق الوظائف.
On the Basics page, use the function app settings as specified in the following table:
Setting Suggested value Description Subscription Your subscription الاشتراك الذي تقوم فيه بإنشاء تطبيق الوظائف الخاص بك. Resource Group myResourceGroup اسم مجموعة الموارد الجديدة التي تقوم فيها بإنشاء تطبيق الوظائف. يجب إنشاء مجموعة موارد لأن هناك قيود معروفة عند إنشاء تطبيقات وظائف جديدة في مجموعة موارد موجودة. اسم تطبيق الوظائف اسم التطبيق الاسم الذي يحدد تطبيق الوظائف الجديد. الأحرف الصالحة هي a-z(غير حساسة لحالة الأحرف)، و0-9، و-.اسم مضيف افتراضي فريد آمن Enabled قم بتمكين هذه الميزة حتى لا تقلق بشأن تضارب أسماء النطاقات، بغض النظر عن اسم تطبيقك. هل تريد نشر التعليمات البرمجية أو صورة الحاوية؟ Container image نشر تطبيق دالة في حاوية من سجل. لإنشاء تطبيق دالة في التسجيل، راجع إنشاء تطبيق دالة في حاوية Linux محلية. Region Preferred region Select a region that's near you or near other services that your functions can access. Linux plan خطة جديدة (افتراضي) إنشاء خطة Premium جديدة لاستضافة تطبيقك. يمكنك أيضا اختيار خطة متميزة موجودة. Pricing plan مرونة بريميوم EP1 EP1هي الخطة الأكثر بأسعار معقولة. يمكنك اختيار خطة أكبر إذا كنت بحاجة إلى ذلك.Zone Redundancy Disabled لا تحتاج إلى هذه الميزة في تطبيق غير منتج. Accept the default options of creating a new storage account on the Storage tab and a new Application Insight instance on the Monitoring tab. You can also choose to use an existing storage account or Application Insights instance.
حدد "تقييم + إنشاء"لتقييم اختيارات تكوين التطبيق.
في صفحة Review + create ، راجع الإعدادات الخاصة بك، ثم حدد Create لتوفير تطبيق الوظائف باستخدام صورة أساسية افتراضية.
بعد إنشاء مورد تطبيق الدالة، حدد الانتقال إلى المورد. In the function app page, select Deployment Center.
In the Deployment Center, you can connect your container registry as the source of the image. يمكنك أيضا تمكين GitHub Actions أو Azure Pipelines لنشر مستمر أكثر قوة للتحديثات إلى الحاوية الخاصة بك في السجل.
إنشاء تطبيق دالة في حاويات باستخدام مدخل Microsoft Azure
When you create a Container Apps-hosted function app in the Azure portal, you can choose to deploy your function app from an image in a container registry. لمعرفة كيفية إنشاء تطبيق دالة في حاوية في سجل حاوية، راجع إنشاء تطبيق الوظائف في حاوية.
تنشئ الخطوات التالية تطبيق وظائف موجود في حاويات وتنشره من سجل حاوية.
From the Azure portal menu or the Home page, select Create a resource.
In the New page, select Compute>Function App.
ضمن تحديد خيار استضافة، اختر بيئة تطبيقات الحاوية>حدد.
On the Basics page, use the function app settings as specified in the following table:
Setting Suggested value Description Subscription Your subscription الاشتراك الذي تقوم فيه بإنشاء تطبيق الوظائف الخاص بك. Resource Group myResourceGroup اسم مجموعة الموارد الجديدة التي تقوم فيها بإنشاء تطبيق الوظائف. يجب إنشاء مجموعة موارد لأن هناك قيود معروفة عند إنشاء تطبيقات وظائف جديدة في مجموعة موارد موجودة. اسم تطبيق الوظائف اسم فريد* الاسم الذي يحدد تطبيق الوظائف الجديد. الأحرف الصالحة هي a-z(غير حساسة لحالة الأحرف)، و0-9، و-.Region Preferred region Select a region that's near you or near other services that your functions can access. *يجب أن يكون اسم التطبيق فريدا داخل بيئة Azure Container Apps.
Still on the Basics page, accept the suggested new environment for Azure Container Apps environment. لتقليل التكاليف، يتم إنشاء البيئة الافتراضية الجديدة في Consumption + Dedicated مع ملف تعريف حمل العمل الافتراضي وبدون تكرار المنطقة. لمزيد من المعلومات، راجع استضافة Azure Container Apps ل Azure Functions.
يمكنك أيضا اختيار استخدام بيئة Container Apps موجودة. To create a custom environment, instead select Create new. في صفحة إنشاء بيئة تطبيقات الحاوية، يمكنك إضافة ملفات تعريف حمل العمل غير الافتراضية أو تمكين تكرار المنطقة. للتعرف على البيئات، راجع بيئات Azure Container Apps.
Select the Deployment tab and unselect Use quickstart image. وإلا، يتم نشر تطبيق الوظائف من الصورة الأساسية للغة تطبيق الوظائف.
Choose your Image type, public or private. Choose Private if you're using Azure Container Registry or some other private registry. Supply the Image name, including the registry prefix. إذا كنت تستخدم سجلا خاصا، فوفر بيانات اعتماد مصادقة سجل الصور. The Public setting only supports images stored publicly in Docker Hub.
ضمن تخصيص موارد الحاوية، حدد العدد المطلوب من مراكز وحدة المعالجة المركزية والذاكرة المتوفرة. If your environment has other workload profiles added, you can select a nondefault Workload profile. تؤثر الاختيارات في هذه الصفحة على تكلفة استضافة تطبيقك. راجع صفحة تسعير Container Apps لتقدير التكاليف المحتملة.
حدد "تقييم + إنشاء"لتقييم اختيارات تكوين التطبيق.
في صفحة Review + create ، راجع الإعدادات الخاصة بك، ثم حدد Create لتوفير تطبيق الوظائف ونشر صورة الحاوية من السجل.
العمل مع الصور في Azure Functions
عند نشر حاوية تطبيق الوظائف من سجل، تحتفظ Functions بمعلومات حول الصورة المصدر.
استخدم الأوامر التالية للحصول على بيانات حول الصورة أو تغيير صورة التوزيع المستخدمة:
az functionapp config container show: إرجاع معلومات حول الصورة المستخدمة للنشر.az functionapp config container set: تغيير إعدادات التسجيل أو تحديث الصورة المستخدمة للنشر، كما هو موضح في المثال السابق.
استخدام ملفات تعريف حمل عمل Container Apps
ملفات تعريف حمل العمل هي ميزة لتطبيقات الحاوية التي تتيح لك التحكم بشكل أفضل في موارد النشر الخاصة بك. تدعم Azure Functions على Azure Container Apps أيضا ملفات تعريف حمل العمل. لمزيد من المعلومات، راجع ملفات تعريف حمل العمل في Azure Container Apps.
يمكنك أيضا تعيين مقدار وحدة المعالجة المركزية وموارد الذاكرة المخصصة لتطبيقك.
يمكنك إنشاء وإدارة كل من ملفات تعريف حمل العمل وتخصيصات الموارد باستخدام Azure CLI أو في مدخل Microsoft Azure.
يمكنك تمكين ملفات تعريف حمل العمل عند إنشاء بيئة تطبيق الحاوية. على سبيل المثال، راجع إنشاء تطبيق حاوية في ملف تعريف.
يمكنك إضافة ملفات التعريف وتحريرها وحذفها في بيئتك. For an example, see Add profiles.
عند إنشاء تطبيق دالة في حاوية في بيئة تم فيها تمكين ملفات تعريف حمل العمل، يجب عليك أيضا تحديد ملف التعريف الذي سيتم تشغيله فيه. حدد ملف التعريف باستخدام --workload-profile-name معلمة az functionapp create الأمر، كما في هذا المثال:
az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> --environment MyContainerappEnvironment --resource-group AzureFunctionsContainers-rg --functions-version 4 --runtime <LANGUAGE_STACK> --image <IMAGE_URI> --workload-profile-name <PROFILE_NAME> --cpu <CPU_COUNT> --memory <MEMORY_SIZE>
في الأمر az functionapp create ، تحدد المعلمة --environment بيئة تطبيقات الحاوية وتحدد المعلمة --image الصورة المراد استخدامها لتطبيق الوظائف. في هذا المثال، استبدل <STORAGE_NAME> بالاسم الذي استخدمته في القسم السابق لحساب التخزين. استبدل <APP_NAME> أيضا باسم مناسب لك وفريد من نوعه في البيئة.
لتعيين الموارد المخصصة لتطبيقك، استبدل <CPU_COUNT> بالعدد المطلوب من وحدات المعالجة المركزية الظاهرية، بحد أدنى 0.5 حتى الحد الأقصى المسموح به من قبل ملف التعريف. بالنسبة إلى <MEMORY_SIZE>، اختر كمية ذاكرة مخصصة من 1 غيغابايت حتى الحد الأقصى المسموح به من قبل ملف التعريف.
يمكنك استخدام الأمر az functionapp container set لإدارة الموارد المخصصة وملف تعريف حمل العمل الذي يستخدمه تطبيقك.
az functionapp container set --name <APP_NAME> --resource-group AzureFunctionsContainers-rg --workload-profile-name <PROFILE_NAME> --cpu <CPU_COUNT> --memory <MEMORY_SIZE>
استخدام إعدادات التطبيق
تتيح لك Azure Functions العمل مع إعدادات التطبيق لتطبيقات الوظائف المعبأة في حاويات بالطريقة القياسية. لمزيد من المعلومات، راجع استخدام إعدادات التطبيق.
Tip
بشكل افتراضي، يراقب تطبيق الوظائف الحاوية المنفذ 80 للطلبات الواردة. إذا كان يجب أن يستخدم تطبيقك منفذا مختلفا، فاستخدم WEBSITES_PORT إعداد التطبيق لتغيير هذا المنفذ.
تفعيل النشر المستمر إلى Azure
عند استضافة تطبيق الوظائف الحاوية على Azure Container Apps، هناك طريقتان لإعداد النشر المستمر من مستودع التعليمات البرمجية المصدر:
لا يمكنك حاليا نشر الحاويات باستمرار استنادا إلى تغييرات الصورة في سجل الحاوية. يجب بدلا من ذلك استخدام مسارات التوزيع المستمر المستندة إلى التعليمات البرمجية المصدر هذه.
تفعيل النشر المستمر إلى Azure
Important
النشر المستند إلى خطاف الويب غير مدعوم حاليا عند تشغيل الحاوية الخاصة بك في خطة Elastic Premium. إذا كنت بحاجة إلى استخدام أسلوب النشر المستمر الموضح في هذا القسم، فوزع الحاوية بدلا من ذلك في خطة App Service. عند التشغيل في خطة Elastic Premium، تحتاج إلى إعادة تشغيل التطبيق يدويا كلما قمت بإجراء تحديثات على الحاوية في المستودع.
You can also configure continuous deployment from a source code repository using either Azure Pipelines or GitHub Actions.
يمكنك تمكين دالات Azure لتحديث نشر صورة تلقائيًّا كلما قمت بتحديث الصورة في السجل.
استخدم الأمر التالي لتمكين النشر المستمر والحصول على عنوان URL الخاص بخطاف الويب:
az functionapp deployment container config --enable-cd --query CI_CD_URL --output tsv --name <APP_NAME> --resource-group AzureFunctionsContainers-rgيتيح الأمر az functionapp deployment container config النشر المستمر ويرجع عنوان URL لخطاف الويب للتوزيع. يمكنك استرداد عنوان URL هذا في أي وقت باستخدام الأمر az functionapp deployment container show-cd-url .
كما كان الحال من قبل، استبدل
<APP_NAME>باسم تطبيق دالتك.نسخ عنوان نشر webhook للنشر إلى الحافظة.
Open Docker Hub, sign in, and select Repositories on the navigation bar. Locate and select the image, select the Webhooks tab, specify a Webhook name, paste your URL in Webhook URL, and then select Create.
مع مجموعة webhook، تعيد Azure Functions نشر صورتك كلما قمت بتحديثها في Docker Hub.
تفعيل اتصالات SSH
تمكن SSH من الاتصال الآمن بين حاوية وعميل. مع تمكين SSH، يمكنك الاتصال بالحاوية الخاصة بك باستخدام App Service Advanced Tools (Kudu). لسهولة الاتصال بالحاوية الخاصة بك باستخدام SSH، توفر وظائف Azure صورة أساسية تم تمكين SSH بالفعل. You only need to edit your Dockerfile, then rebuild, and redeploy the image. يمكنك بعد ذلك الاتصال بالحاوية من خلال الأدوات المتقدمة (Kudu).
In your Dockerfile, append the string
-appserviceto the base image in yourFROMinstruction, as in the following example:FROM mcr.microsoft.com/azure-functions/node:4-node18-appserviceيستخدم هذا المثال الإصدار الذي يدعم SSH من الصورة الأساسية للإصدار Node.js 18. قم بزيارة مستودعات الصورة الأساسية ل Azure Functions للتحقق من أنك تستخدم أحدث إصدار من الصورة الأساسية التي تدعم SSH.
أعد إنشاء الصورة باستخدام
docker buildالأمر ، واستبدل<DOCKER_ID>بمعرف حساب Docker Hub الخاص بك، كما في المثال التالي.docker build --tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 .ادفع الصورة المحدثة إلى Docker Hub، والتي من المفترض أن تستغرق وقتًا أقل بكثير من الدفعة الأولى. يجب تحميل الأجزاء المحدثة فقط من الصورة الآن.
docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0تقوم Azure Functions تلقائيا بإعادة توزيع الصورة إلى تطبيق الوظائف الخاص بك. تتم العملية في أقل من دقيقة.
In the Azure portal, locate your function app. In the left menu, select Development Tools>SSH. Select Go. قد يستغرق الاتصال بضع لحظات إذا كان Azure لا يزال يقوم بتحديث صورة الحاوية.
بعد إنشاء اتصال مع الحاوية الخاصة بك، قم بتشغيل
topالأمر لعرض العمليات قيد التشغيل حاليًّا.
Related content
توفر المقالات التالية المزيد من المعلومات حول نشر الحاويات وإدارتها: