التشغيل السريع: إنشاء تطبيق PowerShell Durable Functions

استخدم Durable Functions، وهي ميزة من ميزات Azure Functions، لكتابة وظائف ذات حالة في بيئة بلا خادم. يمكنك تثبيت Durable Functions عن طريق تثبيت ملحق Azure Functions في Visual Studio Code. يدير الملحق الحالة ونقاط التحقق وإعادة التشغيل في التطبيق الخاص بك.

في هذا التشغيل السريع، يمكنك استخدام ملحق Durable Functions في Visual Studio Code لإنشاء واختبار تطبيق Durable Functions "hello world" محليا في Azure Functions. ينسق تطبيق Durable Functions ويسلاسل معا الاستدعاءات إلى وظائف أخرى. بعد ذلك، يمكنك نشر التعليمات البرمجية للدالة إلى Azure. تتوفر الأدوات التي تستخدمها عبر ملحق Visual Studio Code.

تشغيل تطبيق Durable Functions في Azure.

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

للتشغيل السريع، تحتاج إلى:

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

إنشاء مشروعك المحلي

في هذا القسم، يمكن استخدامVisual Studio Code لإنشاء مشروع Azure Functions محلي.

  1. في Visual Studio Code، حدد F1 (أو حدد Ctrl/Cmd+Shift+P) لفتح لوحة الأوامر. في المطالبة (>)، أدخل ثم حدد Azure Functions: Create New Project.

    لقطة شاشة تعرض الأمر Create a function.

  2. حدد استعراض. في مربع الحوار تحديد مجلد ، انتقل إلى مجلد لاستخدامه لمشروعك، ثم اختر تحديد.

  3. في المطالبات، قم بتوفير المعلومات التالية:

    المطالبة الإجراء ‏‏الوصف
    تحديد لغة لمشروع تطبيق الوظائف حدد PowerShell. إنشاء مشروع وظائف PowerShell محلي.
    تحديد إصدار حدد Azure Functions v4. ترى هذا الخيار فقط عندما لا تكون Core Tools مثبتة بالفعل. في هذه الحالة، يتم تثبيت Core Tools في المرة الأولى التي تقوم فيها بتشغيل التطبيق.
    تحديد قالب للدالة الأولى لمشروعك حدد تخطي في الوقت الحالي.
    تحديد الطريقة التي تريد فتح مشروعك بها حدد فتح في النافذة الحالية. فتح Visual Studio Code في المجلد الذي حددته.

يقوم Visual Studio Code بتثبيت Azure Functions Core Tools إذا كان مطلوبا لإنشاء مشروع. كما أنها تُشنأ مشروعاً لتطبيق دالة في مجلد. يحتوي هذا المشروع على ملفي التكوين host.json وlocal.settings.json.

يتم أيضا إنشاء ملف package.json في المجلد الجذر.

تكوين تطبيق الدالة لاستخدام PowerShell 7

فتح ملف local.settings.json والتأكد من تعيين الإعداد المسمى FUNCTIONS_WORKER_RUNTIME_VERSION على ~7. إذا كان مفقودا أو إذا تم تعيينه إلى قيمة أخرى، فقم بتحديث محتويات الملف.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "powershell",
    "FUNCTIONS_WORKER_RUNTIME_VERSION" : "~7"
  }
}

إنشاء دوالك الخاصة

يحتوي تطبيق Durable Functions الأساسي على ثلاث وظائف:

  • دالة المنسق: سير عمل ينسق دالات أخرى.
  • دالة النشاط: دالة يتم استدعاؤها بواسطة دالة المنسق، وتؤدي العمل، وترجع قيمة اختياريا.
  • دالة العميل: دالة عادية في Azure تبدأ دالة منسق. يستخدم هذا المثال دالة مشغلة من HTTP.

دالة المنسق

استخدم قالب لإنشاء التعليمات البرمجية لتطبيق Durable Functions في مشروعك.

  1. في لوحة الأوامر، أدخل ثم حدد Azure Functions: Create Function.

  2. في المطالبات، قم بتوفير المعلومات التالية:

    المطالبة الإجراء ‏‏الوصف
    تحديد قالب لدالتك أدخل منسق Durable Functions. إنشاء تنسيق تطبيق Durable Functions.
    توفير اسم دالة أدخل HelloOrchestrator. اسم لدالتك الدائمة.

لقد أضفت منسقا لتنسيق وظائف النشاط. فتح HelloOrchestrator/run.ps1 لرؤية دالة المنسق. يستدعي كل استدعاء إلى Cmdlet Invoke-ActivityFunction دالة نشاط تسمى Hello.

