إدارة تطبيق الوظائف الخاص بك
في Azure Functions، يوفر تطبيق الوظائف سياق التنفيذ للوظائف الفردية الخاصة بك. تنطبق سلوكيات تطبيق الوظيفة على جميع الوظائف التي يستضيفها تطبيق وظائف معين. يجب أن تكون جميع الوظائف الموجودة في تطبيق وظائف ما بنفس اللغة.
يتم نشر الوظائف الفردية في تطبيق وظائف ما معًا ويتم تغيير سعتها معًا. تشترك جميع الوظائف الموجودة في تطبيق الوظائف نفسه في نفس الموارد، لكل مثيل، بينما يتم تغيير سعة تطبيق الوظيفة.
يتم تحديد سلاسل الاتصال ومتغيرات البيئة والإعدادات الأخرى للتطبيق بشكل منفصل لكل تطبيق وظائف. يجب تخزين أي بيانات يجب مشاركتها بين تطبيقات الوظائف خارجيًا في مخزن مستمر.
بدء تشغيل مدخل Microsoft Azure
إشعار
بسبب القيود المفروضة على تحرير التعليمات البرمجية للدالة في مدخل Microsoft Azure، يجب عليك تطوير وظائفك محليا ونشر مشروع التعليمات البرمجية إلى تطبيق دالة في Azure. لمزيد من المعلومات، راجع قيود التطوير في مدخل 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# script (.fsx)
- Java
- جافا سكريبت
- بوويرشيل
- Python
عند تطوير تطبيق وظائف محليًا، يجب الاحتفاظ بنسخ محلية من هذه القيم في ملف المشروع settings.json. لمعرفة المزيد، راجع ملف الإعدادات المحلية.
إعدادات نشر FTPS
تدعم Azure Functions نشر التعليمات البرمجية للمشروع إلى تطبيق الوظائف باستخدام FTPS. نظرا لأن أسلوب النشر هذا يتطلب منك مزامنة المشغلات، لا يوصى بهذا الأسلوب. لنقل ملفات المشروع بأمان، استخدم دائما FTPS وليس FTP.
يمكنك الحصول على بيانات الاعتماد المطلوبة لنشر FTPS باستخدام إحدى هذه الطرق:
يمكنك الحصول على بيانات اعتماد نشر FTPS في مدخل Microsoft Azure عن طريق تنزيل ملف تعريف النشر لتطبيق الوظائف الخاص بك.
هام
يحتوي ملف تعريف النشر على بيانات اعتماد أمان مهمة. يجب عليك دائما تأمين الملف الذي تم تنزيله على الكمبيوتر المحلي.
لتنزيل ملف تعريف النشر لتطبيق الوظائف الخاص بك:
حدد صفحة "نظرة عامة" على تطبيق الوظائف، ثم حدد "الحصول على ملف تعريف النشر".
قم بحفظ محتويات الملف ونسخها.
- في الملف، حدد موقع
publishProfile
العنصر مع السمةpublishMethod="FTP"
. في هذا العنصر،publishUrl
userName
تحتوي السمات و و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 من الجزء الأيسر.
ترحيل الخطة
يمكنك استخدام إما مدخل 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:
قم بتشغيل الأمر az functionapp plan create على النحو التالي لإنشاء خطة خدمة تطبيق جديدة (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 كما يلي لحذف خطة الاستهلاك التي قمت بالترحيل منها.
az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
من Premium إلى Consumption
استخدم الإجراء التالي للترحيل من خطة Premium إلى خطة Consumption على Windows:
قم بتشغيل الأمر 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>
قم بتشغيل الأمر az functionapp plan create على النحو التالي لإنشاء تطبيق وظيفة جديد (استهلاك) في نفس المنطقة ومجموعة الموارد مثل تطبيق الوظيفة الحالي.
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 السابقة الخاصة بتطبيق الوظيفة، فاحذف خطة تطبيق الوظائف الأصلية بعد التأكد من أنك قمت بالترحيل بنجاح إلى الخطة الجديدة. حتى يتم حذف الخطة المميزة، يستمر تحصيل الرسوم منك. قم بتشغيل الأمر 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.
قيود التطوير في مدخل 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 تحديث التعليمات البرمجية للدالة وملفات التكوين مباشرة في المدخل.
- حدد تطبيق الدوال، ثم ضمن دوال حدد دوال.
- اختر دالتك وحدد اختبار + تعليمة برمجية ضمن مطور.
- اختر الملف لتحريره وحدد حفظ عند الانتهاء.
يجب إنشاء الملفات الموجودة في جذر التطبيق، مثل function.proj أو extensions.csproj وتحريرها باستخدام أدوات متقدمة (Kudu).
حدد تطبيق الدوال، ثم ضمن أدوات التطوير، حدد أدوات متقدمة>انتقال.
إذا طلب منك ذلك، فسجل الدخول إلى موقع SCM باستخدام بيانات اعتماد Azure.
من قائمة وحدة تحكم تتبع الأخطاء، اختر CMD.
انتقل إلى
.\site\wwwroot
، وحدد زر زائد (+) في الأعلى، وحدد ملف جديد.قم بتسمية الملف، مثل
extensions.csproj
واضغط على دخول.حدد زر التحرير بجوار الملف الجديد، وأضف التعليمات البرمجية أو حدثها في الملف، وحدد حفظ.
بالنسبة إلى ملف مشروع مثل 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)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 مصادقة Microsoft Entra وتسجيل الدخول مع موفري الخدمات الاجتماعية، مثل Facebook وMicrosoft وTwitter. للحصول على تفاصيل حول تكوين موفري مصادقات محددين، راجع نظرة عامة حول مصادقة Azure App Service.