ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية إنشاء تطبيقات الوظائف المستضافة في خطة استهلاك Flex في Azure Functions. كما يوضح لك كيفية إدارة ميزات معينة لتطبيق مستضاف لخطة استهلاك Flex.
موارد تطبيق الوظائف خاصة ب langauge. تأكد من اختيار لغة تطوير التعليمات البرمجية المفضلة لديك في بداية المقالة.
Prerequisites
حساب Azure مع اشتراك نشط. إذا لم تكن تملك حسابًا، فإنه يمكنكإنشاء حساب مجانًا.
Azure CLI: used to create and manage resources in Azure. عند استخدام Azure CLI على الكمبيوتر المحلي، تأكد من استخدام الإصدار 2.60.0 أو إصدار أحدث. يمكنك أيضا استخدام Azure Cloud Shell، الذي يحتوي على إصدار Azure CLI الصحيح.
Visual Studio Code: يستخدم لإنشاء التطبيقات وتطويرها، وإنشاء موارد Azure، ونشر مشاريع التعليمات البرمجية إلى Azure. عند استخدام Visual Studio Code، تأكد أيضا من تثبيت أحدث ملحق Azure Functions. يمكنك أيضا تثبيت حزمة ملحق أدوات Azure.
على الرغم من أنه ليس مطلوبا لإنشاء تطبيق خطة Flex Consumption، فأنت بحاجة إلى مشروع تعليمة برمجية لتتمكن من النشر إلى تطبيق دالة جديد والتحقق من صحته. أكمل الجزء الأول من إحدى مقالات التشغيل السريع هذه، حيث تقوم بإنشاء مشروع تعليمة برمجية باستخدام دالة تم تشغيلها بواسطة HTTP:
لإنشاء تطبيق في خطة استهلاك Flex جديدة أثناء توزيع Maven، يجب عليك إنشاء مشروع التطبيق المحلي ثم تحديث ملف pom.xml للمشروع. لمزيد من المعلومات، راجع إنشاء تطبيق Java Flex Consumption باستخدام Maven
ارجع إلى هذه المقالة بعد إنشاء المشروع المحلي وتشغيله، ولكن قبل أن يطلب منك إنشاء موارد Azure. يمكنك إنشاء تطبيق الوظائف وموارد Azure الأخرى في القسم التالي.
إنشاء تطبيق Flex Consumption
يوضح لك هذا القسم كيفية إنشاء تطبيق دالة في خطة Flex Consumption باستخدام إما Azure CLI أو مدخل Microsoft Azure أو Visual Studio Code. للحصول على مثال لإنشاء تطبيق في خطة استهلاك Flex باستخدام قوالب Bicep/ARM، راجع مستودع Flex Consumption.
يمكنك تخطي هذا القسم إذا اخترت بدلا من ذلك إنشاء تطبيقك ونشره باستخدام Maven.
لدعم التعليمات البرمجية للدالة الخاصة بك، تحتاج إلى إنشاء ثلاثة موارد:
- A resource group, which is a logical container for related resources.
- A Storage account, which is used to maintain state and other information about your functions.
- تطبيق دالة في خطة Flex Consumption، والتي توفر البيئة لتنفيذ التعليمات البرمجية للدالة. يقوم تطبيق الوظائف بتعيين مشروع الدالة المحلي ويتيح لك تجميع الوظائف كوحدة منطقية لتسهيل إدارة الموارد ونشرها ومشاركتها في خطة Flex Consumption.
- Azure CLI
- Azure portal
- Visual Studio Code
إذا لم تكن قد فعلت ذلك بالفعل، سجل الدخول إلى Azure:
az login
az login
يسجل لك الأمر الدخول إلى حساب Azure الخاص بك.az functionapp list-flexconsumption-locations
استخدم الأمر لمراجعة قائمة المناطق التي تدعم استهلاك Flex حاليا بترتيب أبجدي.az functionapp list-flexconsumption-locations --query "sort_by(@, &name)[].{Region:name}" -o table
إنشاء مجموعة موارد في إحدى المناطق المدعومة حاليا:
az group create --name <RESOURCE_GROUP> --location <REGION>
في الأمر السابق، استبدل
<RESOURCE_GROUP>
بقيمة فريدة في اشتراكك وبإحدى<REGION>
المناطق المدعومة حاليا. ينشئ الأمر az group create مجموعة موارد.إنشاء حساب تخزين للأغراض العامة في مجموعة الموارد والمنطقة الخاصة بك:
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group <RESOURCE_GROUP> --sku Standard_LRS --allow-blob-public-access false
في المثال السابق، استبدل
<STORAGE_NAME>
باسم مناسب لك وفريد في تخزين Azure. يجب أن تحتوي الأسماء على ثلاثة إلى 24 حرفا من الأرقام والأحرف الصغيرة فقط. يحددStandard_LRS
حساب للأغراض العامة، الذي هو مدعوم من قبل الدالات. يقوم أمر إنشاء حساب التخزين azبإنشاء حساب التخزين.Important
يتم استخدام حساب التخزين لتخزين بيانات التطبيق المهمة، بما في ذلك أحيانا التعليمات البرمجية للتطبيق نفسه. يجب تقييد الوصول من التطبيقات والمستخدمين الآخرين إلى حساب التخزين.
أنشئ تطبيق الدالة في Azure:
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime dotnet-isolated --runtime-version 8.0
تطبيقات C# التي تعمل قيد المعالجة غير مدعومة حاليا عند التشغيل في خطة Flex Consumption.
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime java --runtime-version 17
بالنسبة لتطبيقات Java، يتم أيضا دعم Java 11 حاليا.
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime node --runtime-version 20
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime python --runtime-version 3.11
بالنسبة لتطبيقات Python، يتم أيضا دعم Python 3.10 حاليا.
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime powershell --runtime-version 7.4
في هذا المثال، استبدل كل
<RESOURCE_GROUP>
من و<STORAGE_NAME>
بمجموعة الموارد واسم الحساب الذي استخدمته في الخطوة السابقة، على التوالي. استبدل<APP_NAME>
أيضا باسم فريد عمومي مناسب لك.<APP_NAME>
هو أيضا المجال الافتراضي لخادم اسم المجال (DNS) لتطبيق الوظائف.az functionapp create
يقوم الأمر بإنشاء تطبيق الوظائف في Azure.ينشئ هذا الأمر تطبيق وظائف يعمل في خطة Flex Consumption.
نظرا لأنك أنشأت التطبيق دون تحديد مثيلات جاهزة دائما، فإن تطبيقك يتحمل التكاليف فقط عند تنفيذ الوظائف بنشاط. يقوم الأمر أيضا بإنشاء مثيل Azure Application Insights مقترن في نفس مجموعة الموارد، والتي يمكنك من خلالها مراقبة تطبيق الوظائف وعرض السجلات. للمزيد من المعلومات، راجع مراقبة دوال Azure.
نشر مشروع التعليمات البرمجية
للنشر، تستخدم تطبيقات خطة Flex Consumption حاوية تخزين Blob لاستضافة ملفات حزمة .zip التي تحتوي على التعليمات البرمجية للمشروع وجميع المكتبات المطلوبة لتشغيل تطبيقك. For more information, see Deployment.
يمكنك تخطي هذا القسم إذا اخترت بدلا من ذلك إنشاء تطبيقك ونشره باستخدام Maven.
يمكنك اختيار نشر التعليمات البرمجية لمشروعك إلى تطبيق وظائف موجود باستخدام أدوات مختلفة:
- Azure CLI
- Continuous Deployment
- Core Tools
- Visual Studio Code
يمكنك استخدام Azure CLI لتحميل ملف حزمة توزيع إلى مشاركة التوزيع لتطبيق الوظائف في Azure. للقيام بذلك، يجب إنتاج ملف حزمة .zip يمكن تشغيله عند تحميل الحزمة على تطبيقك.
يجب أن يحتوي ملف الحزمة هذا على كافة ملفات إخراج البنية والمكتبات المشار إليها المطلوبة لتشغيل مشروعك.
For projects with a large number of libraries, you should package the root of your project file and request a remote build.
For Python projects, you should package the root of your project file and always request a remote build. يمنع استخدام بنية عن بعد المشكلات المحتملة التي يمكن أن تحدث عند إنشاء مشروع على Windows ليتم نشره على Linux.
باستخدام أداة التطوير المفضلة لديك، قم بإنشاء مشروع التعليمات البرمجية.
إنشاء ملف .zip يحتوي على إخراج دليل الإنشاء. For more information, see Project structure.
عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام
az login
الأمر .az login
az functionapp deployment source config-zip
قم بتشغيل الأمر لنشر حزمة التطبيق الموجودة في النسبي<FILE_PATH>
.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
باستخدام أداة التطوير المفضلة لديك، قم بإنشاء مشروع التعليمات البرمجية.
إنشاء ملف .zip يحتوي على إخراج دليل الإنشاء. For more information, see Folder structure.
عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام
az login
الأمر .az login
az functionapp deployment source config-zip
قم بتشغيل الأمر لنشر حزمة التطبيق الموجودة في النسبي<FILE_PATH>
.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
إنشاء ملف .zip يحتوي على الدليل الجذر لمشروع التعليمات البرمجية. For more information, see Folder structure.
عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام
az login
الأمر .az login
az functionapp deployment source config-zip
قم بتشغيل الأمر لنشر حزمة التطبيق الموجودة في النسبي<FILE_PATH>
.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
إنشاء ملف .zip يحتوي على الدليل الجذر لمشروع التعليمات البرمجية. For more information, see Folder structure.
عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام
az login
الأمر .az login
az functionapp deployment source config-zip
قم بتشغيل الأمر لنشر حزمة التطبيق الموجودة في النسبي<FILE_PATH>
.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP> --build-remote true
Make sure to set
--build-remote true
to perform a remote build.
إنشاء ملف .zip يحتوي على الدليل الجذر لمشروع التعليمات البرمجية. For more information, see Folder structure.
عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام
az login
الأمر .az login
az functionapp deployment source config-zip
قم بتشغيل الأمر لنشر حزمة التطبيق الموجودة في النسبي<FILE_PATH>
.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP> --build-remote true
Make sure to set
--build-remote true
to perform a remote build.
إنشاء تطبيقك ونشره باستخدام Maven
يمكنك استخدام Maven لإنشاء تطبيق دالة مستضاف على Flex Consumption والموارد المطلوبة أثناء النشر عن طريق تعديل ملف pom.xml.
إنشاء مشروع تعليمة برمجية Java عن طريق إكمال الجزء الأول من إحدى مقالات التشغيل السريع هذه:
في مشروع تعليمة Java البرمجية، افتح ملف pom.xml وقم بإجراء هذه التغييرات لإنشاء تطبيق الوظائف في خطة Flex Consumption:
تغيير قيمة
<properties>.<azure.functions.maven.plugin.version>
إلى1.34.0
.في
<plugin>.<configuration>
القسم الخاص بazure-functions-maven-plugin
، أضف العنصر أو ألغ تعليقه<pricingTier>
كما يلي:<pricingTier>Flex Consumption</pricingTier>
(اختياري) قم بتخصيص خطة Flex Consumption في توزيع Maven الخاص بك عن طريق تضمين هذه العناصر أيضا في
<plugin>.<configuration>
القسم: .-
<instanceSize>
- sets the instance memory size for the function app. القيمة الافتراضية هي2048
. -
<maximumInstances>
- يعين أعلى قيمة للحد الأقصى لعدد المثيلات لتطبيق الوظائف. -
<alwaysReadyInstances>
- يعين عدد المثيلات الجاهزة دائما مع العناصر التابعة لمجموعات مشغلات HTTP (<http>
)، ومجموعات Durable Functions (<durable>
)، ومشغلات محددة أخرى (<my_function>
). عند تعيين أي عدد مثيل أكبر من الصفر، يتم محاسبتك على هذه المثيلات سواء تم تنفيذ وظائفك أم لا. For more information, see Billing.
-
قبل أن تتمكن من النشر، سجل الدخول إلى اشتراك Azure باستخدام Azure CLI.
az login
az login
يسجل لك الأمر الدخول إلى حساب Azure الخاص بك.استخدم الأمر التالي لنشر مشروع التعليمات البرمجية الخاص بك إلى تطبيق وظائف جديد في Flex Consumption.
mvn azure-functions:deploy
يستخدم Maven الإعدادات في قالب pom.xml لإنشاء تطبيق الوظائف في خطة استهلاك Flex في Azure، جنبا إلى جنب مع الموارد المطلوبة الأخرى. إذا كانت هذه الموارد موجودة بالفعل، يتم نشر التعليمات البرمجية إلى تطبيق الوظائف الخاص بك، والكتابة فوق أي تعليمة برمجية موجودة.
تمكين تكامل الشبكة الظاهرية
يمكنك تمكين تكامل الشبكة الظاهرية لتطبيقك في خطة Flex Consumption. تفترض الأمثلة في هذا القسم أنك قمت بالفعل بإنشاء شبكة ظاهرية مع شبكة فرعية في حسابك. يمكنك تمكين تكامل الشبكة الظاهرية عند إنشاء تطبيقك أو في وقت لاحق.
Important
لا تدعم خطة Flex Consumption حاليا الشبكات الفرعية التي تحتوي على أسماء تحتوي على أحرف تسطير أسفل السطر (_
).
لتمكين الشبكات الظاهرية عند إنشاء تطبيقك:
- Azure CLI
- Azure portal
- Visual Studio Code
يمكنك تمكين تكامل الشبكة الظاهرية az functionapp create
عن طريق تشغيل الأمر وتضمين --vnet
المعلمات و --subnet
.
إنشاء الشبكة الظاهرية والشبكة الفرعية، إذا لم تكن قد فعلت ذلك بالفعل.
أكمل الخطوات من 1 إلى 4 في إنشاء تطبيق Flex Consumption لإنشاء الموارد المطلوبة من قبل تطبيقك.
az functionapp create
قم بتشغيل الأمر ، بما في--vnet
ذلك المعلمات و--subnet
، كما في هذا المثال:az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime <RUNTIME_NAME> --runtime-version <RUNTIME_VERSION> --vnet <VNET_RESOURCE_ID> --subnet <SUBNET_NAME>
<VNET_RESOURCE_ID>
القيمة هي معرف المورد للشبكة الظاهرية، وهو بالتنسيق:/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Network/virtualNetworks/<VNET_NAME>
. يمكنك استخدام هذا الأمر للحصول على قائمة معرفات الشبكة الظاهرية، التي تمت تصفيتها حسب<RESOURCE_GROUP>
:az network vnet list --resource-group <RESOURCE_GROUP> --output tsv --query "[]".id
.
للحصول على أمثلة شاملة حول كيفية إنشاء تطبيقات في Flex Consumption مع تكامل الشبكة الظاهرية، راجع هذه الموارد:
- الاستهلاك المرن: HTTP إلى مراكز الأحداث باستخدام تكامل الشبكة الظاهرية
- استهلاك Flex: يتم تشغيله من ناقل خدمة Microsoft Azure باستخدام تكامل الشبكة الظاهرية
لتعديل أو حذف تكامل الشبكة الظاهرية في تطبيق موجود:
- Azure CLI
- Azure portal
- Visual Studio Code
az functionapp vnet-integration add
استخدم الأمر لتمكين تكامل الشبكة الظاهرية إلى تطبيق وظائف موجود:
az functionapp vnet-integration add --resource-group <RESOURCE_GROUP> --name <APP_NAME> --vnet <VNET_RESOURCE_ID> --subnet <SUBNET_NAME>
az functionapp vnet-integration remove
استخدم الأمر لتعطيل تكامل الشبكة الظاهرية في تطبيقك:
az functionapp vnet-integration remove --resource-group <RESOURCE_GROUP> --name <APP_NAME>
az functionapp vnet-integration list
استخدم الأمر لسرد عمليات تكامل الشبكة الظاهرية الحالية لتطبيقك:
az functionapp vnet-integration list --resource-group <RESOURCE_GROUP> --name <APP_NAME>
عند اختيار شبكة فرعية، تنطبق هذه الاعتبارات:
- لا يمكن استخدام الشبكة الفرعية التي تختارها بالفعل لأغراض أخرى، مثل نقاط النهاية الخاصة أو نقاط نهاية الخدمة، أو تفويضها إلى أي خطة استضافة أو خدمة أخرى.
- لا يمكنك مشاركة نفس الشبكة الفرعية بين بيئة Container Apps وتطبيق Flex Consumption.
- يمكنك مشاركة نفس الشبكة الفرعية مع أكثر من تطبيق واحد يعمل في خطة استهلاك Flex. نظرا لأنه تتم مشاركة موارد الشبكات عبر جميع التطبيقات، قد يؤثر تطبيق دالة واحد على أداء الآخرين على نفس الشبكة الفرعية.
- في خطة Flex Consumption، قد يستخدم تطبيق وظائف واحد ما يصل إلى 40 عنوان IP، حتى عندما يتجاوز حجم التطبيق 40 مثيلا. في حين أن هذه القاعدة مفيدة عند تقدير حجم الشبكة الفرعية التي تحتاجها، فإنه لا يتم فرضها بدقة.
تكوين إعدادات النشر
في خطة Flex Consumption، يتم الاحتفاظ بحزمة التوزيع التي تحتوي على التعليمات البرمجية لتطبيقك في حاوية Azure Blob Storage. بشكل افتراضي، تستخدم عمليات التوزيع نفس حساب التخزين (AzureWebJobsStorage
) والقيمة سلسلة الاتصال المستخدمة من قبل وقت تشغيل الوظائف للحفاظ على تطبيقك. يتم تخزين سلسلة الاتصال في DEPLOYMENT_STORAGE_CONNECTION_STRING
إعداد التطبيق. ومع ذلك، يمكنك بدلا من ذلك تعيين حاوية كائن ثنائي كبير الحجم في حساب تخزين منفصل كمصدر نشر للتعليمات البرمجية الخاصة بك. يمكنك أيضا تغيير أسلوب المصادقة المستخدم للوصول إلى الحاوية.
يجب أن يفي مصدر التوزيع المخصص بهذه المعايير:
- يجب أن يكون حساب التخزين موجودا بالفعل.
- يجب أن تكون الحاوية لاستخدامها في عمليات النشر موجودة أيضا.
- عندما يستخدم أكثر من تطبيق حساب التخزين نفسه، يجب أن يكون لكل منها حاوية نشر خاصة به. يؤدي استخدام حاوية فريدة لكل تطبيق إلى منع الكتابة فوق حزم التوزيع، وهو ما سيحدث إذا شاركت التطبيقات نفس الحاوية.
عند تكوين مصادقة تخزين النشر، ضع هذه الاعتبارات في الاعتبار:
- كأفضل ممارسة أمان، يجب عليك استخدام الهويات المدارة عند الاتصال ب Azure Storage من تطبيقاتك. For more information, see Connections.
- عند استخدام سلسلة الاتصال للاتصال بحساب تخزين النشر، يجب أن يكون إعداد التطبيق الذي يحتوي على سلسلة الاتصال موجودا بالفعل.
- عند استخدام هوية مدارة معينة من قبل المستخدم، يتم ربط الهوية المقدمة بتطبيق الوظائف.
Storage Blob Data Contributor
يتم أيضا تعيين الدور المحدد في حساب تخزين النشر إلى الهوية. - عند استخدام هوية مدارة معينة من قبل النظام، يتم إنشاء هوية عندما لا تكون الهوية الصالحة المعينة من قبل النظام موجودة بالفعل في تطبيقك. عند وجود هوية معينة من قبل النظام،
Storage Blob Data Contributor
يتم أيضا تعيين الدور المحدد في حساب تخزين النشر إلى الهوية.
لتكوين إعدادات النشر عند إنشاء تطبيق الوظائف في خطة Flex Consumption:
- Azure CLI
- Azure portal
- Visual Studio Code
az functionapp create
استخدم الأمر وقم بتوفير هذه الخيارات الإضافية التي تخصص تخزين النشر:
Parameter | Description |
---|---|
--deployment-storage-name |
اسم حساب تخزين النشر. |
--deployment-storage-container-name |
اسم الحاوية في الحساب لاحتواء حزمة توزيع التطبيق. |
--deployment-storage-auth-type |
نوع المصادقة الذي يجب استخدامه للاتصال بحساب تخزين النشر. تتضمن StorageAccountConnectionString القيم المقبولة و UserAssignedIdentity و.SystemAssignedIdentity |
--deployment-storage-auth-value |
عند استخدام StorageAccountConnectionString ، يتم تعيين هذه المعلمة إلى اسم إعداد التطبيق الذي يحتوي على سلسلة الاتصال إلى حساب تخزين النشر. عند تعيين UserAssignedIdentity ، يتم تعيين هذه المعلمة إلى اسم معرف المورد للهوية التي تريد استخدامها. |
ينشئ هذا المثال تطبيق وظائف في خطة Flex Consumption باستخدام حساب تخزين توزيع منفصل وهوية معينة من قبل المستخدم:
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime dotnet-isolated --runtime-version 8.0 --flexconsumption-location "<REGION>" --deployment-storage-name <DEPLOYMENT_ACCOUNT_NAME> --deployment-storage-container-name <DEPLOYMENT_CONTAINER_NAME> --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value <MI_RESOURCE_ID>
يمكنك أيضا تعديل تكوين تخزين التوزيع لتطبيق موجود.
- Azure CLI
- Azure portal
- Visual Studio Code
az functionapp deployment config set
استخدم الأمر لتعديل تكوين تخزين التوزيع:
az functionapp deployment config set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --deployment-storage-name <DEPLOYMENT_ACCOUNT_NAME> --deployment-storage-container-name <DEPLOYMENT_CONTAINER_NAME>
تكوين ذاكرة المثيل
يمكن تعيين حجم ذاكرة المثيل الذي تستخدمه خطة Flex Consumption بشكل صريح عند إنشاء تطبيقك. For more information about supported sizes, see Instance memory.
لتعيين حجم ذاكرة مثيل يختلف عن الحجم الافتراضي عند إنشاء تطبيقك:
- Azure CLI
- Azure portal
- Visual Studio Code
حدد المعلمة --instance-memory
في الأمر الخاص بك az functionapp create
. ينشئ هذا المثال تطبيق C# بحجم مثيل :4096
az functionapp create --instance-memory 4096 --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime dotnet-isolated --runtime-version 8.0
في أي وقت، يمكنك تغيير إعداد حجم ذاكرة المثيل الذي يستخدمه تطبيقك.
- Azure CLI
- Azure portal
- Visual Studio Code
يستخدم az functionapp scale config set
هذا المثال الأمر لتغيير إعداد حجم ذاكرة المثيل إلى 512 ميغابايت:
az functionapp scale config set --resource-group <resourceGroup> --name <APP_NAME> --instance-memory 512
تعيين عدد المثيلات الجاهزة دائما
You can set a specific number of always ready instances for the Per-function scaling groups or individual functions, to keep your functions loaded and ready to execute. هناك ثلاث مجموعات خاصة، كما هو الحال في التحجيم لكل وظيفة:
-
http
- جميع الوظائف التي تم تشغيلها من قبل HTTP في التطبيق تتدرج معا في مثيلاتها الخاصة. -
durable
- جميع الدوال التي تم تشغيلها بشكل دائم (التنسيق والنشاط والكيان) في التطبيق تتدرج معا في مثيلاتها الخاصة. -
blob
- جميع الكائنات الثنائية كبيرة الحجم (شبكة الأحداث) التي تم تشغيلها في توسيع نطاق التطبيق معا في مثيلاتها الخاصة.
استخدم http
أو durable
أو blob
كاسم لإعداد زوج قيمة الاسم لتكوين أعداد جاهزة دائما لهذه المجموعات. بالنسبة لجميع الوظائف الأخرى في التطبيق، تحتاج إلى تكوين جاهزة دائما لكل وظيفة فردية باستخدام التنسيق function:<FUNCTION_NAME>=n
.
- Azure CLI
- Azure portal
- Visual Studio Code
لتعريف تعيين مثيل واحد أو أكثر جاهز دائما، استخدم المعلمة --always-ready-instances
az functionapp create
مع الأمر . يعين هذا المثال عدد المثيلات الجاهزة دائما لجميع الدالات التي تم تشغيلها من HTTP إلى 5
:
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime <LANGUAGE_RUNTIME> --runtime-version <RUNTIME_VERSION> --flexconsumption-location <REGION> --always-ready-instances http=10
يعين هذا المثال عدد المثيلات الجاهزة دائما لكافة دوال مشغل Durable وتعيين 3
عدد المثيلات الجاهزة دائما إلى 2
لدالة مشغل ناقل خدمة تسمى function5
:
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime <LANGUAGE_RUNTIME> --runtime-version <RUNTIME_VERSION> --flexconsumption-location <REGION> --always-ready-instances durable=3 function:function5=2
يمكنك أيضا تعديل المثيلات الجاهزة دائما على تطبيق موجود عن طريق إضافة تعيينات المثيل أو إزالتها أو عن طريق تغيير عدد تعيينات المثيلات الموجودة.
- Azure CLI
- Azure portal
- Visual Studio Code
يستخدم az functionapp scale config always-ready set
هذا المثال الأمر لتغيير عدد المثيلات الجاهزة دائما لمجموعة مشغلات HTTP إلى 10
:
az functionapp scale config always-ready set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --settings http=10
لإزالة المثيلات الجاهزة دائما، استخدم az functionapp scale config always-ready delete
الأمر ، كما في هذا المثال الذي يزيل جميع المثيلات الجاهزة دائما من كل من مجموعة مشغلات HTTP وأيضا دالة تسمى hello_world
:
az functionapp scale config always-ready delete --resource-group <RESOURCE_GROUP> --name <APP_NAME> --setting-names http function:hello_world
تعيين حدود تزامن HTTP
ما لم تقم بتعيين حدود معينة، يتم تحديد الإعدادات الافتراضية لتزامن HTTP لتطبيقات خطة استهلاك Flex استنادا إلى إعداد حجم المثيل الخاص بك. لمزيد من المعلومات، راجع تزامن مشغل HTTP.
إليك كيفية تعيين حدود تزامن HTTP لتطبيق موجود:
- Azure CLI
- Azure portal
- Visual Studio Code
az functionapp scale config set
استخدم الأمر لتعيين حدود تزامن HTTP معينة لتطبيقك، بغض النظر عن حجم المثيل.
az functionapp scale config set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --trigger-type http --trigger-settings perInstanceConcurrency=10
يعين هذا المثال مستوى تزامن مشغل HTTP إلى 10
. بعد تعيين قيمة تزامن HTTP على وجه التحديد، يتم الاحتفاظ بهذه القيمة على الرغم من أي تغييرات في إعداد حجم مثيل التطبيق.
عرض المناطق المدعومة حاليا
لعرض قائمة المناطق التي تدعم حاليا خطط استهلاك Flex:
إذا لم تكن قد فعلت ذلك بالفعل، سجل الدخول إلى Azure:
az login
az login
يسجل لك الأمر الدخول إلى حساب Azure الخاص بك.az functionapp list-flexconsumption-locations
استخدم الأمر لمراجعة قائمة المناطق التي تدعم استهلاك Flex حاليا بترتيب أبجدي.az functionapp list-flexconsumption-locations --query "sort_by(@, &name)[].{Region:name}" -o table
When you create an app in the Azure portal or by using Visual Studio Code, currently unsupported regions are filtered out of the region list.
مراقبة تطبيقك في Azure
يوفر Azure Monitor هذه المجموعات المميزة من المقاييس لمساعدتك على فهم كيفية تشغيل تطبيق الوظائف في Azure بشكل أفضل:
- مقاييس النظام الأساسي: توفر رؤى على مستوى البنية الأساسية
- Application Insights: يوفر رؤى على مستوى التعليمات البرمجية، بما في ذلك التتبعات وسجلات الأخطاء.
إذا لم تكن قد فعلت ذلك بالفعل، يجب تمكين Application Insights في تطبيقك لتتمكن من:
- تعقب أوقات التنفيذ التفصيلية والتبعيات
- مراقبة أداء الدالة الفردية
- تحليل حالات الفشل والاستثناءات
- ربط مقاييس النظام الأساسي بسلوك التطبيق مع الاستعلامات المخصصة
للمزيد من المعلومات، راجع مراقبة دوال Azure.
Supported metrics
قم بتشغيل هذا البرنامج النصي لعرض جميع مقاييس النظام الأساسي المتوفرة حاليا لتطبيقك:
appId=$(az functionapp show --name <APP_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
az monitor metrics list-definitions --resource $appId --query "[].{Name:name.localizedValue,Value:name.value}" -o table
في هذا المثال، استبدل <RESOURCE_GROUP>
و <APP_NAME>
بأسماء تطبيقات الوظائف ومجموعة الموارد الخاصة بك، على التوالي. يحصل هذا البرنامج النصي على معرف التطبيق المؤهل بالكامل ويعيد مقاييس النظام الأساسي المتوفرة في جدول.
View metrics
يمكنك مراجعة المقاييس الحالية إما في مدخل Azure أو باستخدام Azure CLI.
في مدخل Microsoft Azure، يمكنك أيضا إنشاء تنبيهات المقاييس وتثبيت المخططات والتقارير الأخرى في لوحات المعلومات في المدخل.
- Azure CLI
- Azure portal
- Visual Studio Code
استخدم هذا البرنامج النصي لإنشاء تقرير بالمقاييس الحالية لتطبيقك:
appId=$(az functionapp show --name <APP_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
appId=$(az functionapp show --name func-fuxigh6c255de --resource-group exampleRG --query id -o tsv)
echo -e "\nAlways-ready and on-emand execution counts..."
az monitor metrics list --resource $appId --metric "AlwaysReadyFunctionExecutionCount" --interval PT1H --output table
az monitor metrics list --resource $appId --metric "OnDemandFunctionExecutionCount" --interval PT1H --output table
echo -e "\nExecution units (MB-ms) in always-ready and on-emand execution counts..."
az monitor metrics list --resource $appId --metric "AlwaysReadyFunctionExecutionUnits" --interval PT1H --output table
az monitor metrics list --resource $appId --metric "OnDemandFunctionExecutionUnits" --interval PT1H --output table
echo -e "\nAlways-ready resource utilization..."
az monitor metrics list --resource $appId --metric "AlwaysReadyUnits" --interval PT1H --output table
echo -e "\nMemory utilization..."
az monitor metrics list --resource $appId --metric "AverageMemoryWorkingSet" --interval PT1H --output table
az monitor metrics list --resource $appId --metric "MemoryWorkingSet" --interval PT1H --output table
echo -e "\nInstance count and CPU utilization..."
az monitor metrics list --resource $appId --metric "InstanceCount" --interval PT1H --output table
az monitor metrics list --resource $appId --metric "CpuPercentage" --interval PT1H --output table
لمعرفة المزيد حول مقاييس Azure Functions، راجع مراقبة Azure Functions.
View logs
عندما يكون تطبيقك متصلا ب Application Insights، يمكنك تحليل أداء التطبيق بشكل أفضل واستكشاف المشكلات وإصلاحها أثناء التنفيذ.
استخدام "الأداء" لتحليل أوقات الاستجابة والتبعيات
استخدام "حالات الفشل" لتحديد أي أخطاء تحدث بعد الترحيل
إنشاء استعلامات مخصصة في "السجلات" لتحليل سلوك الدالة:
// Compare success rates by instance requests | where timestamp > ago(7d) | summarize successCount=countif(success == true), failureCount=countif(success == false) by bin(timestamp, 1h), cloud_RoleName | render timechart
View costs
نظرا لأنه يمكنك ضبط تطبيقك لضبط الأداء مقابل تكاليف التشغيل، فمن المهم تتبع التكاليف المرتبطة بتشغيل تطبيقك في خطة Flex Consumption.
لعرض التكاليف الحالية:
In your function app page in the Azure portal, select the resource group link.
In the resource group page, select Cost Management>Cost analysis.
راجع التكاليف الحالية ومسار التكلفة للتطبيق نفسه.
Optionally, select Cost Management>Alerts and then + Add to create a new alert for the app.
ضبط تطبيقك
توفر خطة Flex Consumption العديد من الإعدادات التي يمكنك ضبطها لتحسين أداء تطبيقك. يمكن أن يختلف الأداء الفعلي والتكاليف استنادا إلى أنماط حمل العمل الخاصة بالتطبيق وتكوينه. على سبيل المثال، يمكن أن تحسن أحجام مثيلات الذاكرة الأعلى أداء العمليات كثيفة الذاكرة ولكن بتكلفة أعلى لكل فترة نشطة.
فيما يلي بعض التعديلات التي يمكنك إجراؤها لضبط الأداء مقابل التكلفة:
- ضبط إعدادات التزامن لزيادة معدل النقل لكل مثيل.
- اختر حجم الذاكرة المناسب لحمل العمل الخاص بك. تكلف أحجام الذاكرة الأعلى أكثر ولكن يمكن أن تحسن الأداء.