إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
كلما أمكن، أنشئ وتحقق من مشروع كود Azure Functions الخاص بك في بيئة تطوير محلية. باستخدام أدوات Azure Functions الأساسية، تحصل على نسخة تشغيل محلية من Azure Functions تتكامل مع أدوات التطوير الشهيرة لتطوير متكامل وتصحيح ونشر متكامل. يمكن لوظائفك المحلية حتى الاتصال بخدمات Azure المباشرة.
توفر هذه المقالة بعض الإرشادات المشتركة للتنمية المحلية، مثل العمل مع ملفlocal.settings.json. وهو يرتبط أيضا بتوجيهات خاصة بالبيئة الإنمائية.
Tip
للحصول على معلومات مفصلة حول كيفية تطوير الوظائف محليا، راجع مقالات الإرشاد الخاصة ببيئة تطوير البيئة المرتبطة بها.
بيئات التطويرالمحلية
طريقة تطوير الوظائف على حاسوبك المحلي تعتمد على تفضيلاتك في اللغة والأدوات. اختر لغتك المفضلة في أعلى المقال.
Tip
تعتمد جميع التطويرات المحلية على Azure Functions Core Tools لتوفير وقت تشغيل الوظائف لتصحيح الأخطاء في بيئة محلية.
استخدم هذه البيئات التنموية لبرمجة الوظائف محليا بلغتك المفضلة:
| Environment | Description |
|---|---|
| استوديو مرئي | يتم تضمين أدوات Azure Functions في حمل عمل تطوير Azure في Visual Studio. يمكنك ترجمة ونشر كود وظائف C# الخاص بك على Azure كمكتبة فئات .NET. يتضمن الأدوات الأساسية للاختبار المحلي. لمعرفة المزيد، راجع إنشاء أول وظيفة C# في Azure باستخدام Visual Studio. |
| Visual Studio Code | يضيف ملحق Azure Functions ل Visual Studio Code دعم الوظائف إلى Visual Studio Code. يتطلب الأدوات الأساسية. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء أول وظيفة باستخدام Visual Studio Code. |
| موجه الأوامر أو المحطة الطرفية | توفر Azure Functions Core Tools وقت التشغيل الأساسي والقوالب لإنشاء الوظائف، والتي تمكن التطوير المحلي. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء دالة C# في Azure من سطر الأوامر. |
| Environment | Description |
|---|---|
| Maven | يستخدم نموذج Maven الأصلي Core Tools لتمكين تطوير وظائف Java. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء دالتك الأولى باستخدام Java وMaven. |
| Visual Studio Code | يضيف ملحق Azure Functions ل Visual Studio Code دعم الوظائف إلى Visual Studio Code. يتطلب الأدوات الأساسية. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء أول وظيفة باستخدام Visual Studio Code. |
| فكرة IntelliJ | يتيح لك النموذج الأصلي ل Maven و Core Tools تطوير وظائفك باستخدام IntelliJ. لمزيد من المعلومات، راجع إنشاء أول دالة Java في Azure باستخدام IntelliJ. |
| Eclipse | يتيح لك النموذج الأصلي ل Maven و Core Tools تطوير وظائفك باستخدام Eclipse. لمعرفة المزيد، راجع إنشاء أول دالة Java في Azure باستخدام Ecplise. |
| Environment | Description |
|---|---|
| Visual Studio Code | يضيف ملحق Azure Functions ل Visual Studio Code دعم الوظائف إلى Visual Studio Code. يتطلب الأدوات الأساسية. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء أول وظيفة باستخدام Visual Studio Code. |
| موجه الأوامر أو المحطة الطرفية | توفر Azure Functions Core Tools وقت التشغيل الأساسي والقوالب لإنشاء الوظائف، والتي تمكن التطوير المحلي. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء وظيفة Node.js في Azure من سطر الأوامر. |
| Environment | Description |
|---|---|
| Visual Studio Code | يضيف ملحق Azure Functions ل Visual Studio Code دعم الوظائف إلى Visual Studio Code. يتطلب الأدوات الأساسية. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء أول وظيفة باستخدام Visual Studio Code. |
| موجه الأوامر أو المحطة الطرفية | توفر Azure Functions Core Tools وقت التشغيل الأساسي والقوالب لإنشاء الوظائف، والتي تمكن التطوير المحلي. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء دالة PowerShell في Azure من سطر الأوامر. |
| Environment | Description |
|---|---|
| Visual Studio Code | يضيف ملحق Azure Functions ل Visual Studio Code دعم الوظائف إلى Visual Studio Code. يتطلب الأدوات الأساسية. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء أول وظيفة باستخدام Visual Studio Code. |
| موجه الأوامر أو المحطة الطرفية | توفر Azure Functions Core Tools وقت التشغيل الأساسي والقوالب لإنشاء الوظائف، والتي تمكن التطوير المحلي. يدعم التطوير على Linux وmacOS وWindows. لمعرفة المزيد، راجع إنشاء دالة Python في Azure من سطر الأوامر. |
تتيح لك كل بيئة من بيئات التطوير المحلية هذه بإمكانية إنشاء مشاريع تطبيق وظيفة واستخدام قوالب وظائف معرفة مسبقًا لإنشاء وظائف جديدة. كل بيئة تستخدم الأدوات الأساسية حتى تتمكن من اختبار وتصحيح وظائفك مقابل وقت تشغيل الوظائف الحقيقية على جهازك الخاص كما تفعل مع أي تطبيق آخر. يمكنك أيضًا نشر مشروع تطبيق الوظيفة من أي من هذه البيئات إلى Azure.
ملفات المشاريع المحلية
يحتوي دليل مشروع Functions على الملفات التالية في المجلد الجذر للمشروع، بغض النظر عن اللغة:
| اسم الملف | Description |
|---|---|
| host.json | لمعرفة المزيد، راجع مرجع host.json. |
| local.settings.json | الإعدادات التي تستخدمها Core Tools عند التشغيل محليا، بما في ذلك إعدادات التطبيقات. لمعرفة المزيد، راجع ملف الإعدادات المحلية. |
| .gitignore | يمنع نشر local.settings.js على الملف بطريق الخطأ إلى مستودع Git. لمعرفة المزيد، راجع ملف الإعدادات المحلية. |
| .vscode\extensions.json | إعدادات الملف المستخدم عند فتح مجلد المشروع في Visual Studio Code. |
تعتمد الملفات الأخرى في المشروع على لغتك ووظائف معينة. لمزيد من المعلومات، راجع دليل المطور للغتك.
ملف الإعدادات المحلية
يخزن local.settings.json الملف إعدادات التطبيق وإعداداته التي تستخدمها أدوات التطوير المحلية. استخدم الإعدادات في local.settings.json الملف فقط عند تشغيل مشروعك محليا. عند نشر مشروعك على Azure، أضف أي إعدادات مطلوبة إلى إعدادات التطبيق الخاص بتطبيق الوظائف.
Important
نظرا لأن الملف local.settings.json قد يحتوي على أسرار مثل سلاسل الاتصال، كن حذرا عند الالتزام به في التحكم المصدري. توفر الأدوات التي تدعم الوظائف طرقا لمزامنة الإعدادات في local.settings.json الملف مع إعدادات التطبيق في تطبيق الوظائف الذي تم نشر مشروعك عليه.
يحتوي الملف على local.settings.json هذه البنية:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<language worker>",
"AzureWebJobsStorage": "<connection-string>",
"MyBindingConnection": "<binding-connection-string>",
"AzureWebJobs.HttpExample.Disabled": "true"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*",
"CORSCredentials": false
},
"ConnectionStrings": {
"SQLConnectionString": "<sqlclient-connection-string>"
}
}
يتم اعتماد هذه الإعدادات عند تشغيل المشاريع محليًا:
| Setting | Description |
|---|---|
IsEncrypted |
عندما يتم تعيين هذا الإعداد على true، يتم تشفير جميع القيم باستخدام مفتاح آلة محلي. يستخدم مع func settings الأوامر. القيمة الافتراضية هي false. قد ترغب في تشفير الملف المحلي.settings.json على الكمبيوتر المحلي عندما يحتوي على أسرار، مثل سلاسل اتصال الخدمة. يقوم المضيف تلقائيًا بفك تشفير الإعدادات عند تشغيله.
func settings decrypt استخدم الأمر قبل محاولة قراءة الإعدادات المشفرة محليا. |
Values |
مجموعة إعدادات التطبيق المستخدمة عند تشغيل مشروع محليًا. تتوافق أزواج قيمة المفتاح هذه (سلسلة سلسلة) مع إعدادات التطبيق في تطبيق الوظائف في Azure، مثل AzureWebJobsStorage. تحتوي العديد من المشغلات والروابط على خاصية تشير إلى إعداد تطبيق سلسلة الاتصال، مثل Connectionمشغل تخزين Blob. لهذه الخصائص، تحتاج إلى إعداد تطبيق معرف في Values الصفيف. راجع الجدول اللاحق للحصول على قائمة بالإعدادات شائعة الاستخدام. يجب أن تكون القيم سلاسل وليس كائنات JSON أو صفائف. لا يمكن أن تتضمن أسماء الإعدادات تسطيرا مزدوجا ( __) ويجب ألا تتضمن نقطتين (:). يتم حجز أحرف التسطير المزدوج حسب وقت التشغيل، ويتم حجز النقطتين لدعم حقن التبعية. |
Host |
تقوم الإعدادات في هذا القسم بتخصيص عملية مضيف الوظائف عند تشغيل المشاريع محليًا. هذه الإعدادات منفصلة عن إعدادات host.json، والتي تنطبق أيضا عند تشغيل المشاريع في Azure. |
LocalHttpPort |
تعيين المنفذ الافتراضي المستخدم عند تشغيل مضيف الوظائف المحلي (func host start و func run).
--port يكون لخيار سطر الأوامر الأسبقية على هذا الإعداد. على سبيل المثال، عند تشغيله في بيئة تطوير Visual Studio، يمكنك تغيير رقم المنفذ عن طريق الانتقال إلى نافذة "خصائص المشروع -> تصحيح" وتحديد رقم المنفذ بشكل صريح في أمر host start --port <your-port-number> يمكن توفيره في حقل "موسيط التطبيق". |
CORS |
يحدد الأصول المسموح بها لمشاركة الموارد عبر المنشأ (CORS). يتم توفير الأصول كقائمة مفصولة بفاصلة بدون مسافات. قيمة البدل (*) مدعومة والتي تسمح بالطلبات من أي أصل. |
CORSCredentials |
عند التعيين إلى true، يسمح بالطلبات withCredentials . |
ConnectionStrings |
مجموعة. لا تستخدم هذه المجموعة لسلاسل الاتصال المستخدمة بواسطة روابط الوظيفة. يتم استخدام هذه المجموعة فقط بواسطة الأطر التي تحصل عادة على سلاسل اتصال من ConnectionStrings قسم ملف التكوين، مثل Entity Framework. تتم إضافة سلاسل الاتصال في هذا الكائن إلى البيئة باستخدام نوع الموفر System.Data.SqlClient. لا يتم نشر العناصر الموجودة في هذه المجموعة إلى Azure مع إعدادات التطبيق الأخرى. يجب إضافة هذه القيم بشكل صريح إلى Connection strings مجموعة إعدادات تطبيق الوظائف. إذا كنت تنشئ a SqlConnection في كود الدالة الخاص بك، قم بتخزين قيمة سلسلة الاتصال مع اتصالاتك الأخرى في إعدادات التطبيق في البوابة. |
يمكن تضمين إعدادات التطبيق التالية في Values الصفيف عند التشغيل محليا:
| Setting | Values | Description |
|---|---|---|
AzureWebJobsStorage |
سلسلة اتصال حساب التخزين، أوUseDevelopmentStorage=true |
يحتوي على سلسلة الاتصال لحساب تخزين Azure. مطلوب عند استخدام مشغلات أخرى غير HTTP. لمزيد من المعلومات، راجع AzureWebJobsStorage المرجع.عندما يكون لديك Azurite Emulator مثبتا محليا وقمت بالتعيين AzureWebJobsStorage على UseDevelopmentStorage=true، تستخدم Core Tools المحاكي. لمزيد من المعلومات، راجع محاكي التخزين المحلي. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true|false |
لتعطيل دالة عند التشغيل محليا، أضف "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" إلى المجموعة، حيث <FUNCTION_NAME> هو اسم الدالة. لمعرفة المزيد، راجع كيفية تعطيل الوظائف في Azure Functions. |
FUNCTIONS_WORKER_RUNTIME |
dotnetdotnet-isolatednodejavapowershellpython |
يشير إلى اللغة المستهدفة من وقت تشغيل الوظائف. مطلوب للإصدار 2.x وأعلى من وقت تشغيل الوظائف. تقوم Core Tools بإنشاء هذا الإعداد لمشروعك. لمعرفة المزيد، راجع FUNCTIONS_WORKER_RUNTIME المرجع. |
FUNCTIONS_WORKER_RUNTIME_VERSION |
~7 |
يشير إلى استخدام PowerShell 7 عند التشغيل محليا. إذا لم يتم التعيين، فسيتم استخدام PowerShell Core 6. يتم استخدام هذا الإعداد فقط عند التشغيل محليًا. يتم، عند التشغيل في Azure، تحديد إصدار وقت التشغيل في PowerShell بواسطة إعداد تكوين الموقع powerShellVersion، والذي يمكن تعيينه في المدخل. |
لمعرفة كيفية استخدام القيم من المصفوفة values كمتغيرات بيئة في التعليمات البرمجية للدالة ، راجع متغيرات البيئة في دليل المطور.
لمعرفة كيفية استخدام القيم من المصفوفة values كمتغيرات بيئة في التعليمات البرمجية للدالة ، راجع متغيرات البيئة في دليل المطور.
لمعرفة كيفية استخدام القيم من المصفوفة values كمتغيرات بيئة في التعليمات البرمجية للدالة ، راجع متغيرات البيئة في دليل المطور.
لمعرفة كيفية استخدام القيم من المصفوفة values كمتغيرات بيئة في التعليمات البرمجية للدالة ، راجع متغيرات البيئة في دليل المطور.
مزامنة الإعدادات
عندما تطور وظائفك محليا، قم بتضمين أي إعدادات محلية مطلوبة من تطبيقك في إعدادات تطبيق الوظيفة الذي تنشر فيه الكود. قد تحتاج أيضا إلى تنزيل الإعدادات الحالية من تطبيق الوظائف إلى مشروعك المحلي. بينما يمكنك تكوين إعدادات التطبيق يدويا في مدخل Microsoft Azure، تتيح لك الأدوات التالية أيضا مزامنة إعدادات التطبيق مع الإعدادات المحلية في مشروعك:
- Visual Studio Code
- استوديو مرئي
- أدوات Azure Functions الأساسية
المشغلات وعمليات الربط
عندما تطور وظائفك محليا، ضع في اعتبارك سلوكيات المحفز والارتباط. بالنسبة لمشغلات HTTP، يمكنك استدعاء نقطة نهاية HTTP على الحاسوب المحلي باستخدام http://localhost/. بالنسبة للوظائف غير التي يتم تفعيلها عبر HTTP، استخدم عدة خيارات للتشغيل محليا:
- يمكنك استخدام سلاسل اتصال تستهدف خدمات Azure الحية لاختبار الروابط أثناء التطوير المحلي. أضف إعدادات سلاسل الاتصال المناسبة في المصفوفة
Valuesفي ملف local.settings.json. عند القيام بذلك، قد تؤثر عمليات التنفيذ المحلية أثناء الاختبار على خدمات الإنتاج الخاصة بك. بدلا من ذلك، فكر في إعداد خدمات مباشرة منفصلة للاستخدام أثناء التطوير والاختبار، ثم التحول إلى خدمات مختلفة أثناء الإنتاج. - بالنسبة للمشغلات القائمة على التخزين، استخدم محاكي تخزين محلي.
- شغل وظائف التفعيل غير التابعة ل HTTP يدويا باستخدام نقاط نهاية مسؤول خاصة بها. لمزيد من المعلومات، راجع تشغيل دالة غير مشغلة على HTTP يدويا.
أثناء الاختبار المحلي، يجب عليك تشغيل المضيف المقدم من Core Tools (func.exe) محليا. لمزيد من المعلومات، راجع Azure Functions Core Tools.
أدوات اختبار HTTP
أثناء التطوير، يمكنك استدعاء أي من نقاط نهاية الوظائف الخاصة بك من متصفح ويب عندما تدعم طريقة HTTP GET. ومع ذلك، بالنسبة لأساليب HTTP الأخرى التي تدعم الحمولات، مثل POST أو PUT، تحتاج إلى استخدام أداة اختبار HTTP لإنشاء طلبات HTTP هذه وإرسالها إلى نقاط نهاية الدالة.
Caution
بالنسبة للسيناريوهات التي يجب أن تتضمن فيها طلباتك بيانات حساسة، تأكد من استخدام أداة تحمي بياناتك وتقلل من خطر تعريض أي بيانات حساسة للجمهور. البيانات الحساسة التي يجب أن تحميها قد تشمل: بيانات الاعتماد، الأسرار، رموز الوصول، مفاتيح واجهة برمجة التطبيقات (API)، بيانات تحديد الموقع الجغرافي، والبيانات الشخصية.
حافظ على أمان بياناتك باختيار أداة اختبار HTTP تعمل إما دون اتصال أو محليا، ولا تزامن بياناتك مع السحابة، ولا تتطلب منك تسجيل الدخول إلى حساب إلكتروني. يمكن لبعض الأدوات أيضا حماية بياناتك من التعرض العرضي من خلال تنفيذ ميزات أمان محددة.
تجنب استخدام الأدوات التي تخزن محفوظات طلبات HTTP مركزيا (بما في ذلك المعلومات الحساسة)، أو لا تتبع أفضل ممارسات الأمان، أو لا تحترم مخاوف خصوصية البيانات.
ضع في اعتبارك استخدام إحدى هذه الأدوات لإرسال طلبات HTTP بأمان إلى نقاط نهاية الدالة:
- كود Visual Studio مع امتداد ملف .http من Visual Studio Marketplace، مثل REST Client
- يدعم فيجوال ستوديوملفات .http، بدءا من الإصدار 17.8
- PowerShell استدعاء RestMethod
- Microsoft Edge - أداة وحدة تحكم الشبكة
- Bruno
- curl
محاكي التخزين المحلي
خلال التطوير المحلي، يمكنك استخدام محاكي Azurite المحلي عند اختبار الوظائف باستخدام روابط Azure Storage (تخزين الطابور، تخزين الكتل، وتخزين الجدول)، دون الحاجة للاتصال بخدمات التخزين البعيدة. يتكامل Azurite مع Visual Studio Code وVisual Studio، ويمكنك أيضا تشغيله من موجه الأوامر باستخدام npm. لمزيد من المعلومات، راجع استخدام محاكي Azurite لتطوير تخزين Azure المحلي.
يخبر الإعداد التالي في Values مجموعة ملف local.settings.json مضيف الوظائف المحلي باستخدام Azurite للاتصال الافتراضي AzureWebJobsStorage :
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
باستخدام قيمة الإعداد هذه، أي مشغل أو ربط تخزين Azure يستخدم AzureWebJobsStorage في أثناء اتصاله ب Azurite عند التشغيل محليا. ضع هذه الاعتبارات في الاعتبار عند استخدام محاكي التخزين أثناء التنفيذ المحلي:
- يجب أن يكون لديك Azurite مثبتا ومشغلا.
- يجب عليك الاختبار باستخدام اتصال تخزين فعلي بخدمات Azure قبل النشر إلى Azure.
- عند نشر مشروعك، لا تنشر
AzureWebJobsStorageالإعداد كUseDevelopmentStorage=true. في Azure،AzureWebJobsStorageيجب أن يكون الإعداد دائما سلسلة الاتصال لحساب التخزين المستخدم من قبل تطبيق الوظائف. لمزيد من المعلومات، انظرAzureWebJobsStorage.
المقالات ذات الصلة
- لمعرفة المزيد حول التطوير المحلي للوظائف باستخدام Visual Studio، راجع تطوير وظائف Azure باستخدام Visual Studio.
- لمعرفة المزيد حول التطوير المحلي للوظائف باستخدام Visual Studio Code على جهاز كمبيوتر Mac أو Linux أو Windows، راجع تطوير وظائف Azure باستخدام Visual Studio Code.
- لمعرفة المزيد حول تطوير الوظائف من موجه الأوامر أو المحطة الطرفية، راجع العمل مع Azure Functions Core Tools.