مشاركة عبر


إنشاء تطبيقات الوظائف وإدارتها في خطة Flex Consumption

توضح هذه المقالة كيفية إنشاء تطبيقات الوظائف المستضافة في خطة استهلاك Flex في Azure Functions. كما يوضح لك كيفية إدارة ميزات معينة لتطبيق مستضاف لخطة استهلاك Flex.

موارد تطبيق الوظائف خاصة ب langauge. تأكد من اختيار لغة تطوير التعليمات البرمجية المفضلة لديك في بداية المقالة.

Prerequisites

إنشاء تطبيق 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.
  1. إذا لم تكن قد فعلت ذلك بالفعل، سجل الدخول إلى Azure:

    az login
    

    az login يسجل لك الأمر الدخول إلى حساب Azure الخاص بك.

  2. az functionapp list-flexconsumption-locations استخدم الأمر لمراجعة قائمة المناطق التي تدعم استهلاك Flex حاليا بترتيب أبجدي.

    az functionapp list-flexconsumption-locations --query "sort_by(@, &name)[].{Region:name}" -o table
    
  1. إنشاء مجموعة موارد في إحدى المناطق المدعومة حاليا:

    az group create --name <RESOURCE_GROUP> --location <REGION>
    

    في الأمر السابق، استبدل <RESOURCE_GROUP> بقيمة فريدة في اشتراكك وبإحدى <REGION>المناطق المدعومة حاليا. ينشئ الأمر az group create مجموعة موارد.

  2. إنشاء حساب تخزين للأغراض العامة في مجموعة الموارد والمنطقة الخاصة بك:

    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

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

  3. أنشئ تطبيق الدالة في 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 لتحميل ملف حزمة توزيع إلى مشاركة التوزيع لتطبيق الوظائف في 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.

  1. باستخدام أداة التطوير المفضلة لديك، قم بإنشاء مشروع التعليمات البرمجية.

  2. إنشاء ملف .zip يحتوي على إخراج دليل الإنشاء. For more information, see Project structure.

  3. عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام az login الأمر .

    az login
    
  4. az functionapp deployment source config-zip قم بتشغيل الأمر لنشر حزمة التطبيق الموجودة في النسبي <FILE_PATH>.

    az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
    
  1. باستخدام أداة التطوير المفضلة لديك، قم بإنشاء مشروع التعليمات البرمجية.

  2. إنشاء ملف .zip يحتوي على إخراج دليل الإنشاء. For more information, see Folder structure.

  3. عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام az login الأمر .

    az login
    
  4. az functionapp deployment source config-zip قم بتشغيل الأمر لنشر حزمة التطبيق الموجودة في النسبي <FILE_PATH>.

    az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
    
  1. إنشاء ملف .zip يحتوي على الدليل الجذر لمشروع التعليمات البرمجية. For more information, see Folder structure.

  2. عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام az login الأمر .

    az login
    
  3. az functionapp deployment source config-zip قم بتشغيل الأمر لنشر حزمة التطبيق الموجودة في النسبي <FILE_PATH>.

    az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
    
  1. إنشاء ملف .zip يحتوي على الدليل الجذر لمشروع التعليمات البرمجية. For more information, see Folder structure.

  2. عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام az login الأمر .

    az login
    
  3. 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.

  1. إنشاء ملف .zip يحتوي على الدليل الجذر لمشروع التعليمات البرمجية. For more information, see Folder structure.

  2. عند الحاجة، قم بتسجيل الدخول إلى حساب Azure الخاص بك وحدد الاشتراك النشط باستخدام az login الأمر .

    az login
    
  3. 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.

  1. إنشاء مشروع تعليمة برمجية Java عن طريق إكمال الجزء الأول من إحدى مقالات التشغيل السريع هذه:

  2. في مشروع تعليمة 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>
      
  3. (اختياري) قم بتخصيص خطة 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.
  4. قبل أن تتمكن من النشر، سجل الدخول إلى اشتراك Azure باستخدام Azure CLI.

    az login
    

    az login يسجل لك الأمر الدخول إلى حساب Azure الخاص بك.

  5. استخدم الأمر التالي لنشر مشروع التعليمات البرمجية الخاص بك إلى تطبيق وظائف جديد في Flex Consumption.

    mvn azure-functions:deploy
    

    يستخدم Maven الإعدادات في قالب pom.xml لإنشاء تطبيق الوظائف في خطة استهلاك Flex في Azure، جنبا إلى جنب مع الموارد المطلوبة الأخرى. إذا كانت هذه الموارد موجودة بالفعل، يتم نشر التعليمات البرمجية إلى تطبيق الوظائف الخاص بك، والكتابة فوق أي تعليمة برمجية موجودة.

