Упражнение. Активация функции Azure с помощью события GitHub

Завершено

В этом упражнении вы обновите функцию для анализа сведений из полезных данных веб-перехватчика GitHub и отобразите результаты.

Изменение функции для анализа полезных данных веб-перехватчика

  1. На портале Azure перейдите в приложение-функцию, созданное ранее.

  2. На панели приложения-функции в области меню слева в разделе Функции выберите пункт Функции. Появится панель Функции вашего приложения-функции.

  3. Выберите созданный вами триггер HttpTrigger1. Для функции отобразится панель HtttpTrigger1.

  4. В меню навигации слева в разделе Разработчик выберите Код и тестирование. Для функции откроется панель Код и тестирование.

  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. В верхней строке меню выберите Сохранить.

Активация функции Azure с помощью события Gollum

  1. Вернитесь к учетной записи GitHub.

  2. Выберите репозиторий, который используется для этого модуля.

  3. В верхней строке меню выберите Параметры. Появится панель Настройки.

  4. На боковой панели выберите Веб-перехватчики. Отобразится панель Веб-перехватчики.

  5. Нажмите Изменить рядом с веб-перехватчиком. Появится панель Веб-перехватчики/Управление веб-перехватчиком.

  6. Перейдите на вкладку Последние доставки.

  7. Выберите последнюю (верхнюю) запись доставки, нажав кнопку с многоточием (...).

  8. Щелкните Redeliver (Повторно доставить).

  9. В появившемся диалоговом окне Доставлять полезные данные повторно? щелкните Да, повторно доставить эти полезные данные. Это действие имитирует повторное изменение вашей вики-страницы.

  10. Выберите последнюю (верхнюю) запись доставки (повторная доставка), нажав кнопку с многоточием (...).

  11. Выберите вкладку Ответ. Вы увидите, как веб-перехватчик активирует функцию Azure, которая затем анализирует сведения и отправляет ответ наподобие следующего:

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