البدء السريع: إنشاء أول وظيفة C# في Azure باستخدام Visual Studio

تتيح لك Azure Functions استخدام Visual Studio لإنشاء مشاريع وظائف C# محلية ثم نشر هذا المشروع بسهولة للتشغيل في بيئة بلا خادم قابلة للتطوير في Azure. إذا كنت تفضل تطوير تطبيقات C# محلياً باستخدام Visual Studio Code، يجب عليك بدلاً من ذلك مراعاة الإصدار المستند إلى Visual Studio Code من هذه المقالة.

بشكل افتراضي، توضح لك هذه المقالة كيفية إنشاء وظائف C# التي تعمل على .NET 8 في عملية عامل معزولة. يتم دعم تطبيقات الوظائف التي تعمل في عملية عامل معزولة على جميع إصدارات .NET التي تدعمها الوظائف. لمزيد من المعلومات، راجع الإصدارات المدعومة.

في هذه المقالة، ستتعرف على كيفية:

  • استخدام Visual Studio لإنشاء مشروع مكتبة فئات C#‎.
  • إنشاء وظيفة تستجيب لطلبات HTTP.
  • شغل التعليمات البرمجية محليًا للتحقق من سلوك الوظيفة.
  • نشر مشروع التعليمات البرمجية إلى وظائف Azure.

يتطلب إكمال هذا التشغيل السريع تكلفة صغيرة تبلغ بضعة سنتات أمريكية أو أقل في حساب Azure الخاص بك.

يوضح لك هذا الفيديو كيفية إنشاء دالة C# في Azure.

يتم أيضا وصف الخطوات الواردة في الفيديو في الأقسام التالية.

المتطلبات الأساسية

إنشاء مشروع تطبيق دالة

ينشئ قالب مشروع Azure Functions في Visual Studio مشروع مكتبة فئة C# الذي يمكنك نشره في تطبيق دالة ما «function app» في Azure. يمكنك استخدام أحد تطبيقات الدالة لتجميع الدوال في وحدة منطقية لتيسير إدارة الموارد ونشرها وتحجيمها ومشاركتها.

  1. من قائمة Visual Studio، حدد ملف>جديد>مشروع.

  2. في إنشاء مشروع جديد، أدخل الدالات في مربع البحث، واختر قالب دالات Azure، ثم حدد التالي.

  3. في تكوين مشروعك الجديد، أدخل اسم مشروع لمشروعك، ثم حدد التالي. يجب أن يكون اسم تطبيق الدالة صالحًا لمساحة الاسم في C#، لذا لا تستخدم تسطيرات سفلية أو واصلات أو أي أحرف أخرى غير أبجدية رقمية.

  4. بالنسبة لإعدادات المعلومات الإضافية المتبقية،

    الإعداد قيمة ‏‏الوصف
    عامل الوظائف .NET 8.0 معزول (دعم طويل الأجل) تعمل وظائفك على .NET 8 في عملية عامل معزولة.
    دالة مشغل HTTP تنشئ هذه القيمة دالة مشغلة بواسطة طلب HTTP.
    استخدام Azurite لحساب تخزين وقت التشغيل (AzureWebJobsStorage) تمكين يُخصص حساب تخزين أو يُنشأ عند نشر المشروع على Azure لأن تطبيق الدالة في Azure يشترط توفره. مشغل HTTP لا يستخدم سلسلة اتصال حساب Azure Storage، بينما يلزم جميع أنواع المشغلات الأخرى سلسلة اتصال صالحة لحساب Azure Storage. عند تحديد هذا الخيار، يتم استخدام محاكي Azurite.
    مستوى التخويل المجهول يمكن تشغيل الدالة المنشأة بواسطة أي عميل بدون توفير مفتاح. وإعداد التخويل هذا يسهّل من اختبار الدالة الجديدة. لمزيد من المعلومات حول المفاتيح والتخويل، راجع مفاتيح التخويل وروابط HTTP وwebhook.

    Screenshot of Azure Functions project settings.

    تأكد من تعيين مستوى التخويل إلى مجهول. إذا اخترت المستوى الافتراضي للدالة، فسيطلب منك تقديم مفتاح الدالة في طلبات الوصول إلى نقطة نهاية الدالة في Azure.

  5. حدد Create لإنشاء مشروع الدالة ودالة مشغل HTTP.

ينشئ Visual Studio مشروعًا وفئة تحتوي على رمز متداول لنوع دالة مشغل HTTP. يرسل رمز المتداول استجابة HTTP يتضمن قيمة من نص الطلب أو سلسلة الاستعلام. HttpTrigger تحدد السمة أن الدالة يتم تشغيلها بواسطة طلب HTTP.

