إنشاء الوظائف الدائمة باستخدام مدخل Microsoft Azure

يتم توفير ملحق الوظائف الدائمة لوظائف Azure في حزمة NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. يجب تثبيت هذا الملحق في تطبيق الوظائف لديك. توضح هذه المقالة كيفية تثبيت هذه الحزمة بحيث يمكنك تطوير الوظائف الدائمة في مدخل Microsoft Azure.

إشعار

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

يجب أن يكون لديك تطبيق وظائف لاستضافة تنفيذ أي وظيفة. يتيح لك تطبيق الوظائف تجميع وظائفك كوحدة منطقية لتسهيل إدارة الموارد ونشرها وتغيير حجمها ومشاركتها. يمكنك إنشاء تطبيق .NET أو JavaScript.

  1. من قائمة مدخل Azure أو الصفحة الرئيسية، حدد Create a resource.

  2. في صفحة New، قم باختيار Compute>Function App.

  3. ضمن تحديد خيار استضافة، حدد Consumption>Select لإنشاء تطبيقك في خطة الاستهلاك الافتراضية. في خيار الاستضافة بلا خادم هذا، تدفع فقط مقابل الوقت الذي تعمل فيه وظائفك. توفر الخطة المتميزة أيضا تحجيما ديناميكيا. يجب عليك إدارةتحجيم نطاق وظيفة التطبيق الخاصة بك، عندما تقوم بتشغيل خطة App Service.

  4. في صفحة Basics، استخدم إعدادات تطبيق الوظائف على النحو المحدد في الجدول التالي:

    الإعدادات القيمة المقترحة ‏‏الوصف
    الاشتراك اشتراكك الاشتراك الذي تقوم بموجبه بإنشاء تطبيق الوظائف الجديد.
    مجموعة الموارد myResourceGroup اسم مجموعة الموارد الجديدة التي تقوم فيها بإنشاء تطبيق الوظائف. يجب إنشاء مجموعة موارد جديدة بسبب وجود قيود معروفة عند إنشاء تطبيقات وظائف جديدة في مجموعة موارد موجودة.
    اسم تطبيق الوظائف اسم فريد عالميًا الاسم الذي يحدد تطبيق الوظائف الجديد. الأحرف الصالحة هي a-z (غير حساسة لحالة الأحرف)، و0-9، و-.
    مكدس وقت التشغيل اللغة المفضلة اختر وقت تشغيل يدعم لغة برمجة الوظائف المفضلة لك. يتوفر التحرير في المدخل فقط لبرنامج JavaScript وPowerShell وPython وTypeScript وC# النصي.
    لإنشاء تطبيق برنامج نصي C# يدعم التحرير في المدخل، يجب عليك اختيار إصدار وقت التشغيل الذي يدعم النموذج قيد المعالجة.
    يجب تطوير مكتبة فئة C# ووظائف Java محليا.
    ‏‏الإصدار رقم الإصدار اختر إصدار وقت التشغيل المثبت.
    المنطقة المنطقة المفضلة حدد منطقة قريبة منك أو قريبة من الخدمات الأخرى التي تصل دوالك إليها.
    نظام التشغيل Windows يتم تحديد نظام التشغيل مسبقا لك استنادا إلى تحديد مكدس وقت التشغيل، ولكن يمكنك تغيير الإعداد إذا لزم الأمر. يتم اعتماد التحرير في المدخل فقط على نظام Windows.
  5. اقبل الخيارات الافتراضية في علامات التبويب المتبقية، بما في ذلك السلوك الافتراضي لإنشاء حساب تخزين جديد في علامة التبويب Storage ومثيل Application Insight جديد في علامة التبويب Monitoring . يمكنك أيضا اختيار استخدام حساب تخزين موجود أو مثيل Application Insights.

  6. حدد Review + create لمراجعة تكوين التطبيق الذي اخترته، ثم حدد Create لتوفير تطبيق الوظائف ونشره.

  7. قم باختيار رمز Notifications في الزاوية العلوية اليمنى من المدخل وستشاهد رسالة نجح النشر.

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

    لقطة شاشة لإخطار التوزيع.

يستخدم تطبيق الوظائف الذي تم إنشاؤه الإصدار 2.x من وقت تشغيل وظائف Azure بشكل افتراضي. يعمل ملحق الوظائف الدائمة على كلا الإصدارين 1.x و2.x من وقت تشغيل وظائف Azure في C#، والإصدار 2.x في JavaScript. لكن ومع ذلك، تتوفر القوالب فقط عند استهداف الإصدار 2.x من وقت التشغيل بغض النظر عن اللغة المختارة.

