إدارة تطبيق الوظائف الخاص بك
في Azure Functions، يوفر تطبيق الوظائف سياق التنفيذ للوظائف الفردية الخاصة بك. تنطبق سلوكيات تطبيق الوظيفة على جميع الوظائف التي يستضيفها تطبيق وظائف معين. يجب أن تكون جميع الوظائف الموجودة في تطبيق وظائف ما بنفس اللغة.
يتم نشر الوظائف الفردية في تطبيق وظائف ما معًا ويتم تغيير سعتها معًا. تشترك جميع الوظائف الموجودة في تطبيق الوظائف نفسه في نفس الموارد، لكل مثيل، بينما يتم تغيير سعة تطبيق الوظيفة.
يتم تحديد سلاسل الاتصال ومتغيرات البيئة والإعدادات الأخرى للتطبيق بشكل منفصل لكل تطبيق وظائف. يجب تخزين أي بيانات يجب مشاركتها بين تطبيقات الوظائف خارجيًا في مخزن مستمر.
بدء تشغيل مدخل Microsoft Azure
للبدء في العمل، انتقل إلى مدخل Microsoft Azure، وقم بتسجيل الدخول إلى حساب Azure. في شريط البحث الموجود أعلى المدخل، قم بإدخال اسم تطبيق الوظائف الخاص بك وحدده من القائمة.
ضمن Settings الموجود في الجزء الأيسر، حدد Configuration.
يمكنك الانتقال إلى كل ما تحتاجه لإدارة تطبيق الوظائف من صفحة النظرة العامة، ولا سيما إعدادات التطبيق و ميزات النظام الأساسي .
العمل باستخدام إعدادات التطبيق
يمكنك إنشاء أي عدد من إعدادات التطبيق المطلوبة بواسطة التعليمة البرمجية للوظائف الخاصة بك. هناك أيضًا إعدادات تطبيق معرفة مسبقًا يتم استخدامها من قِبل Functions. لمعرفة المزيد، راجع مرجع إعدادات التطبيق الخاصة بـ Azure Functions.
يتم تخزين هذه الإعدادات بهيئة مشفرة. لمعرفة المزيد، راجع أمان إعدادات التطبيق.
يمكن إدارة إعدادات التطبيق من مدخل Microsoft Azure وباستخدام Azure CLI و Azure PowerShell. يمكنك أيضا إدارة إعدادات التطبيق من Visual Studio Code ومن Visual Studio.
للعثور على إعدادات التطبيق، راجع بدء استخدام مدخل Microsoft Azure.
تحافظ علامة التبويب إعدادات التطبيق على الإعدادات التي يستخدمها تطبيق الوظائف الخاص بك. يجب تحديد Show values لرؤية القيم في المدخل. لإضافة إعداد في المدخل، حدد New application setting وأضف زوج قيمة المفاتيح الجديد.

استخدام إعدادات التطبيق
يمكن أيضًا قراءة قيم إعدادات تطبيق الدالة في التعليمات البرمجية كمتغيرات البيئة. لمزيدٍ من المعلومات، راجع قسم متغيرات البيئة من هذه المواضيع المرجعية الخاصة باللغة:
- C# مرحلة ما قبل التحويل البرمجي
- برنامج C# النصي (.csx)
- البرنامج النصي F# (.fsx)
- Java
- JavaScript
- PowerShell
- Python
عند تطوير تطبيق وظائف محليًا، يجب الاحتفاظ بنسخ محلية من هذه القيم في ملف المشروع settings.json. لمعرفة المزيد، راجع ملف الإعدادات المحلية.
نوع خطة الاستضافة
عند إنشاء تطبيق وظيفة، فإنك تقوم أيضا بإنشاء خطة استضافة يعمل التطبيق تبعًا لها. يمكن أن تحتوي خطة ما على تطبيق أو أكثر من تطبيقات الوظائف. تعتمد الوظائف، والتحجيم، والأسعار على نوع الخطة. لمعرفة المزيد، راجع خيارات استضافة Azure Functions.
يمكنك تحديد نوع الخطة المستخدمة من قِبل تطبيق الوظائف الخاص بك من مدخل Microsoft Azure، أو باستخدام واجهات سطر الأوامر من Azure أو واجهات برمجة التطبيقات Azure PowerShell.
تشير القيم التالية إلى نوع الخطة:
| نوع الخطة | المدخل | واجهة سطر الأوامر من Azure/PowerShell |
|---|---|---|
| Consumption | Consumption | Dynamic |
| مميزة | ElasticPremium | ElasticPremium |
| مخصصة (App Service) | مختلف | مختلف |
لتحديد نوع الخطة المستخدمة من قِبل تطبيق الوظائف الخاص بك، راجع خطة App Service في علامة التبويب نظرة عامة بالنسبة لتطبيق الوظائف في مدخل Microsoft Azure. للاطلاع على مستوى التسعير، حدد اسم App Service Planثم حدد Properties من الجزء الأيسر.

