تمرين - شغّل Azure Function باستخدام حدث GitHub

مكتمل

في هذا التمرين، سنُحدّث دالتك لتحليل المعلومات المُتحصل عليها من حمولة خطاف ويب GitHub، وعرض النتائج.

تحديث وظيفتك لتحليل البيانات الأساسية للإخطار على الويب

  1. في مدخل Microsoft Azure، انتقل إلى تطبيق الوظائف الذي قمت بإنشائه سابقا.

  2. في جزء Function App، في جزء القائمة الأيسر، أسفل Functions، حدد Functions. يظهر جزء Functions من أجل Function App خاصتك.

  3. حدد HttpTrigger1 الذي أنشأته. يظهر جزء HtttpTrigger1 من أجل Function خاصتك.

  4. في جزء القائمة الأيسر، ضمن Developer، حدد Code + Test. يظهر جزء Code + Test من أجل Function خاصتك.

  5. في المسار الموجود أعلى التعليمة البرمجية، من القائمة المنسدلة، حدد index.js. يظهر JavaScript للمشغل الخاص بك.

  6. حدّث التعليمات البرمجية باستبدال الأسطر الثلاثة الأخيرة من التعليمات البرمجية في نص الدالة بالتعليمات البرمجية التالية.

    if (req.body.pages[0].title){
        context.res = {
            body: "Page is " + req.body.pages[0].title + ", Action is " + req.body.pages[0].action + ", Event Type is " + req.headers['x-github-event']
        };
    }
    else {
        context.res = {
            status: 400,
            body: ("Invalid payload for Wiki event")
        };
    }
    

    تسترد هذه التعليمة البرمجية نوع الحدث من عنوان الطلب الرأسي، وحقول العنوان والإجراء من نص الرسالة الأساسي. تُشير هذه المعلومات إلى أن الصفحة قد تغيرت، وما إذا كانت قد عُدلت أو أُنشِأت حديثاً. ثم تقوم التعليمات البرمجية بإنشاء استجابة تلخص الإجراء. إليك ما سيبدو عليه JavaScript:

    module.exports = async function (context, req) {
        context.log('JavaScript HTTP trigger function processed a request.');
    
        const name = (req.query.name || (req.body && req.body.name));
        const responseMessage = name
            ? "Hello, " + name + ". This HTTP triggered function executed successfully."
            : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
    
        if (req.body.pages[0].title){
            context.res = {
                body: "Page is " + req.body.pages[0].title + ", Action is " + req.body.pages[0].action + ", Event Type is " + req.headers['x-github-event']
            };
         }
         else {
            context.res = {
                status: 400,
                body: ("Invalid payload for Wiki event")
            };
        }
    }
    
  7. في شريط القائمة العلوي، حدد "Save".

تشغيل Azure Function الخاصة بك باستخدام حدث GitHub

  1. عُد إلى حسابك في GitHub.

  2. حدد المستودع الذي تستخدمه لهذه الوحدة النمطية.

  3. من شريط القوائم العلوي، حدد Settings. يظهر جزءالإعدادات.

  4. في الشريط الجانبي اختر Webhooks. يظهر جزء Webhooks.

  5. حدد Edit للإخطار على الويب. يظهر الجزء Webhooks/Manage webhook.

  6. اختر علامة التبويب Recent Deliveries.

  7. حدد أحدث إدخال تسليم (العلوي) من خلال تحديد زر علامة الحذف (...).

  8. حدد "Redeliver".

  9. في مربع الحوار Redeliver payload? الذي يظهر، حدد Yes, redeliver this payload. يحُثك هذا الإجراء على تغيير صفحة Wiki الخاصة بك مجدداً.

  10. حدد أحدث إدخال تسليم (العلوي) (إعادة التسليم) من خلال تحديد زر علامة الحذف (...).

  11. حدد علامة التبويب Response. سترى كيف سُيشغل خطاف الويب دالتك، والتي ستُحلل بعد ذلك المعلومات وتُرسل ردًا شبيهًا بالنص التالي:

    Page is Home, Action is edited, Event Type is gollum