إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذا التشغيل السريع، يمكنك استخدام Visual Studio Code لإنشاء تطبيق يستجيب للتغييرات في جدول قاعدة بيانات Azure SQL. بعد اختبار التعليمات البرمجية محليا، يمكنك نشرها إلى تطبيق وظائف جديد بلا خادم يعمل في خطة Flex Consumption في Azure Functions.
يستخدم مصدر المشروع ملحق Azure Developer CLI (azd) مع Visual Studio Code لتبسيط تهيئة التعليمات البرمجية للمشروع والتحقق منها محليا، ونشر التعليمات البرمجية الخاصة بك على Azure. يتبع هذا النشر أفضل الممارسات الحالية لتوزيع وظائف Azure الآمنة والقابلة للتطوير.
Important
بينما يدعم جميع اللغات الاستجابة للتغييرات في قاعدة بيانات Azure SQL من قبل كل اللغات، فإن سيناريو البدء السريع هذا يحتوي حاليا فقط على أمثلة ل C# وPython وTypeScript. لإكمال هذه البداية السريعة، اختر إحدى هذه اللغات المدعومة في أعلى المقال.
المتطلبات الأساسية
حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
Visual Studio Code في واحدة من النظم الأساسية المدعومة.
ملحق Azure Functions للمحرر Visual Studio Code. يتطلب هذا الملحق أدوات Azure Functions الأساسية. عندما لا تكون هذه الأداة متوفرة محليا، يحاول الملحق تثبيتها باستخدام مثبت يستند إلى الحزمة. يمكنك أيضا تثبيت حزمة الأدوات الأساسية أو تحديثها عن طريق التشغيل
Azure Functions: Install or Update Azure Functions Core Toolsمن لوحة الأوامر. إذا لم يكن لديك npm أو Homebrew مثبتا على الكمبيوتر المحلي، فيجب عليك بدلا من ذلك تثبيت Core Tools أو تحديثها يدويا.
ملحق #C لـ Visual Studio Code.
-
Node.js 18.x أو أعلى. يمكنك استخدام أمر
node --versionللتحقق من الإصدار الخاص بك.
إصدارات Python التي تدعمها دوال Azure. لمزيد من المعلومات، راجع كيفية تثبيت Python.
- ملحق Azure Developer CLI ل Visual Studio Code.
- ملحق SQL Server (mssql) ل Visual Studio Code.
تهيئة المشروع
يمكنك استخدام الأمر azd init من لوحة الأوامر لإنشاء مشروع تعليمات برمجية Azure Functions محلي من قالب.
في Visual Studio Code، افتح مجلدا أو مساحة عمل تريد إنشاء مشروعك فيها.
اضغط على F1 لفتح لوحة الأوامر، وابحث عن الأمر
Azure Developer CLI (azd): Initialize App (init)وقم بتشغيله، ثم اختر تحديد قالب.عند المطالبة، ابحث عن نطاق .
Azure Functions with SQL Triggers and Bindingsعند المطالبة، أدخل اسم بيئة فريدا، مثل
sqldbchanges.
يقوم هذا الأمر بسحب ملفات المشروع من مستودع القوالب وتهيئة المشروع في المجلد أو مساحة العمل الحالية. في azd، يتم استخدام البيئة للحفاظ على سياق نشر فريد لتطبيقك، ويمكنك تعريف أكثر من سياق واحد. كما أنه جزء من اسم مجموعة الموارد التي تقوم بإنشائها في Azure.
يقوم هذا الأمر بسحب ملفات المشروع من مستودع القوالب وتهيئة المشروع في المجلد أو مساحة العمل الحالية. في azd، يتم استخدام البيئة للحفاظ على سياق نشر فريد لتطبيقك، ويمكنك تعريف أكثر من سياق واحد. كما أنه جزء من اسم مجموعة الموارد التي تقوم بإنشائها في Azure.
يقوم هذا الأمر بسحب ملفات المشروع من مستودع القوالب وتهيئة المشروع في المجلد أو مساحة العمل الحالية. في azd، يتم استخدام البيئة للحفاظ على سياق نشر فريد لتطبيقك، ويمكنك تعريف أكثر من سياق واحد. كما أنه جزء من اسم مجموعة الموارد التي تقوم بإنشائها في Azure.
قبل أن تتمكن من تشغيل تطبيقك محليا، يجب عليك إنشاء الموارد في Azure.
إنشاء موارد Azure
تم تكوين هذا المشروع لاستخدام الأمر azd provision لإنشاء تطبيق دالة في خطة Flex Consumption، إلى جانب موارد Azure الأخرى المطلوبة التي تتبع أفضل الممارسات الحالية.
في Visual Studio Code، اضغط على F1 لفتح لوحة الأوامر، وابحث عن الأمر
Azure Developer CLI (azd): Sign In with Azure Developer CLIوقم بتشغيله، ثم قم بتسجيل الدخول باستخدام حساب Azure الخاص بك.اضغط على F1 لفتح لوحة الأوامر، وابحث عن الأمر
Azure Developer CLI (azd): Provision Azure resources (provision)وقم بتشغيله لإنشاء موارد Azure المطلوبة.عند مطالبتك في نافذة المحطة الطرفية، قم بتوفير معلمات النشر المطلوبة التالية:
المطالبة الوصف حدد اشتراك Azure لاستخدامه حدد الاشتراك الذي تريد إنشاء مواردك فيه. معلمة نشر الموقع منطقة Azure التي يتم فيها إنشاء مجموعة الموارد التي تحتوي على موارد Azure الجديدة. يتم عرض المناطق التي تدعم حاليا خطة استهلاك Flex فقط. معلمة النشر vnetEnabled بينما يدعم القالب إنشاء موارد داخل شبكة ظاهرية، لتبسيط النشر والاختبار، اختر False.
azd provision يستخدم الأمر استجابتك لهذه المطالبات باستخدام ملفات تكوين Bicep لإنشاء موارد Azure المطلوبة وتكوينها، باتباع أحدث الممارسات:
- خطة استهلاك Flex وتطبيق الوظائف
- قاعدة بيانات Azure SQL (الاسم الافتراضي: ToDo)
- Azure Storage (مطلوب) وApplication Insights (مستحسن)
- نهج الوصول والأدوار لحسابك
- اتصالات الخدمة إلى الخدمة باستخدام الهويات المدارة (بدلا من سلسلة الاتصال المخزنة)
تقوم خطافات ما بعد التوفير أيضا بإنشاء ملف local.settings.json ، وهو مطلوب للتشغيل محليا. يحتوي هذا الملف على الإعدادات المطلوبة للاتصال بقاعدة البيانات في Azure.
راجع الكود (اختياري)
يحدد العينة وظيفتين:
| اسم الدالة | ملف التعليمات البرمجية | نوع المشغل | الوصف |
|---|---|---|---|
httptrigger-sql-output |
sql_output_http_trigger.cs | مشغل HTTP | يقبل حمولة JSON منسقة بشكل صحيح ويستخدم ربط إخراج SQL لإدراج الكائن كصف في الجدول ToDo . |
ToDoTrigger |
sql_trigger.cs | مشغل SQL | الاستماع إلى الجدول للتغييرات ToDo على مستوى الصف وإرجاع كائن يمثل الصف الذي تم تغييره. |
يتم تعريف النوع ToDoItem في ToDoItem.cs.
| اسم الدالة | ملف التعليمات البرمجية | نوع المشغل | الوصف |
|---|---|---|---|
http_trigger_sql_output |
function_app.py | مشغل HTTP | يقبل حمولة JSON منسقة بشكل صحيح ويستخدم ربط إخراج SQL لإدراج الكائن كصف في الجدول ToDo . |
httptrigger-sql-output |
sql_trigger_todo | مشغل SQL | الاستماع إلى الجدول للتغييرات ToDo على مستوى الصف وإرجاع كائن يمثل الصف الذي تم تغييره. |
يتم تعريف النوع ToDoItem في todo_item.py.
| اسم الدالة | ملف التعليمات البرمجية | نوع المشغل | الوصف |
|---|---|---|---|
httpTriggerSqlOutput |
sql_output_http_trigger.ts | مشغل HTTP | يقبل حمولة JSON منسقة بشكل صحيح ويستخدم ربط إخراج SQL لإدراج الكائن كصف في الجدول ToDo . |
sqlTriggerToDo |
sql_trigger.ts | مشغل SQL | الاستماع إلى الجدول للتغييرات ToDo على مستوى الصف وإرجاع كائن يمثل الصف الذي تم تغييره. |
يتم تعريف النوع ToDoItem في ToDoItem.ts.
تستخدم كلتا الدالتين متغيرات البيئة على مستوى AZURE_SQL_CONNECTION_STRING_KEY_* التطبيق التي تحدد اتصالا مستندا إلى الهوية بمثيل قاعدة بيانات Azure SQL باستخدام مصادقة معرف Microsoft Entra. يتم إنشاء متغيرات البيئة هذه لك في كل من Azure (إعدادات تطبيق الوظائف) ومحليا (local.settings.json) أثناء العملية azd provision .
الاتصال بقاعدة بيانات SQL
يمكنك استخدام ملحق SQL Server (mssql) ل Visual Studio Code للاتصال بقاعدة البيانات الجديدة. يساعدك هذا الملحق ToDo على إجراء تحديثات في الجدول لتشغيل وظيفة مشغل SQL.
اضغط على F1 وفي لوحة الأوامر ، ابحث عن الأمر
MS SQL: Add Connectionوقم بتشغيله.في مربع الحوار اتصال، قم بتغيير نوع الإدخال إلى استعراض Azure ، ثم قم بتعيين هذه الخيارات المتبقية:
خيار اختار الوصف الخادم مثيل SQL Server الخاص بك بشكل افتراضي، يتم عرض جميع الخوادم التي يمكن الوصول إليها من خلال حساب Azure الخاص بك. استخدم الاشتراكومجموعة المواردوالموقع للمساعدة في تصفية قائمة الخوادم. قاعدة بيانات ToDoقاعدة البيانات التي تم إنشاؤها أثناء عملية التوفير. نوع المصادقة معرِّف Microsoft Entra إذا لم تكن قد قمت بتسجيل الدخول بالفعل، فحدد تسجيل الدخول وسجل الدخول إلى حساب Azure الخاص بك. معرف المستأجر مستأجر الحساب المحدد. إذا كان حسابك يحتوي على أكثر من مستأجر واحد، فاختر المستأجر الصحيح لاشتراكك. حدد اتصال للاتصال بقاعدة البيانات الخاصة بك. يستخدم الاتصال حساب المستخدم المحلي الخاص بك، والذي يتم منحه أذونات المسؤول في خادم الاستضافة ويتم تعيينه
dboفي قاعدة البيانات.في طريقة عرض SQL Server ، حدد موقع الاتصالات وقم بتوسيعها ثم الخادم الجديد في مستكشف SQL Server. قم بتوسيع الجداول وتحقق من
ToDoوجود الجدول. إذا لم يكن موجودا ، فقد تحتاج إلى التشغيلazd provisionمرة أخرى والتحقق من وجود أخطاء.
تشغيل الدالة محليًا
يتكامل Visual Studio Code مع أدوات Azure Functions Core للسماح لك بتشغيل هذا المشروع على كمبيوتر التطوير المحلي قبل النشر إلى تطبيق الوظائف الجديد في Azure.
اضغط على F1 وفي لوحة الأوامر ، ابحث عن الأمر
Azurite: Startوقم بتشغيله.لبدء تشغيل الوظيفة محليا، اضغط على F5 أو أيقونة Run and Debug في شريط النشاط على الجانب الأيمن.
تعرض لوحة Terminal الإخراج من Core Tools. يبدأ تطبيقك في لوحة الوحدة الطرفية ، ويمكنك رؤية اسم الوظيفة التي تعمل محليا.
أثناء تشغيل التطبيق ، يمكنك التحقق من مشغلي الدالة وتصحيحهما.
للتحقق من وظيفة مشغل HTTP التي تكتب إلى ربط إخراج SQL:
انسخ كائن JSON هذا، والذي يمكنك العثور عليه أيضا في
test.httpملف المشروع:{ "id": "11111111-1111-1111-1111-111111111111", "order": 1, "title": "Test Todo Item", "url": "https://example.com", "completed": false }تمثل هذه البيانات صفا تقوم بإدراجه في قاعدة بيانات SQL عند استدعاء نقطة نهاية HTTP. يقوم ربط الإخراج بترجمة كائن البيانات إلى
INSERTعملية في قاعدة البيانات.أثناء تشغيل التطبيق، في طريقة عرض Azure ضمن مساحة العمل، قم بتوسيعوظائف> المحلية.
حدد وظيفة HTTP بزر الماوس الأيمن (أو Ctrl + انقر فوق macOS) ، وحدد تنفيذ الوظيفة الآن ، والصق بيانات JSON المنسوخة ، واضغط على Enter.
تعالج الدالة طلب HTTP وتكتب العنصر إلى قاعدة بيانات SQL المتصلة وتعيد الكائن الذي تم إنشاؤه.
مرة أخرى في مستكشف SQL Server ، حدد
ToDoالجدول بزر الماوس الأيمن (أو Ctrl + انقر فوق macOS) ، واختر تحديد أفضل 1000. عند تنفيذ الاستعلام، فإنه يرجع الصف المدرج أو المحدث.كرر الخطوة 3 وأعد إرسال نفس كائن البيانات بنفس المعرف. هذه المرة، يقوم
UPDATEربط الإخراج بتنفيذ عملية بدلا من الصفINSERTالموجود في قاعدة البيانات وتعديل الصف الموجود في قاعدة البيانات.
عند الانتهاء، اكتب Ctrl+C في المحطة الطرفية لإيقاف عملية الأدوات الأساسية.
نشر في Azure
يمكنك تشغيل azd deploy الأمر من Visual Studio Code لنشر التعليمات البرمجية للمشروع إلى الموارد المتوفرة بالفعل في Azure.
اضغط على F1 لفتح لوحة الأوامر ، وابحث عن الأمر
Azure Developer CLI (azd): Deploy to Azure (deploy)وقم بتشغيله.azd deployيقوم الأمر بحزم التعليمات البرمجية الخاصة بك ونشرها في حاوية النشر. ثم يتم بدء تشغيل التطبيق وتشغيله في الحزمة المنشورة.بعد اكتمال الأمر بنجاح، يتم تشغيل تطبيقك في Azure. قم بتدوين
Endpointالقيمة، وهي عنوان URL لتطبيق الوظائف الذي يعمل في Azure.
استدعاء الدالة في Azure
في Visual Studio Code، اضغط على F1 وفي لوحة الأوامر ابحث عن الأمر
Azure: Open in portalوقم بتشغيله ، وحددFunction app، واختر تطبيقك الجديد. سجل الدخول باستخدام حساب Azure الخاص بك، إذا لزم الأمر.حدد دفق السجل في الجزء الأيمن، الذي يتصل بسجلات Application Insights لتطبيقك.
ارجع إلى Visual Studio Code لتشغيل كلتا الدالتين في Azure.
اضغط على F1 لفتح لوحة الأوامر ، وابحث عن الأمر
Azure Functions: Execute Function Now...وقم بتشغيله.ابحث عن تطبيق الوظائف البعيدة وحدده من القائمة، ثم حدد وظيفة مشغل HTTP.
كما كان من قبل ، الصق بيانات كائن JSON في Enter bodyload واضغط على Enter.
{ "id": "11111111-1111-1111-1111-111111111111", "order": 1, "title": "Test Todo Item", "url": "https://example.com", "completed": false }لتنفيذ قيمة
INSERTGUID بدلا منUPDATE، استبدل قيمةidGUID جديدة.ارجع إلى المدخل واعرض إخراج التنفيذ في نافذة السجل.
تنظيف الموارد
عند الانتهاء من العمل مع تطبيق الوظائف والموارد ذات الصلة، يمكنك استخدام هذا الأمر لحذف تطبيق الوظائف والموارد ذات الصلة من Azure وتجنب تكبد أي تكاليف إضافية:
azd down --no-prompt
Note
يرشد --no-promptazd الخيار إلى حذف مجموعة الموارد الخاصة بك دون تأكيد منك.
لا يؤثر هذا الأمر على مشروع التعليمات البرمجية المحلية.