ترحيل الخطة
يمكنك استخدام أوامر واجهة سطر الأوامر من Azure لترحيل تطبيق وظائف بين خطة Consumption وخطة Premium على Windows. تعتمد الأوامر المحددة على اتجاه الترحيل. الترحيل المباشر إلى خطة مخصصة (App Service) غير مدعوم حاليًا.
هذه الهجرة غير مدعومة على Linux.
من Consumption إلى Premium
استخدم الإجراء التالي للترحيل من خطة Consumption إلى خطة Premium على Windows:
قم بتشغيل الأمر az functionapp plan create كما يلي لإنشاء خطة App Service جديدة (Elastic Premium) في نفس المنطقة ومجموعة الموارد مثل تطبيق الوظائف الحالي:
az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1قم بتشغيل الأمر az functionapp update كما يلي لترحيل تطبيق الوظائف الموجود إلى خطة Premium الجديدة:
az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>إذا لم تعد بحاجة إلى خطة Consumption السابقة الخاصة بتطبيق الوظيفة، فاحذف خطة تطبيق الوظائف الأصلية بعد التأكد من أنك قمت بالترحيل بنجاح إلى الخطة الجديدة. قم بتشغيل الأمر az functionapp plan list كما يلي للحصول على قائمة بجميع خطط الاستهلاك في مجموعة الموارد الخاصة بك:
az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o tableيمكنك حذف الخطة بأمان باستخدام المواقع الصفرية، وهي المواقع التي قمت بالترحيل منها.
قم بتشغيل الأمر az functionapp plan delete كما يلي لحذف خطة Consumption التي قمت بالترحيل منها.
az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
من Premium إلى Consumption
استخدم الإجراء التالي للترحيل من خطة Premium إلى خطة Consumption على Windows:
قم بتشغيل الأمر az functionapp plan create كما يلي لإنشاء تطبيق دالة جديد (Consumption) في نفس المنطقة ومجموعة الموارد مثل تطبيق الوظائف الحالي. ينشئ هذا الأمر أيضا خطة 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>قم بتشغيل الأمر az functionapp update كما يلي لترحيل تطبيق الوظائف الموجود إلى خطة Consumption الجديدة.
az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --forceقم بتشغيل الأمر az functionapp delete كما يلي لحذف تطبيق الوظائف الذي أنشأته في الخطوة 1، حيث تحتاج فقط إلى الخطة التي تم إنشاؤها لتشغيل تطبيق الوظائف الموجود.
az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>إذا لم تعد بحاجة إلى خطة Premium السابقة الخاصة بتطبيق الوظيفة، فاحذف خطة تطبيق الوظائف الأصلية بعد التأكد من أنك قمت بالترحيل بنجاح إلى الخطة الجديدة. يرجى ملاحظة أنه إذا لم يتم حذف الخطة، ستظل تدفع رسومًا على الخطة 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قم بتشغيل الأمر 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= أو في عنوان الطلب. لمعرفة المزيد، راجع مفاتيح الاختصار الخاصة بالوظيفة. هناك عدة طرق للحصول على مفاتيح الوصول الخاصة بك.
قم بتسجيل الدخول إلى مدخل Microsoft Azure، ثم ابحث عن تطبيق الوظائف وحدده.
حدد الوظيفة التي ترغب في التحقق من صحتها.
في جزء التنقل الأيمن ضمن الوظائف، حدد مفاتيح التطبيق.
يؤدي ذلك إلى إرجاع مفاتيح المضيف، والتي يمكن استخدامها للوصول إلى أي وظيفة موجودة في التطبيق. كما أنه يقوم بإرجاع مفتاح النظام، الذي يمنح أي شخص حق الوصول على مستوى المسؤول إلى جميع واجهات برمجة التطبيقات الخاصة بتطبيق الوظائف.
يمكنك أيضا ممارسة أقل امتياز باستخدام المفتاح فقط لمفتاح وظيفة محددة عن طريق تحديد Function keys ضمن Developer في الوظيفة التي يتم تشغيلها بواسطة HTTP.
تثبيت الملحقات يدويا
يمكن أن تتضمن وظائف مكتبة الفئة C# حزم NuGet لملحقات الربط مباشرة في مشروع مكتبة الفئة. بالنسبة للغات non-.NET الأخرى والبرنامج النصي C#، فإن الطريقة الموصى بها لتثبيت الملحقات هي إما باستخدام حزم الملحقات أو باستخدام Azure Functions Core Tools محليا. إذا لم تتمكن من استخدام حزم الملحقات وكنت قادرا فقط على العمل في المدخل، فأنت بحاجة إلى استخدام Advanced Tools (Kudu) لإنشاء ملف extensions.csproj يدويا مباشرة في الموقع. تأكد أولا من إزالة extensionBundle العنصر من ملف host.json.
تعمل هذه العملية نفسها مع أي ملف آخر تحتاج إلى إضافته إلى تطبيقك.
هام
عندما يكون ذلك ممكنا، يجب عدم تحرير الملفات مباشرة في تطبيق الوظائف في Azure. نوصي بتنزيل ملفات التطبيق محليا، واستخدام Core Tools لتثبيت الملحقات والحزم الأخرى، والتحقق من صحة التغييرات، ثم إعادة نشر تطبيقك باستخدام Core Tools أو إحدى طرق النشر المدعومة الأخرى.
يتيح لك محرر الوظائف المضمن في مدخل Microsoft Azure تحديث التعليمات البرمجية للدالة وملفات التكوين (function.json) مباشرة في المدخل.
- حدد تطبيق الوظائف، ثم ضمن Functions حدد Functions.
- اختر وظيفتك وحدد Code + test ضمن Developer.
- اختر الملف لتحريره وحدد حفظ عند الانتهاء.
يجب إنشاء الملفات الموجودة في جذر التطبيق، مثل function.proj أو extensions.csproj وتحريرها باستخدام Advanced Tools (Kudu).
حدد تطبيق الوظائف، ثم ضمن أدوات التطوير حدد Advanced toolsGo>.
إذا تمت ترقيته، فسجل الدخول إلى موقع SCM باستخدام بيانات اعتماد Azure.
من قائمة وحدة تحكم تتبع الأخطاء ، اختر CMD.
انتقل إلى
.\site\wwwroot، وحدد زر الجمع (+) في الأعلى، وحدد ملف جديد.قم بتسمية الملف، مثل
extensions.csprojواضغط على مفتاح الإدخال Enter.حدد زر التحرير بجوار الملف الجديد، وأضف التعليمات البرمجية أو حدثها في الملف، وحدد حفظ.
بالنسبة إلى ملف مشروع مثل 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

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

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