بعد ذلك، يمكنك إضافة دالة النشاط المشار إليها Hello .

دالة النشاط

  1. في لوحة الأوامر، أدخل ثم حدد Azure Functions: Create Function.

  2. في المطالبات، قم بتوفير المعلومات التالية:

    المطالبة الإجراء ‏‏الوصف
    تحديد قالب لدالتك حدد Durable Functions activity. إنشاء دالة نشاط.
    توفير اسم دالة أدخل Hello. اسم دالة النشاط الخاص بك.

لقد أضفت دالة Hello النشاط التي يتم استدعاؤها بواسطة المنسق. فتح Hello/run.ps1 للتأكد من أنه يأخذ الاسم كإدخال ويعرض تحية. وظيفة النشاط هي المكان الذي تقوم فيه بتنفيذ إجراءات مثل إجراء استدعاء قاعدة بيانات أو إجراء حساب.

وأخيرا، يمكنك إضافة دالة مشغلة من HTTP تبدأ التنسيق.

دالة العميل (بادئ HTTP)

  1. في لوحة الأوامر، أدخل ثم حدد Azure Functions: Create Function.

  2. في المطالبات، قم بتوفير المعلومات التالية:

    المطالبة الإجراء ‏‏الوصف
    تحديد قالب لدالتك حدد Durable Functions HTTP starter. إنشاء دالة بدء HTTP.
    توفير اسم دالة أدخل HttpStart. اسم دالة النشاط الخاص بك.
    مستوى التخويل حدد مجهول. لأغراض العرض التوضيحي، تسمح هذه القيمة باستدعاء الدالة دون استخدام المصادقة.

لقد أضفت دالة مشغلة من HTTP تبدأ التنسيق. افتح HttpStart/run.ps1 للتحقق من أنه يستخدم Start-NewOrchestration cmdlet لبدء تزامن جديد. ثم يستخدم New-OrchestrationCheckStatusResponse cmdlet لإرجاع استجابة HTTP التي تحتوي على عناوين URL التي يمكن استخدامها لمراقبة التزامن الجديد وإدارته.

لديك الآن تطبيق Durable Functions يمكنك تشغيله محليا ونشره في Azure.

إشعار

الإصدار التالي من تطبيق Durable Functions PowerShell قيد المعاينة الآن. يمكنك تنزيله من معرض PowerShell. تعرف على المزيد حول ذلك وتعرف على كيفية تجربته في الدليل إلى PowerShell SDK المستقل. يمكنك اتباع قسم تثبيت الدليل للحصول على إرشادات متوافقة مع هذا التشغيل السريع لتمكينه.

اختبِر الدالة محليًا

تمنحك Azure Functions Core Tools القدرة على تشغيل مشروع Azure Functions على كمبيوتر التطوير المحلي. تتم مطالبتك بتثبيت هذه الأدوات في المرة الأولى التي تبدأ فيها وظيفة في Visual Studio.

  1. لاختبار الدالة، قم بتعيين نقطة توقف في التعليمات البرمجية لدالة Hello النشاط (في Hello/run.ps1). حدد F5 أو حدد Debug: Start Debugging في لوحة الأوامر لبدء مشروع تطبيق الوظائف. يظهر الإخراج من Core Tools في لوحة المحطة الطرفية.

    إشعار

    لمزيد من المعلومات حول تصحيح الأخطاء، راجع تشخيصات Durable Functions.

  2. تتطلب Durable Functions تشغيل حساب تخزين Azure. عندما يطالبك Visual Studio Code بتحديد حساب تخزين، اختر Select storage account.

    لقطة شاشة تعرض الأمر إنشاء حساب تخزين.

  3. في المطالبات، قم بتوفير المعلومات التالية لإنشاء حساب تخزين جديد في Azure.

    المطالبة الإجراء ‏‏الوصف
    تحديد الاشتراك حدد اسم اشتراكك. اشتراك Azure الخاص بك.
    تحديد حساب تخزين حدد إنشاء حساب تخزين جديد.
    أدخل اسم حساب التخزين الجديد أدخل اسمًا فريدًا. اسم حساب التخزين المراد إنشاؤه.
    تحديد مجموعة موارد أدخل اسمًا فريدًا. اسم مجموعة الموارد المراد إنشاؤها.
    تحديد موقع حدد منطقة Azure. حدد منطقة قريبة منك.
  4. في لوحة المحطة الطرفية، انسخ نقطة نهاية عنوان URL للدالة التي تم تشغيلها من قبل HTTP.

    لقطة شاشة تظهر الإخراج المحلي الخاص بـ Azure.

  5. استخدم أداة مثل Postman أو cURL لإرسال طلب HTTP POST إلى نقطة نهاية URL. استبدال الجزء الأخير باسم دالة المُنسق (HelloOrchestrator). يجب أن يماثل عنوان URL http://localhost:7071/api/orchestrators/HelloOrchestrator.

    الاستجابة هي النتيجة الأولية لدالة HTTP. يتيح لك معرفة أن التزامن الدائم بدأ بنجاح. لا يعرض بعد النتيجة النهائية للتنسيق. تتضمن الاستجابة بعض عناوين URL المفيدة. في الوقت الحالي، استعلم عن حالة التنسيق.

  6. انسخ قيمة عنوان URL في statusQueryGetUri والصقها في شريط عناوين المتصفح ونفذ الطلب. بدلاً من ذلك، يمكن أيضًا الاستمرار في استخدام Postman لإصدار طلب GET.

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

    {
        "name": "HelloOrchestrator",
        "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
            "Hello Tokyo!",
            "Hello Seattle!",
            "Hello London!"
        ],
        "createdTime": "2020-03-18T21:54:49Z",
        "lastUpdatedTime": "2020-03-18T21:54:54Z"
    }
    
  7. لإيقاف تصحيح الأخطاء، في Visual Studio Code، حدد Shift+F5.