إعادة تسمية الدالة

Functionسمة الأسلوب بتعيين اسم الدالة التي يتم إنشاؤها بشكل افتراضي ك Function1. نظرًا لأن الأداة لا تسمح لك بتجاوز اسم الدالة الافتراضية عند إنشاء المشروع الخاص بك، خذ دقيقة لإنشاء اسم أفضل لفئة الدالة، الملف، وبيانات التعريف.

  1. في مستكشف الملفات، انقر بزر الماوس الأيمن فوق ملف Function1.cs وأعد تسميته إلى HttpExample.cs.

  2. في التعليمات البرمجية، أعد تسمية فئة Function1 إلى HttpExample.

  3. في الأسلوب المسمى Run، أعد تسمية سمة Function الأسلوب إلى HttpExample.

يجب أن يبدو تعريف الدالة الآن مثل التعليمة البرمجية التالية:

[Function("HttpExample")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.AuthLevelValue, "get", "post")] HttpRequest req)
{
    return new OkObjectResult("Welcome to Azure Functions!");
}

والآن بعد أن قمت بإعادة تسمية الدالة، يمكنك اختبارها على الكمبيوتر المحلي.

تشغيل الدالة محليًا

Visual Studio يتكامل مع Azure Functions Core Tools بحيث يمكنك اختبار الوظائف محليًا باستخدام وقت تشغيل Azure Functions الكاملة.

  1. لتشغيل الدالة، اضغط على F5 في Visual Studio. قد تحتاج إلى تمكين استثناء جدار حماية حيث يتسنى للأدوات معالجة طلبات HTTP. لا تُفرض مستويات التخويل مطلقًا عند تشغيل دالة محليًا.

  2. يُرجى نسخ عنوان URL الخاص بدالتك من إخراج وقت التشغيل في Azure Functions.

    Azure local runtime

  3. الصق عنوان URL لطلب HTTP في شريط عناوين المستعرض وقم بتشغيل الطلب. تعرض الصورة التالية الاستجابة في المتصفح لطلب GET المحلي الذي أرجعته الدالة:

    Function localhost response in the browser

  4. لإيقاف تصحيح الأخطاء، اضغط على Shift+F5 في Visual Studio.

بعد التحقق من عمل الدالة بشكل صحيح على جهاز الحاسوب المحلي، حان الوقت لنشر المشروع على Azure.

كيفية نشر المشروع إلى Azure

يمكن لـ Visual Studio نشر مشروعك المحلي إلى Azure. قبل أن تتمكن من نشر مشروعك، يجب أن يكون لديك تطبيق دالة في اشتراكك على Azure. إذا لم يكن لديك بالفعل تطبيق وظائف في Azure، فإن نشر Visual Studio ينشئ تطبيقاً لك في المرة الأولى التي تنشر فيها مشروعك. في هذه المقالة، يمكنك إنشاء تطبيق دالة وموارد Azure ذات الصلة.

  1. فيمستكشف الحلول، انقر بزر الماوس الأيمن فوق المشروع وحددنشر. في Target، اخترAzure ثم Next.

    Screenshot of publish window.

  2. اختر Azure Function App (Windows) لـ الهدف المحدد لإنشاء تطبيق الوظائف الذي يتم تشغيله على Windows، ثم اختر Next.

    Screenshot of publish window with specific target.

  3. في Function Instance، اختر Create a new Azure Function...

    Screenshot of create a new function app instance.

  4. إنشاء مثيل جديد باستخدام القيم المحددة في الجدول التالي:

    الإعداد قيمة ‏‏الوصف
    الاسم اسم فريد عالميًا الاسم الذي يعرّف بشكل فريد تطبيق الدالة الجديد الخاص بك. اقبل هذا الاسم أو أدخل اسماً جديداً. الأحرف الصالحة هي: a-z، و0-9، و-.
    الاشتراك اشتراكك اشتراك معرف Azure المطلوب استخدامه. اقبل هذا الاشتراك أو حدد اشتراكاً جديداً من القائمة المنسدلة.
    مجموعة الموارد قم بتسمية مجموعة الموارد لديك مجموعة الموارد التي يتم من خلالها إنشاء تطبيق الوظائف. حدد جديد لإنشاء مجموعة موارد جديدة. يمكنك أيضا اختيار مجموعة موارد موجودة من القائمة المنسدلة.
    Plan Type الاستهلاك‬ عند نشر المشروع إلى تطبيق دالة يعمل في خطة استهلاك، فإنك تدفع فقط مقابل تنفيذ تطبيق الدوال. تتكبد خطط الاستضافة الأخرى تكاليف أعلى.
    Location موقع خدمة التطبيق اختر الموقع في منطقة قريبة منك أو خدمات أخرى تصل دوالك إليها.
    تخزين Azure حساب تخزين للأغراض العامة يكون حساب Azure Storage مطلوبًا حلول وقت تشغيل Functions. حدد جديد لتكوين حساب تخزين للأغراض العامة. كما يمكنك اختيار حساب موجود، والذي يجب أن يفي بمتطلبات حساب التخزين.
    Application Insights مثيل Application Insights يجب تمكين تكامل Application Insights لتطبيق الوظائف الخاص بك. حدد جديد لإنشاء مثيل جديد، إما في مساحة عمل جديدة أو في مساحة عمل Log Analytics موجودة. يمكنك أيضا اختيار مثيل موجود.

    Screenshot of Create App Service dialog.

  5. حدد إنشاء لإنشاء تطبيق وظائف وموارده ذات الصلة في Azure. تظهر حالة إنشاء المورد أسفل يسار النافذة.

  6. في Functions instance، تأكد من تحديد Run from package file. يتم توزيع تطبيق الدالة باستخدام Zip Deploy مع تمكين وضع التشغيل من الحزمة. Zip Deploy هو أسلوب النشر الموصى به لمشروع الوظائف الخاص بك لأداء أفضل.

    Screenshot of Finish profile creation.

  7. حدد إنهاء، وفي صفحة «نشر»، حدد نشر لتوزيع الحزمة التي تحتوي على ملفات المشروع إلى تطبيق الوظائف الجديد في Azure.

    بعد اكتمال التوزيع، يظهر عنوان URL الجذر لتطبيق الدالة في Azure في علامة التبويب نشر.

  8. في علامة التبويب Publish، في قسم Hosting، اختر افتح في مدخل Microsoft Azure. يؤدي هذا إلى فتح مورد Azure لتطبيق الوظائف الجديد في مدخل Microsoft Azure.

    Screenshot of Publish success message.