توفر الأدوات المتقدمة الخاصة بـ App Service (المعروفة أيضًا باسم Kudu) الوصول إلى الميزات الإدارية المتقدمة لتطبيق الوظائف الخاص بك. من Kudu، يمكنك إدارة معلومات النظام، إعدادات التطبيق، متغيرات البيئة، ملحقات الموقع، عناوين HTTP، ومتغيرات الخادم. يمكنك أيضا إطلاق Kudu باستخدام التصفح إلى نقطة نهاية مدير التحكم بالخدمة لتطبيق الوظائف الخاص بك، مثل https://<myfunctionapp>.scm.azurewebsites.net/
مركز التوزيع
عند استخدام حل عنصر تحكم بالتعليمات البرمجية المصدر لتطوير التعليمات البرمجية للوظائف والاحتفاظ بها، يتيح لك مركز النشر إجراء الإنشاء والنشر من عنصر التحكم بالتعليمات البرمجية المصدر. يتم إنشاء المشروع ونشره إلى Azure عند إجراء التحديثات. للحصول على مزيدٍ من المعلومات، راجع تقنيات النشر في Azure Functions.
مشاركة الموارد عبر المصادر (CORS)
لمنع تنفيذ التعليمات البرمجية الضارة على العميل، تمنع المستعرضات الحديثة الطلبات الواردة من تطبيقات الويب إلى الموارد التي تعمل في مجال منفصل. تتيح مشاركة الموارد عبر المنشأ (CORS)Access-Control-Allow-Origin لعنوان ما الإعلان عن أي الأصول المسموح لها باستدعاء نقاط النهاية على تطبيق الوظائف الخاص بك.
المدخل
عند تكوين قائمة الأصول المسموح بها لتطبيق الوظائف الخاص بك، تتم إضافة العنوان Access-Control-Allow-Origin تلقائيًا إلى كافة الاستجابات من نقاط نهاية HTTP في تطبيق الوظائف الخاص بك.

عند استخدام حرف البدل (*)، يتم تجاهل كافة المجالات الأخرى.
استخدم الأمر 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 لسرد الأصول الحالية المسموح بها.
المصادقة

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