بعد التحقق من تشغيل الدالة بشكل صحيح على الكمبيوتر المحلي، حان الوقت لنشر المشروع إلى Azure.

تسجيل الدخول إلى Azure

قبل أن تتمكن من إنشاء موارد Azure أو نشر تطبيقك، يجب عليك تسجيل الدخول إلى Azure.

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

    لقطة شاشة لتسجيل الدخول إلى نافذة Azure في Visual Studio Code.

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

  2. عند مطالبتك في المستعرض، حدد حساب Azure الخاص بك وسجل الدخول باستخدام بيانات اعتماد حساب Azure. في حال إنشاء حساب جديد، يمكنك تسجيل الدخول بعد إنشاء حسابك.

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

إنشاء تطبيق الوظائف في Azure

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

  1. في Visual Studio Code، حدد F1 لفتح لوحة الأوامر. في المطالبة (>)، أدخل ثم حدد Azure Functions: Create Function App في Azure.

  2. في المطالبات، قم بتوفير المعلومات التالية:

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

    في لوحة Azure: Activity Log ، يعرض ملحق Azure حالة الموارد الفردية عند إنشائها في Azure.

    لقطة شاشة تعرض سجل إنشاء موارد Azure.

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

    • مجموعة الموارد، وهي حاوية منطقية للموارد ذات الصلة.
    • حساب التخزين بخدمة Azure: هو مورد تخزين يحتفظ بالحالة ومعلومات أخرى حول المشروع.
    • تطبيق الوظيفة، الذي يوفر البيئة لتنفيذ التعليمة البرمجية للوظيفة. يتيح لك تطبيق الوظيفة تجميع الوظائف كوحدة منطقية لإدارة الموارد وتوزيعها ومشاركتها بشكل أسهل مع نفس خطة المضيف.
    • خطة Azure App Service، والتي تحدد المضيف الأساسي لتطبيق الوظائف الخاص بك.
    • مثيل Application Insights المتصل بتطبيق الوظائف، والذي يتتبع استخدام وظائفك في التطبيق.

    يعرض تنبيه بعد إنشاء تطبيق الوظيفة وتطبيق حزمة التوزيع.

    تلميح

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

نشر المشروع في Azure

هام

يستبدل التوزيع إلى تطبيق وظائف موجود دائمًا محتويات هذا التطبيق في Azure.

  1. في لوحة الأوامر، أدخل ثم حدد Azure Functions: Deploy to Function App.

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

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

    لقطة شاشة تظهر نافذة View Output

اختبر الدالة في Azure

  1. انسخ عنوان URL لمشغل HTTP من لوحة الإخراج. يجب أن يكون عنوان URL الذي يستدعي الدالة التي تم تشغيلها من قبل HTTP بهذا التنسيق:

    https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator

  2. الصق عنوان URL الجديد لطلب HTTP في شريط عناوين المستعرض. عند استخدام التطبيق المنشور، يمكنك توقع الحصول على نفس استجابة الحالة التي حصلت عليها عند الاختبار محليا.

تطبيق PowerShell Durable Functions الذي قمت بإنشائه ونشره باستخدام Visual Studio Code جاهز للاستخدام.

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

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