تحقق من الدالة في Azure

  1. في مدخل Microsoft Azure، يجب أن تكون في صفحة نظرة عامة لتطبيق الوظائف الجديد.

  2. ضمن Functions، حدد دالتك الجديدة المسماة HttpExample، ثم في صفحة الدالة حدد Get function URL ثم أيقونة Copy to clipboard.

  3. في شريط العناوين في المستعرض، الصق عنوان URL الذي نسخته للتو وقم بتشغيل الطلب.

    عنوان URL الذي يستدعي دالة مشغل HTTP الخاص بك يكون بالتنسيق التالي:

    https://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions

  4. انتقل إلى عنوان URL هذا، ثم سترى استجابة في المستعرض لطلب GET البعيد الذي تم إرجاعه بواسطة الدالة، والذي يبدو مثل المثال التالي:

    Function response in the browser

تنظيف الموارد

تشير الموارد في Azure إلى تطبيقات الوظيفة والوظائف وحسابات التخزين وما إلى ذلك. يتم تجميعها في مجموعات الموارد،ويمكنك حذف كل شيء في مجموعة بحذف المجموعة.

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

استخدم الخطوات التالية لحذف تطبيق الوظائف والموارد المرتبطة به لتجنب تكبد أي تكاليف إضافية.

  1. في حوار Visual Studio Publish، في القسم Hosting، حدد Open in Azure portal.

  2. حدد، في صفحة تطبيق الدالة، علامة التبويب "Overview" ثم حدد الارتباط ضمن Resource group.

    Select the resource group to delete from the function app page

  3. في صفحة مجموعة الموارد، راجع قائمة الموارد المدرجة وتحقق من أنها هي التي تريد حذفها.

  4. حدد حذف مجموعة الموارد، واتبع الإرشادات.

    قد يستغرق الحذف دقيقتين. عند الانتهاء من ذلك، يظهر تنبيه لبضع ثوان. يمكنك أيضا تحديد رمز الجرس في أعلى الصفحة لعرض التنبيه.

الخطوات التالية

في هذه البداية السريعة، استخدمت Visual Studio لإنشاء ونشر تطبيق وظيفة C# في Azure باستخدام وظيفة تشغيل HTTP بسيطة.

لمعرفة المزيد حول العمل مع وظائف C# التي تعمل في عملية عامل معزولة، راجع دليل تشغيل وظائف C# Azure في عملية عامل معزولة. تحقق من الإصدارات المعتمدة من .NET للاطلاع على إصدارات أخرى من إصدارات .NET المدعومة في عملية عامل معزولة.

أحرز تقدمًا في المقالة التالية لمعرفة كيفية إضافة ارتباط قائمة انتظار Azure Storage إلى الدالة: