Упражнение. Активация функции Azure с помощью события GitHub
В этом упражнении вы обновите функцию для анализа сведений из полезных данных веб-перехватчика GitHub и отобразите результаты.
Изменение функции для анализа полезных данных веб-перехватчика
На портале Azure перейдите в приложение-функцию, созданное ранее.
На панели приложения-функции в области меню слева в разделе Функции выберите пункт Функции. Появится панель Функции вашего приложения-функции.
Выберите созданный вами триггер HttpTrigger1. Для функции отобразится панель HtttpTrigger1.
В меню навигации слева в разделе Разработчик выберите Код и тестирование. Для функции откроется панель Код и тестирование.
В пути, указанном над кодом, из раскрывающегося списка выберите index.js. Отобразится код JavaScript для триггера.
Обновите код, заменив последние три строки кода в теле функции следующим кодом.
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") }; } }
В верхней строке меню выберите Сохранить.
Активация функции Azure с помощью события Gollum
Вернитесь к учетной записи GitHub.
Выберите репозиторий, который используется для этого модуля.
В верхней строке меню выберите Параметры. Появится панель Настройки.
На боковой панели выберите Веб-перехватчики. Отобразится панель Веб-перехватчики.
Нажмите Изменить рядом с веб-перехватчиком. Появится панель Веб-перехватчики/Управление веб-перехватчиком.
Перейдите на вкладку Последние доставки.
Выберите последнюю (верхнюю) запись доставки, нажав кнопку с многоточием (...).
Щелкните Redeliver (Повторно доставить).
В появившемся диалоговом окне Доставлять полезные данные повторно? щелкните Да, повторно доставить эти полезные данные. Это действие имитирует повторное изменение вашей вики-страницы.
Выберите последнюю (верхнюю) запись доставки (повторная доставка), нажав кнопку с многоточием (...).
Выберите вкладку Ответ. Вы увидите, как веб-перехватчик активирует функцию Azure, которая затем анализирует сведения и отправляет ответ наподобие следующего:
Page is Home, Action is edited, Event Type is gollum