Wyzwalanie funkcji platformy Azure przy pomocy zdarzenia usługi GitHub
Zdarzenie Gollum usługi GitHub umożliwia nasłuchiwanie pod kątem aktualizacji strony typu wiki. Po wystąpieniu tego zdarzenia funkcja Azure HttpTrigger jest wyzwalana i można przeanalizować ładunek w celu pobrania i przetworzenia wysłanych danych.
Twój dział IT pokazuje, że możesz nasłuchiwać zdarzeń Gollum w repozytorium GitHub firmy, konfigurując element webhook. Pokazano również, jak aplikacje funkcji platformy Azure umożliwiają uruchamianie kodu, gdy funkcja odbiera żądanie elementu webhook.
W tej lekcji przeanalizujemy ładunek ze zdarzenia Gollum , abyśmy mogli zaktualizować naszą funkcję, aby poprawnie ją przeanalizować.
Ładunek zdarzenia Gollum
Ładunek zdarzenia Gollum zawiera następujące elementy:
- strony , które zostały zaktualizowane. Każda strona zawiera następujące informacje:
page_name
Nazwa strony.title
Bieżący tytuł strony.action
Akcja wykonywana na stronie — utworzona lub edytowana.html_url
Strona typu wiki HTML.
- informacje o repozytorium zawierającym stronę typu wiki, w tym:
name
Nazwa repozytorium.owner
Szczegóły właściciela repozytorium.html_url
Adres repozytorium.
- informacje o nadawcy o użytkowniku, który zgłosił zdarzenie, które spowodowało wyzwolenie elementu webhook.
Na przykład ładunek może wyglądać podobnie do poniższego kodu.
"pages": [
{
"page_name": "Home",
"title": "Home",
"summary": null,
"action": "edited",
"sha": "562362bc141b9e2db1fb971e1ecb4fd0b7457f68",
"html_url": "https://github.com/testrepo/Hello-World/wiki/Home"
}
],
"repository": {
...
"name": "testrepo",
...
"owner": {
...
},
"html_url": "https://github.com/...",
...
},
"sender": {
"login": "..."
...
}
Te informacje są przekazywane jako treść żądania HTTP POST. Musimy zaktualizować logikę funkcji, aby przeanalizować i przetworzyć te informacje poprawnie.
Analizowanie informacji ze zdarzenia Gollum
Pamiętaj, że element webhook zostaje uruchomiony po wystąpieniu określonego zdarzenia. Element webhook następnie wysyła żądanie do adresu URL, pod którym skonfigurowano kod usługi Azure Functions do nasłuchiwania przy użyciu adresu URL funkcji. Ładunek jest przekazywany do funkcji platformy Azure. Funkcja może przeanalizować treść żądania w celu wyodrębnienia pól z ładunku i podjąć odpowiednie akcje.
Poniższy przykład pobiera nazwę repozytorium z ładunku. Typ zdarzenia jest dostępny w nagłówku żądania x-github-event. Te dane są danymi wyjściowymi w następującej odpowiedzi funkcji.
if (req.body.repository.name){
context.res = {
body: "Repository is: " + req.body.repository.name + ", Event Type is: " + req.headers['x-github-event']
};
}
W następnym ćwiczeniu zaktualizujemy kod funkcji, aby umożliwić obsługę przychodzącego zdarzenia Gollum .