إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
كلما أمكن، يجب عليك إنشاء مشروع التعليمات البرمجية لوظائف Azure والتحقق من صحته في بيئة تطوير محلية. توفر Azure Functions Core Tools إصدار وقت التشغيل المحلي من Azure Functions الذي يتكامل مع أدوات التطوير الشائعة للتطوير المتكامل وتصحيح الأخطاء والنشرات. يمكن لوظائفك المحلية حتى الاتصال بخدمات Azure المباشرة.
توفر هذه المقالة بعض الإرشادات المشتركة للتنمية المحلية، مثل العمل مع ملفlocal.settings.json. وهو يرتبط أيضا بتوجيهات خاصة بالبيئة الإنمائية.
Tip
يمكنك العثور على معلومات مفصلة حول كيفية تطوير الوظائف محليا في مقالات الإرشادات المرتبطة الخاصة ب IDE.
بيئات التطويرالمحلية
تعتمد الطريقة التي تقوم بها بتطوير الوظائف على الكمبيوتر المحلي على تفضيلات اللغة والأدوات. تأكد من اختيار لغتك المفضلة في أعلى المقالة.
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 | الإعدادات تستخدمها الأدوات الأساسية عند التشغيل محليًا، بما في ذلك إعدادات التطبيق. لمعرفة المزيد، راجع ملف الإعدادات المحلية. |
| .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 IDE على سبيل المثال، تغيير رقم المنفذ بالتنقل إلى نافذة "Project Properties -> Debug" وتحديد رقم المنفذ صراحة في أمر host start --port <your-port-number> يمكن توفيره في حقل "وسائط التطبيق". |
CORS |
يحدد الأصول المسموح بها لمشاركة الموارد عبر المنشأ (CORS). يتم توفير الأصول كقائمة مفصولة بفاصلة بدون مسافات. قيمة البدل (*) مدعومة والتي تسمح بالطلبات من أي أصل. |
CORSCredentials |
عند التعيين إلى true، يسمح بالطلبات withCredentials . |
ConnectionStrings |
مجموعة. لا تستخدم هذه المجموعة لسلاسل الاتصال المستخدمة بواسطة روابط الوظيفة. يتم استخدام هذه المجموعة فقط بواسطة الأطر التي تحصل عادة على سلاسل اتصال من ConnectionStrings قسم ملف التكوين، مثل Entity Framework. تتم إضافة سلاسل الاتصال في هذا الكائن إلى البيئة باستخدام نوع الموفر System.Data.SqlClient. لا يتم نشر العناصر الموجودة في هذه المجموعة إلى Azure مع إعدادات التطبيق الأخرى. يجب إضافة هذه القيم بشكل صريح إلى Connection strings مجموعة إعدادات تطبيق الوظائف. إذا كنت تقوم بإنشاء رمز 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 وأعلى من وقت تشغيل الوظائف. يتم إنشاء هذا الإعداد للمشروع بواسطة الأدوات الأساسية. لمعرفة المزيد، راجع 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
بالنسبة للسيناريوهات التي يجب أن تتضمن فيها طلباتك بيانات حساسة، تأكد من استخدام أداة تحمي بياناتك وتقلل من خطر تعريض أي بيانات حساسة للجمهور. قد تتضمن البيانات الحساسة التي يجب عليك حمايتها: بيانات الاعتماد والأسرار ورمز الوصول المميز ومفاتيح واجهة برمجة التطبيقات وبيانات الموقع الجغرافي وحتى البيانات الشخصية.
يمكنك الحفاظ على أمان بياناتك عن طريق اختيار أداة اختبار HTTP التي تعمل إما دون اتصال أو محليا، ولا تقوم بمزامنة بياناتك مع السحابة، ولا تتطلب تسجيل الدخول إلى حساب عبر الإنترنت. يمكن لبعض الأدوات أيضا حماية بياناتك من التعرض العرضي من خلال تنفيذ ميزات أمان محددة.
تجنب استخدام الأدوات التي تخزن محفوظات طلبات HTTP مركزيا (بما في ذلك المعلومات الحساسة)، أو لا تتبع أفضل ممارسات الأمان، أو لا تحترم مخاوف خصوصية البيانات.
ضع في اعتبارك استخدام إحدى هذه الأدوات لإرسال طلبات HTTP بأمان إلى نقاط نهاية الدالة:
- Visual Studio Code مع ملحق من Visual Studio Marketplace، مثل REST Client
- 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.