تثبيت حزمة durable-functions npm (مع JavaScript فقط)

إذا كنت تقوم بإنشاء وظائف دائمة في JavaScript، فإنك ستحتاج إلى تثبيت durable-functionsحزمة npm:

  1. من صفحة تطبيق الوظائف، حدّد الأدوات المتقدمة أسفل أدوات التطوير في الجزء الأيمن.

    اختيار ميزات النظام الأساسي للوظائف في وحدة التحكم Kudu

  2. في صفحة الأدوات المتقدمة، حدّد انتقال.

  3. من داخل وحدة التحكم Kudu، حدّد وحدة التحكم في تتبع الأخطاء، ثم CMD.

    وحدة Kudu للتحكم في تتبع الأخطاء

  4. يجب عرض بنية دليل ملف تطبيق الوظائف. انتقل إلى مجلد site/wwwroot. من هناك، يمكنك تحميل ملف package.json عن طريق سحبه وإسقاطه في نافذة دليل الملف. فيما يلي مثال على package.json:

    {
      "dependencies": {
        "durable-functions": "^1.3.1"
      }
    }
    

    Kudu upload package.json

  5. بمجرد تحميل package.json، قم بتشغيل الأمر npm install من وحدة Kudu للتحكم في التنفيذ عن بُعد.

    تثبيت npm لتشغيل Kudu

إنشاء وظيفة المزامن

  1. في تطبيق الوظائف لديك، حدّد الوظائف من الجزء الأيمن، ثم حدّد إضافة من القائمة العلوية.

  2. في حقل البحث الموجود في صفحة وظيفة جديدة، أدخل durable، ثم اختر قالب بادئ تشغيل HTTP للوظائف الدائمة.

    بادئ تشغيل HTTP للوظائف الدائمة

  3. بالنسبة إلى اسم الوظيفة الجديدة، أدخل HttpStart، ثم حدّد إنشاء وظيفة.

    يتم استخدام الوظيفة التي تم إنشاؤها لبدء التزامن.

  4. قم بإنشاء وظيفة أخرى في تطبيق الوظائف، باستخدام قالب مزامن الوظائف الدائمة. قم بتسمية وظيفة التزامن الجديدة HelloSequence.

  5. قم بإنشاء وظيفة ثالثة بالاسم Hello باستخدام قالب نشاط الوظائف الدائمة.

اختبار تزامن الوظائف الدائمة

  1. ارجع إلى وظيفة HttpStart، واختر الحصول على عنوان Url للوظيفةوحدّد رمز نسخ إلى الحافظة لنسخ URL. يمكنك استخدام URL هذا لبدء تشغيل الوظيفة HelloSequence.

  2. استخدم أداة اختبار HTTP آمنة لإرسال طلب HTTP POST إلى نقطة نهاية URL. هذا المثال هو أمر cURL يرسل طلب POST إلى الدالة الدائمة:

    curl -X POST https://{your-function-app-name}.azurewebsites.net/api/orchestrators/{functionName} --header "Content-Length: 0"
    

    في هذا المثال، {your-function-app-name} هو المجال الذي يمثل اسم تطبيق الوظيفة الخاص بك، و{functionName} هو وظيفة منسق HelloSequence. تشتمل رسالة الاستجابة على مجموعة من نقاط نهاية URI التي يمكن استخدامها لمراقبة عملية التنفيذ وإدارتها، بحيث يبدو كالمثال التالي:

    {  
       "id":"10585834a930427195479de25e0b952d",
       "statusQueryGetUri":"https://...",
       "sendEventPostUri":"https://...",
       "terminatePostUri":"https://...",
       "rewindPostUri":"https://..."
    }
    

    تأكد من اختيار أداة اختبار HTTP تحافظ على أمان بياناتك. لمزيد من المعلومات، راجع أدوات اختبار HTTP.

  3. قم باستدعاء عنوان URI لنقطة النهاية statusQueryGetUri وسترى الحالة الحالية للوظيفة الدائمة، والتي قد تبدو كالمثال التالي:

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  4. استمر في استدعاء نقطة النهاية statusQueryGetUri حتى تتغير الحالة إلى مكتمل، وسترى استجابة تشبه المثال التالي:

    {
            "runtimeStatus": "Completed",
            "input": null,
            "output": [
                "Hello Tokyo!",
                "Hello Seattle!",
                "Hello London!"
            ],
            "createdTime": "2017-12-01T05:38:22Z",
            "lastUpdatedTime": "2017-12-01T05:38:28Z"
        }
    

ستجد الوظيفة الدائمة الأولى لك جاهزة ومتاحة للاستخدام في Azure.

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