تمكين تكامل الشبكة الظاهرية

يمكنك تمكين تكامل الشبكة الظاهرية لتطبيقك في خطة Flex Consumption. تفترض الأمثلة في هذا القسم أنك قمت بالفعل بإنشاء شبكة ظاهرية مع شبكة فرعية في حسابك. يمكنك تمكين تكامل الشبكة الظاهرية عند إنشاء تطبيقك أو في وقت لاحق.

Important

لا تدعم خطة Flex Consumption حاليا الشبكات الفرعية التي تحتوي على أسماء تحتوي على أحرف تسطير أسفل السطر (_).

لتمكين الشبكات الظاهرية عند إنشاء تطبيقك:

يمكنك تمكين تكامل الشبكة الظاهرية az functionapp create عن طريق تشغيل الأمر وتضمين --vnet المعلمات و --subnet .

  1. إنشاء الشبكة الظاهرية والشبكة الفرعية، إذا لم تكن قد فعلت ذلك بالفعل.

  2. أكمل الخطوات من 1 إلى 4 في إنشاء تطبيق Flex Consumption لإنشاء الموارد المطلوبة من قبل تطبيقك.

  3. 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 مع تكامل الشبكة الظاهرية، راجع هذه الموارد:

لتعديل أو حذف تكامل الشبكة الظاهرية في تطبيق موجود:

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:

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>

يمكنك أيضا تعديل تكوين تخزين التوزيع لتطبيق موجود.

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.

لتعيين حجم ذاكرة مثيل يختلف عن الحجم الافتراضي عند إنشاء تطبيقك:

حدد المعلمة --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

في أي وقت، يمكنك تغيير إعداد حجم ذاكرة المثيل الذي يستخدمه تطبيقك.

يستخدم 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.

لتعريف تعيين مثيل واحد أو أكثر جاهز دائما، استخدم المعلمة --always-ready-instancesaz 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

يمكنك أيضا تعديل المثيلات الجاهزة دائما على تطبيق موجود عن طريق إضافة تعيينات المثيل أو إزالتها أو عن طريق تغيير عدد تعيينات المثيلات الموجودة.

يستخدم 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 لتطبيق موجود:

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:

  1. إذا لم تكن قد فعلت ذلك بالفعل، سجل الدخول إلى Azure:

    az login
    

    az login يسجل لك الأمر الدخول إلى حساب Azure الخاص بك.

  2. 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، يمكنك أيضا إنشاء تنبيهات المقاييس وتثبيت المخططات والتقارير الأخرى في لوحات المعلومات في المدخل.

استخدم هذا البرنامج النصي لإنشاء تقرير بالمقاييس الحالية لتطبيقك:

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.

لعرض التكاليف الحالية:

  1. In your function app page in the Azure portal, select the resource group link.

  2. In the resource group page, select Cost Management>Cost analysis.

  3. راجع التكاليف الحالية ومسار التكلفة للتطبيق نفسه.

  4. Optionally, select Cost Management>Alerts and then + Add to create a new alert for the app.

ضبط تطبيقك

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

فيما يلي بعض التعديلات التي يمكنك إجراؤها لضبط الأداء مقابل التكلفة: