إدارة تطبيق الوظائف الخاص بك

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

يتم نشر الوظائف الفردية في تطبيق وظائف ما معًا ويتم تغيير سعتها معًا. تشترك جميع الوظائف الموجودة في تطبيق الوظائف نفسه في نفس الموارد، لكل مثيل، بينما يتم تغيير سعة تطبيق الوظيفة.

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

بدء تشغيل مدخل Microsoft Azure

إشعار

بسبب القيود المفروضة على تحرير التعليمات البرمجية للدالة في مدخل Microsoft Azure، يجب عليك تطوير وظائفك محليا ونشر مشروع التعليمات البرمجية إلى تطبيق دالة في Azure. لمزيد من المعلومات، راجع قيود التطوير في مدخل Microsoft Azure

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

  2. ضمن Settings الموجود في الجزء الأيسر، حدد Configuration.

    Function app overview in the Azure portal

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

العمل باستخدام إعدادات التطبيق

يمكنك إنشاء أي عدد من إعدادات التطبيق المطلوبة بواسطة التعليمة البرمجية للوظائف الخاصة بك. هناك أيضًا إعدادات تطبيق معرفة مسبقًا يتم استخدامها من قِبل Functions. لمعرفة المزيد، راجع مرجع إعدادات التطبيق الخاصة بـ Azure Functions.

يتم تخزين هذه الإعدادات بهيئة مشفرة. لمعرفة المزيد، راجع أمان إعدادات التطبيق.

يمكن إدارة إعدادات التطبيق من مدخل Microsoft Azure وباستخدام Azure CLI و Azure PowerShell. يمكنك أيضا إدارة إعدادات التطبيق من Visual Studio Code ومن Visual Studio.

للعثور على إعدادات التطبيق، راجع بدء استخدام مدخل Microsoft Azure.

تحافظ علامة التبويب إعدادات التطبيق على الإعدادات التي يستخدمها تطبيق الوظائف الخاص بك. يجب تحديد Show values لرؤية القيم في المدخل. لإضافة إعداد في المدخل، حدد New application setting وأضف زوج قيمة المفاتيح الجديد.

Function app settings in the Azure portal.

استخدام إعدادات التطبيق

يمكن أيضًا قراءة قيم إعدادات تطبيق الدالة في التعليمات البرمجية كمتغيرات البيئة. لمزيدٍ من المعلومات، راجع قسم متغيرات البيئة من هذه المواضيع المرجعية الخاصة باللغة:

عند تطوير تطبيق وظائف محليًا، يجب الاحتفاظ بنسخ محلية من هذه القيم في ملف المشروع settings.json. لمعرفة المزيد، راجع ملف الإعدادات المحلية.

إعدادات نشر FTPS

تدعم Azure Functions نشر التعليمات البرمجية للمشروع إلى تطبيق الوظائف باستخدام FTPS. نظرا لأن أسلوب النشر هذا يتطلب منك مزامنة المشغلات، لا يوصى بهذا الأسلوب. لنقل ملفات المشروع بأمان، استخدم دائما FTPS وليس FTP.

يمكنك الحصول على بيانات الاعتماد المطلوبة لنشر FTPS باستخدام إحدى هذه الطرق:

يمكنك الحصول على بيانات اعتماد نشر FTPS في مدخل Microsoft Azure عن طريق تنزيل ملف تعريف النشر لتطبيق الوظائف الخاص بك.

هام

يحتوي ملف تعريف النشر على بيانات اعتماد أمان مهمة. يجب عليك دائما تأمين الملف الذي تم تنزيله على الكمبيوتر المحلي.

لتنزيل ملف تعريف النشر لتطبيق الوظائف الخاص بك:

  1. حدد صفحة "نظرة عامة" على تطبيق الوظائف، ثم حدد "الحصول على ملف تعريف النشر".

    Download publish profile

  2. قم بحفظ محتويات الملف ونسخها.

  1. في الملف، حدد موقع publishProfile العنصر مع السمة publishMethod="FTP". في هذا العنصر، publishUrluserNameتحتوي السمات و و userPWD على عنوان URL الهدف وبيانات الاعتماد لنشر FTPS.

نوع خطة الاستضافة

عند إنشاء تطبيق وظيفة، فإنك تقوم أيضا بإنشاء خطة استضافة يعمل التطبيق تبعًا لها. يمكن أن تحتوي خطة ما على تطبيق أو أكثر من تطبيقات الوظائف. تعتمد الوظائف، والتحجيم، والأسعار على نوع الخطة. لمعرفة المزيد، راجع خيارات استضافة Azure Functions.

يمكنك تحديد نوع الخطة المستخدمة من قِبل تطبيق الوظائف الخاص بك من مدخل Microsoft Azure، أو باستخدام واجهات سطر الأوامر من Azure أو واجهات برمجة التطبيقات Azure PowerShell.

تشير القيم التالية إلى نوع الخطة:

نوع الخطة المدخل واجهة سطر الأوامر من Azure/PowerShell
الاستهلاك الاستهلاك Dynamic
بريميوم ElasticPremium ElasticPremium
مخصصة (App Service) مختلف مختلف

لتحديد نوع الخطة المستخدمة من قِبل تطبيق الوظائف الخاص بك، راجع خطة App Service في علامة التبويب نظرة عامة بالنسبة لتطبيق الوظائف في مدخل Microsoft Azure. للاطلاع على مستوى التسعير، حدد اسم App Service Planثم حدد Properties من الجزء الأيسر.

View scaling plan in the portal

ترحيل الخطة

يمكنك استخدام إما مدخل Azure أو أوامر Azure CLI لترحيل تطبيق دالة بين خطة Consumption وخطة Premium على Windows. عند الترحيل بين الخطط، ضع في اعتبارك الاعتبارات التالية:

  • الترحيل المباشر إلى خطة مخصصة (App Service) غير مدعوم حاليًا.
  • الترحيل غير مدعوم على Linux.
  • يجب أن تكون خطة المصدر والخطة الهدف في نفس مجموعة الموارد والمنطقة الجغرافية. لمزيد من المعلومات، راجع نقل تطبيق لخطة App Service .
  • تعتمد أوامر CLI المحددة على اتجاه الترحيل.
  • يحدث وقت التعطل في عمليات تنفيذ الوظائف عند ترحيل تطبيق الوظائف بين الخطط.
  • يتم الاحتفاظ بالحالة والمحتوى الآخر الخاص بالتطبيق، حيث يستخدم التطبيق نفس مشاركة ملفات Azure قبل الترحيل وبعده.

الترحيل في المدخل

في مدخل Microsoft Azure، انتقل إلى تطبيق Consumption أو Premium plan واختر Change App Service plan ضمن App Service plan. حدد نوع الخطة الآخر، وأنشئ خطة App Service جديدة من النوع الجديد، وحدد موافق. لمزيد من المعلومات، راجع نقل تطبيق لخطة App Service .

من Consumption إلى Premium

استخدم الإجراء التالي للترحيل من خطة Consumption إلى خطة Premium على Windows:

  1. قم بتشغيل الأمر az functionapp plan create على النحو التالي لإنشاء خطة خدمة تطبيق جديدة (Elastic Premium) في نفس المنطقة ومجموعة الموارد مثل تطبيق الوظيفة الحالي لديك:

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. قم بتشغيل الأمر az functionapp update كما يلي لترحيل تطبيق الوظيفة الحالي إلى خطة Premium الجديدة:

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. إذا لم تعد بحاجة إلى خطة Consumption السابقة الخاصة بتطبيق الوظيفة، فاحذف خطة تطبيق الوظائف الأصلية بعد التأكد من أنك قمت بالترحيل بنجاح إلى الخطة الجديدة. قم بتشغيل الأمر az functionapp plan list على النحو التالي للحصول على قائمة بجميع خطط الاستهلاك في مجموعة الموارد الخاصة بك:

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

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

  4. قم بتشغيل الأمر az functionapp plan delete كما يلي لحذف خطة الاستهلاك التي قمت بالترحيل منها.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

من Premium إلى Consumption

استخدم الإجراء التالي للترحيل من خطة Premium إلى خطة Consumption على Windows:

  1. قم بتشغيل الأمر az functionapp plan create على النحو التالي لإنشاء تطبيق وظيفة جديد (استهلاك) في نفس المنطقة ومجموعة الموارد مثل تطبيق الوظيفة الحالي. ينشئ هذا الأمر أيضا خطة Consumption جديدة يتم تشغيل تطبيق الوظائف فيها.

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. قم بتشغيل الأمر az functionapp plan create على النحو التالي لإنشاء تطبيق وظيفة جديد (استهلاك) في نفس المنطقة ومجموعة الموارد مثل تطبيق الوظيفة الحالي.

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --force
    
  3. قم بتشغيل الأمر az functionapp delete على النحو التالي لحذف تطبيق الوظيفة الذي أنشأته في الخطوة 1، نظرًا لأنك تحتاج فقط إلى الخطة التي تم إنشاؤها لتشغيل تطبيق الوظيفة الحالي.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. إذا لم تعد بحاجة إلى خطة Premium السابقة الخاصة بتطبيق الوظيفة، فاحذف خطة تطبيق الوظائف الأصلية بعد التأكد من أنك قمت بالترحيل بنجاح إلى الخطة الجديدة. حتى يتم حذف الخطة المميزة، يستمر تحصيل الرسوم منك. قم بتشغيل الأمر az functionapp plan list على النحو التالي للحصول على قائمة بجميع خطط Premium في مجموعة الموارد الخاصة بك.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. قم بتشغيل الأمر az functionapp plan delete كما يلي لحذف خطة Premium التي قمت بالترحيل منها.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

الحصول على مفاتيح الوصول إلى الوظائف

يمكن استدعاء الوظائف التي يتم تشغيلها بواسطة HTTP بشكل عام باستخدام عنوان URL بالتنسيق: https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. عند تعيين التخويل إلى الوظيفة الخاصة بك إلى قيمة أخرى غير anonymous، يجب عليك أيضًا توفير مفتاح اختصار في الطلب الخاص بك. يمكن توفير مفتاح الاختصار إما في URL باستخدام سلسلة الاستعلام ?code= أو في عنوان الطلب. لمعرفة المزيد، راجع مفاتيح الاختصار الخاصة بالوظيفة. توجد عدة طرق للحصول على مفاتيح الاختصار الخاصة بك.

  1. قم بتسجيل الدخول إلى مدخل Microsoft Azure، ثم ابحث عن تطبيق الوظائف وحدده.

  2. حدد الوظيفة التي ترغب في التحقق من صحتها.

  3. في جزء التنقل الأيمن ضمن الوظائف، حدد مفاتيح التطبيق.

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

يمكنك أيضا ممارسة أقل امتياز باستخدام المفتاح فقط لمفتاح وظيفة محددة عن طريق تحديد Function keys ضمن Developer في الوظيفة التي يتم تشغيلها بواسطة HTTP.

قيود التطوير في مدخل Microsoft Azure

يجب مراعاة هذه القيود عند تطوير وظائفك في مدخل Microsoft Azure:

  • يتم دعم التحرير في المدخل فقط لوظائف JavaScript وPowerShell وPython وC# Script.
  • يتم دعم تحرير Python في المدخل فقط عند التشغيل في خطة الاستهلاك.
  • التحرير في المدخل مدعوم حاليا فقط للوظائف التي تم إنشاؤها أو آخر تعديل في المدخل.
  • عند نشر التعليمات البرمجية إلى تطبيق دالة من خارج المدخل، لم يعد بإمكانك تحرير أي من التعليمات البرمجية لتطبيق الوظائف هذا في المدخل. في هذه الحالة، ما عليك سوى الاستمرار في استخدام التطوير المحلي.
  • بالنسبة إلى وظائف C# المحولة برمجيا ووظائف Java وبعض وظائف Python، يمكنك إنشاء تطبيق الوظائف والموارد ذات الصلة في المدخل. ومع ذلك، يجب إنشاء مشروع التعليمات البرمجية للوظائف محليا ثم نشره إلى Azure.

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

تثبيت الملحقات يدويا

يمكن أن تتضمن دوال مكتبة الفئة C# حزم NuGet لملحقات الربط مباشرة في مشروع مكتبة الفئة. بالنسبة للغات non-.NET الأخرى والبرنامج النصي C#، يجب استخدام حزم الملحقات. إذا كان يجب تثبيت الملحقات يدويا، يمكنك القيام بذلك باستخدام Azure Functions Core Tools محليا. إذا لم تتمكن من استخدام حزم الملحقات وكنت قادرا فقط على العمل في المدخل، فأنت بحاجة إلى استخدام أدوات متقدمة (Kudu) لإنشاء ملف extensions.csproj يدويا مباشرة في الموقع. تأكد أولا من إزالة extensionBundle العنصر من ملف host.json.

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

هام

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

يتيح لك محرر الوظائف المضمن في مدخل Microsoft Azure تحديث التعليمات البرمجية للدالة وملفات التكوين مباشرة في المدخل.

  1. حدد تطبيق الدوال، ثم ضمن دوال حدد دوال.
  2. اختر دالتك وحدد اختبار + تعليمة برمجية ضمن مطور.
  3. اختر الملف لتحريره وحدد حفظ عند الانتهاء.

يجب إنشاء الملفات الموجودة في جذر التطبيق، مثل function.proj أو extensions.csproj وتحريرها باستخدام أدوات متقدمة (Kudu).

  1. حدد تطبيق الدوال، ثم ضمن أدوات التطوير، حدد أدوات متقدمة>انتقال.

  2. إذا طلب منك ذلك، فسجل الدخول إلى موقع SCM باستخدام بيانات اعتماد Azure.

  3. من قائمة وحدة تحكم تتبع الأخطاء، اختر CMD.

  4. انتقل إلى .\site\wwwroot، وحدد زر زائد (+) في الأعلى، وحدد ملف جديد.

  5. قم بتسمية الملف، مثل extensions.csproj واضغط على دخول.

  6. حدد زر التحرير بجوار الملف الجديد، وأضف التعليمات البرمجية أو حدثها في الملف، وحدد حفظ.

  7. بالنسبة إلى ملف مشروع مثل extensions.csproj، قم بتشغيل الأمر التالي لإعادة إنشاء مشروع الملحقات:

    dotnet build extensions.csproj
    

ميزات النظام الأساسي

تعمل تطبيقات الوظائف في النظام الأساسي Azure App Service كما يقوم بالاحتفاظ بها. على هذا النحو، تتمتع تطبيقات الوظائف الخاصة بك بالوصول إلى معظم ميزات النظام الأساسي لاستضافة الويب الأساسي في Azure. عند العمل في مدخل Microsoft Azure، فإن الجزء الأيمن هو المكان الذي يمكنك من خلاله الوصول إلى العديد من ميزات النظام الأساسي لخدمة التطبيقات التي يمكنك استخدامها في تطبيقات الدوال الخاصة بك.

تشير المصفوفة التالية إلى دعم ميزة المدخل من خلال خطة الاستضافة ونظام التشغيل:

ميزة خطة الاستهلاك الخطة المتميزة الخطة المخصصة
أدوات متقدمة (Kudu) Windows: ✔
Linux: X
محرر App Service Windows: ✔
Linux: X
Windows: ✔
Linux: X
Windows: ✔
Linux: X
النسخ الاحتياطي X X
وحده التحكم Windows: سطر الأوامر
Linux: X
Windows: سطر الأوامر
Linux: SSH
Windows: سطر الأوامر
Linux: SSH

تركز بقية هذه المقالة على الميزات التالية في المدخل والمفيد لتطبيقات الدوال الخاصة بك:

لمزيد من المعلومات حول كيفية العمل باستخدام إعدادات App Service، راجع تكوين إعدادات App Service في Azure.

محرر App Service

The App Service editor

