Aktivace funkce Azure pomocí události GitHubu
Díky události GitHubu Gollum můžete naslouchat aktualizacím wikiwebu. Když dojde k této události, aktivuje se funkce Azure HttpTrigger a datovou část můžete analyzovat a načíst a zpracovat odeslaná data.
Ukázali jste oddělení IT, že můžete poslouchat události Gollum v úložišti GitHub vaší společnosti nastavením webhooku. Ukázali jste také, jak vám aplikace Azure Function umožňují spouštět kód, když funkce obdrží požadavek webhooku.
V této lekci prozkoumáme datovou část z události Gollum , abychom mohli aktualizovat naši funkci, abychom ji správně parsovali.
Datová část události Gollum
Datová část pro událost Gollum obsahuje následující položky:
- stránky , které byly aktualizovány. Každá stránka obsahuje následující informace:
page_name
Název stránkytitle
Název aktuální stránkyaction
Akce provedená na stránce – vytvořená nebo upravenáhtml_url
Stránka wikiwebu HTML
- informace o úložišti obsahujícím stránku wikiwebu, včetně:
name
Název úložiště.owner
Podrobnosti o vlastníkovi úložiště.html_url
Adresa úložiště.
- informace o uživateli, který vyvolal událost, která způsobila vyvolání webhooku.
Datová část může například vypadat jako následující kód.
"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": "..."
...
}
Tyto informace se předají jako text požadavku HTTP POST. Abychom mohli tyto informace správně analyzovat a zpracovávat, budeme muset aktualizovat logiku funkce.
Parsování informací z události Gollum
Připomeňme si, že webhook se spustí, když nastane určitá událost. Webhook pak odešle požadavek na adresu URL, kde je kód Azure Functions nastavený tak, aby naslouchal, pomocí adresy URL pro vaši funkci. Datová část se předá do funkce Azure. Vaše funkce může analyzovat tělo požadavku a extrahovat pole z datové části a provést příslušné akce.
Následující příklad načte název úložiště z datové části. Typ události je k dispozici v hlavičce požadavku x-github-event. Tato data jsou výstupem následující odpovědi funkce.
if (req.body.repository.name){
context.res = {
body: "Repository is: " + req.body.repository.name + ", Event Type is: " + req.headers['x-github-event']
};
}
V dalším cvičení aktualizujeme kód funkce, abychom mohli zpracovat příchozí událost Gollum .