محرر App Service هو محرر متقدم داخل المدخل يمكنك استخدامه لتعديل ملفات تكوين JSON وملفات التعليمات البرمجية على حدٍ سواء. يؤدي اختيار هذا الخيار إلى تشغيل علامة تبويب مستعرض منفصلة تحتوي على محرر أساسي. وهذا يتيح لك التكامل مع مستودع Git وتشغيل التعليمات البرمجية وتتبع أخطائها وتعديل إعدادات تطبيق الوظائف. يوفر هذا المحرر بيئة تطوير محسنة للوظائف الخاصة بك مقارنة مع محرر الوظائف المضمن.

نوصيك بالتفكير في تطوير وظائفك على الكمبيوتر المحلي الخاص بك. عند قيامك بالتطوير المحلي والنشر إلى Azure، تصبح ملفات المشروع الخاصة بك للقراءة فقط في المدخل. لمعرفة المزيد، راجع التعليمات البرمجية واختبار وظائف Azure محليًّا

وحدة تحكم

Function app console

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

عند التطوير محليًا، نوصي باستخدام أدوات الوظائف الأساسية من Azure و واجهة سطر الأوامر من Azure.

أدوات متقدمة (Kudu)

Configure Kudu

توفر الأدوات المتقدمة الخاصة بـ App Service (المعروفة أيضًا باسم Kudu) الوصول إلى الميزات الإدارية المتقدمة لتطبيق الوظائف الخاص بك. من Kudu، يمكنك إدارة معلومات النظام، إعدادات التطبيق، متغيرات البيئة، ملحقات الموقع، عناوين HTTP، ومتغيرات الخادم. يمكنك أيضا إطلاق Kudu باستخدام التصفح إلى نقطة نهاية مدير التحكم بالخدمة لتطبيق الوظائف الخاص بك، مثل https://<myfunctionapp>.scm.azurewebsites.net/

مركز التوزيع

عند استخدام حل عنصر تحكم بالتعليمات البرمجية المصدر لتطوير التعليمات البرمجية للوظائف والاحتفاظ بها، يتيح لك مركز النشر إجراء الإنشاء والنشر من عنصر التحكم بالتعليمات البرمجية المصدر. يتم إنشاء المشروع ونشره إلى Azure عند إجراء التحديثات. للحصول على مزيدٍ من المعلومات، راجع تقنيات النشر في Azure Functions.

مشاركة الموارد عبر المنشأ

لمنع تنفيذ التعليمات البرمجية الضارة على العميل، تمنع المستعرضات الحديثة الطلبات الواردة من تطبيقات الويب إلى الموارد التي تعمل في مجال منفصل. تتيح مشاركة الموارد عبر المنشأ (CORS)Access-Control-Allow-Origin لعنوان ما الإعلان عن أي الأصول المسموح لها باستدعاء نقاط النهاية على تطبيق الوظائف الخاص بك.

المدخل

عند تكوين قائمة الأصول المسموح بها لتطبيق الوظائف الخاص بك، تتم إضافة العنوان Access-Control-Allow-Origin تلقائيًا إلى كافة الاستجابات من نقاط نهاية HTTP في تطبيق الوظائف الخاص بك.

Configure function app's CORS list

يتم تجاهل حرف البدل (*) إذا كان هناك إدخال مجال آخر.

استخدم الأمر az functionapp cors add لإضافة مجال إلى قائمة الأصول المسموح بها. يضيف المثال التالي المجال contoso.com:

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

استخدم الأمر az functionapp cors show لسرد الأصول الحالية المسموح بها.

المصادقة

Configure authentication for a function app

عندما تستخدم الوظائف مشغل HTTP، يمكنك طلب أن تتم مصادقة الاستدعاءات أولاً. تدعم App Service مصادقة Microsoft Entra وتسجيل الدخول مع موفري الخدمات الاجتماعية، مثل Facebook وMicrosoft وTwitter. للحصول على تفاصيل حول تكوين موفري مصادقات محددين، راجع نظرة عامة حول مصادقة Azure App Service.

الخطوات التالية