Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Webhooky jsou jednoduché zpětné volání HTTP, které poskytují oznámení událostí, když se něco stane ve webové službě. V Azure Logic Apps a Power Automate můžete jako triggery použít webhooky. Aplikace logiky nebo tok naslouchají tomuto trigger a provedou akci, kdykoli se trigger spustí. Tento kurz ukazuje použití webhooku jako triggeru prostřednictvím vlastního konektoru definovaného pomocí specifikace OpenAPI.
Poznámka:
Tento článek používá GitHub jako příklad služby, která může odesílat oznámení prostřednictvím webhooků, ale můžete tyto techniky rozšířit na jakoukoli službu, která umožňuje webhooky.
Požadavky
- Jedno z následujících předplatných:
- Azure, pokud používáte Logic Apps
- Automatizace napájení
- Základní zkušenosti s vytvářením aplikací logiky nebo cloudových toků a vytvářením vlastních konektorů z definic OpenAPI
- Pokud používáte Logic Apps, nejprve vytvořte vlastní konektor Azure Logic Apps.
- Základní znalost webhooků
- Základní pochopení specifikace OpenAPI (dříve známý jako Swagger).
- Účet GitHub.
- Ukázková definice OpenAPI pro tento kurz. Pokud ho ještě nemáte, stáhněte si ho, abyste ho mohli použít v následujících krocích. Jinak musíte vytvořit vlastní definici OpenAPI pro váš webhook.
Povolí se ověřování v GitHub
Rozhraní API webové služby, které odesílá požadavek webhooku do Logic Apps nebo Power Automate, obvykle používá nějakou formu ověřování a GitHub není výjimkou. GitHub podporuje několik typů ověřování. Tento návod používá podrobně odstupňované osobní přístupové tokeny GitHubu.
Pokud jste to ještě neudělali, přejděte na GitHub a přihlaste se.
V pravém horním rohu vyberte svůj profilový obrázek a pak v nabídce vyberte Nastavení.
V nabídce vlevo vyberte Nastavení pro vývojáře.
V části Tokeny PAT vyberte Vyladěné tokeny.
Vyberte tlačítko Generovat nový token a v případě potřeby potvrďte heslo.
Zadejte název tokenu a popis tokenu.
V části Konec platnosti vyberte datum vypršení platnosti tokenu.
V části Přístup k úložišti vyberte Pouze úložiště a vyberte úložiště, ke které chcete udělit přístup.
V části Oprávnění vyberte Přidat oprávnění>Webhooky>pro čtení a zápis.
Vyberte tlačítko Generovat token .
Nový token si poznamenejte. Tento token musíte později použít při přidání konektoru webhooku jako triggeru.
Důležité
K tomuto tokenu nemůžete znovu získat přístup. Zkopírujte ho a vložte ho někam, abyste ho mohli použít později v tomto kurzu.
Definování webhooku v definici OpenAPI
Webhooky implementujete v Logic Apps a Power Automate jako součást vlastního konektoru. Pokud chcete vytvořit konektor, musíte zadat definici OpenAPI, která definuje tvar webhooku. Tento kurz používá staženou ukázkovou definici OpenAPI pro GitHub webhooky.
Pokud chcete vytvořit aktivační událost, ale nemáte definici OpenAPI, ze které by bylo možné vycházet, použijte v průvodci vlastním konektorem uživatelské rozhraní pro aktivační události k definování aktivačních událostí webhooku.
Ukázková definice OpenAPI obsahuje tři části, které jsou důležité pro fungování webhooku:
- Vytvoření webhooku
- Definování příchozího požadavku hooku z rozhraní API webové služby (v tomto příkladu kurzu GitHub)
- Odstranění webhooku
Konektor používá tuto definici OpenAPI k pochopení toho, jak vytvářet, přijímat a odstraňovat webhooky pro úložiště GitHub.
Vytvoření webhooku
Konektor používá rozhraní API webové služby (v našem příkladu GitHub REST API) k vytvoření webhooku na straně webové služby odesláním požadavku HTTP POST na příslušný koncový bod pro vytvoření webhooku dané webové služby (/repos/{owner}/{repo}/hooks v případě GitHubu).
Když pomocí konektoru vytvoříte novou aplikaci logiky nebo tok, odešle konektor požadavek POST do koncového bodu vytvoření webhooku webové služby, jak je definováno v definici OpenAPI konektoru. Odešle na tuto adresu URL také požadavek POST, pokud upravíte trigger aplikace logiky nebo toku. V následující ukázkové konfiguraci cesty OpenAPI obsahuje vlastnost post schéma požadavku na vytvoření webhooku, který se odešle do rozhraní GitHub REST API.
"/repos/{owner}/{repo}/hooks": {
"x-ms-notification-content": {
"description": "Details for Webhook",
"schema": {
"$ref": "#/definitions/WebhookPushResponse"
}
},
"post": {
"description": "Creates a GitHub webhook",
"summary": "Triggers when a PUSH event occurs",
"operationId": "webhook-trigger",
"x-ms-trigger": "single",
"parameters": [
{
"name": "owner",
"in": "path",
"description": "Name of the owner of targeted repository",
"required": true,
"type": "string"
},
{
"name": "repo",
"in": "path",
"description": "Name of the repository",
"required": true,
"type": "string"
},
{
"name": "Request body of webhook",
"in": "body",
"description": "This is the request body of the Webhook",
"schema": {
"$ref": "#/definitions/WebhookRequestBody"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/WebhookCreationResponse"
}
}
}
}
},
Důležité
Vlastnost "x-ms-trigger": "single" je rozšíření schématu, které aplikacím Logic Apps a Power Automate říká, aby tento webhook zobrazily v seznamu dostupných aktivačních událostí v návrháři. Nezapomeňte ho zahrnout.
Definování příchozího požadavku hooku z rozhraní API
Definujte strukturu příchozího požadavku webhooku (oznámení z GitHubu do Logic Apps nebo Power Automate) ve vlastní vlastnosti x-ms-notification-content, jak je znázorněno v předchozí ukázce. Požadavek nemusí obsahovat celý obsah požadavku, jenom části, které chcete použít v aplikaci logiky nebo toku.
Odstranění webhooku
Do definice OpenAPI zahrňte definici pro odstranění webhooku. Logic Apps a Power Automate se pokusí existující webhook odstranit při aktualizaci triggeru nebo při odstranění aplikace logiky nebo toku.
"/repos/{owner}/{repo}/hooks/{hook_Id}": {
"delete": {
"description": "Deletes a Github webhook",
"operationId": "DeleteTrigger",
"parameters": [
{
"name": "owner",
"in": "path",
"description": "Name of the owner of targeted repository",
"required": true,
"type": "string"
},
{
"name": "repo",
"in": "path",
"description": "Name of the repository",
"required": true,
"type": "string"
},
{
"name": "hook_Id",
"in": "path",
"description": "ID of the webhook being deleted",
"required": true,
"type": "string"
}
]
}
},
Pro volání webhooku delete není zahrnuta žádná hlavička. Volání pro odstranění webhooku používá stejné připojení jako konektor.
Důležité
Aby služba Logic Apps nebo Power Automate mohla webhook odstranit, musí rozhraní API webové služby při vytváření webhooku obsahovat hlavičku Location HTTP v odpovědi 201. Hlavička Location by měla obsahovat cestu k webhooku, který se používá s metodou HTTP DELETE. Například hlavička Location obsažená v odpovědi GitHub má tento formát: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>.
Importujte definici OpenAPI
Začněte importem definice OpenAPI pro Logic Apps nebo pro Power Automate.
Importujte definici OpenAPI pro Logic Apps
Přejděte na web Azure Portal a otevřete konektor Logic Apps, který jste vytvořili dříve v tématu Vytvoření vlastního konektoru Azure Logic Apps.
V nabídce konektoru zvolte Konektor Logic Apps, a pak zvolte Upravit.
V části Obecné vyberte Nahrát soubor OpenAPI a pak přejděte na ukázkový soubor OpenAPI, který jste stáhli.
Import definice OpenAPI pro Power Automate
Přejděte na https://make.powerautomate.com/ .
V pravém horním rohu vyberte ikonu ozubeného kola a pak vyberte Vlastní konektory.
Vyberte Vytvořit vlastní konektor a pak vyberte Importovat kolekci Postman.
Zadejte název vlastního konektoru, přejděte na ukázkový soubor OpenAPI, který jste stáhli, a vyberte Připojit.
Parametr Hodnota Název vlastního konektoru "GitHubDemo"
Dokončení vytváření vlastního konektoru
Na stránce Obecné vyberte Pokračovat.
Na stránce Zabezpečení pod možností Typ ověření vyberte Základní ověřování.
V části Základní autentizace zadejte do polí popisků text Uživatelské jméno a Heslo. Tyto popisky se zobrazí, když použijete trigger v aplikaci logiky nebo toku.
V horní části průvodce se ujistěte, že je název nastavený na GitHubDemo, a pak zvolte Vytvořit konektor.
Nyní jste připraveni použít trigger v aplikaci logiky nebo toku, nebo si můžete přečíst o tom, jak vytvořit triggery z uživatelského rozhraní.
Vytvořte spouštěče webhooků v uživatelském rozhraní
V této části se dozvíte, jak vytvořit trigger v uživatelském rozhraní, aniž byste v definici OpenAPI měli definice triggeru. Začněte s výchozí definicí OpenAPI nebo zcela od nuly v průvodci pro vlastní konektor.
Na stránce Obecné nezapomeňte zadat popis a adresu URL.
Parametr Hodnota Popis "GitHub je úložiště zdrojového kódu sociální sítě." URL "api.github.com" Na stránce Zabezpečení nakonfigurujte základní ověřování jako v předchozí části.
Na stránce Definice zvolte Nový trigger a vyplňte popis aktivační události. V tomto příkladu vytváříte spouštěč, který se spustí, když je v repozitáři vytvořen pull request.
Parametr Hodnota Souhrn Aktivuje se, když je ve vybraném úložišti vytvořen požadavek na sloučení Popis Aktivuje se při vytvoření požadavku na sloučení ve vybraném úložišti ID operace "webhook-PR-trigger" Viditelnost "žádné" (informace viz níže) Typ triggeru "Webhook" Vlastnost Viditelnost pro operace a parametry v aplikaci logiky nebo toku má následující možnosti:
- žádné: zobrazuje se normálně v aplikaci logiky nebo toku
- rozšířené: skryté v další nabídce
- interní: skryté pro uživatele
- důležité: vždy se zobrazí nejprve uživateli
Oblast Žádost zobrazuje informace na základě požadavku HTTP na akci. Zvolte Importovat z ukázky.
Definujte požadavek na trigger webhooku a pak vyberte Importovat. Nabízíme vám ukázku pro import (v následující části). Další informace naleznete v tématu Reference rozhraní API GitHub. Logic Apps a Power Automate automaticky přidávají standardní
content-typea bezpečnostní hlavičky, takže je při importu z ukázky nemusíte definovat.
Parametr Hodnota Příkaz "POST" URL "https://api.github.com/repos/{owner}/{repo}/hooks" Tělo Viz níže. { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }Oblast Žádost zobrazuje informace na základě reakce HTTP na akci. Vyberte Přidat výchozí odpověď.
Definujte odpověď pro trigger webhooku a pak vyberte Importovat. Znovu připomínáme, že nabízíme ukázku k importu. Další informace naleznete v tématu Reference rozhraní API GitHub.
{ "action": "opened", "number": 1, "pull_request": { "html_url": "https://github.com/baxterthehacker/public-repo/pull/1", "state": "open", "locked": false, "title": "Update the README with new information", "user": { "login": "baxterthehacker", "type": "User" } } }V oblasti Konfigurace triggeru vyberte parametr, který má přijmout hodnotu URL zpětného volání z GitHub. Tento parametr je
urlvlastnost v objektuconfig.
V horní části průvodce zadejte název a pak zvolte Vytvořit konektor.
Použití webhooku jako triggeru
Jakmile všechno nakonfigurujete, použijte webhook prostřednictvím vlastního konektoru v aplikaci logiky nebo toku. Dále vytvořte tok, který odešle e-mail pokaždé, když vaše GitHub úložiště obdrží git push.
V https://make.powerautomate.com/horní části stránky vyberte Moje toky.
Vyberte Vytvořit z prázdného.
V návrháři pro Power Automate vyhledejte vlastní konektor, který jste zaregistrovali dříve.
Vyberte položku v seznamu, kterou chcete použít jako trigger.
Vzhledem k tomu, že jste tento vlastní konektor použili poprvé, připojte se k němu. Zadejte informace o připojení a pak vyberte Vytvořit.
Parametr Hodnota Název připojení Popisné jméno Uživatelské jméno Vaše uživatelské jméno GitHubu Heslo Jako heslo použijte osobní přístupový token, který jste si vytvořili. Zadejte podrobnosti o úložišti, které chcete monitorovat. Možná poznáváte pole z objektu WebhookRequestBody v souboru OpenAPI.
Parametr Hodnota vlastník Vlastník úložiště k monitorování úložiště Repozitář pro monitorování Důležité
Použijte úložiště, ke kterému má váš účet práva. Nejjednodušší způsob, jak to udělat, je použít vlastní úložiště.
Vyberte Nový krok>Přidat akci.
Vyhledejte a vyberte akci Odeslat e-mail (V2).
Do pole Text a další pole zadejte text pomocí hodnot z dialogového okna dynamického obsahu. Hodnoty pocházejí z objektu WebhookPushResponse v souboru OpenAPI.
V horní části stránky zadejte název toku a klikněte na Vytvořit tok.
Ověření a řešení potíží
Pokud chcete ověřit, že je všechno správně nastavené, vyberte Moje toky a pak výběrem ikony informací vedle nového toku zobrazte historii spuštění:
- Už byste měli vidět alespoň jedno úspěšné spuštění po vytvoření webhooku. Tento běh naznačuje, že webhook byl na straně GitHubu úspěšně vytvořen.
- Pokud se spuštění nezdařilo, projděte si podrobnosti o spuštění a zjistěte, proč selhal. Pokud bylo selhání způsobeno odpovědí
404 Not Found, váš účet na GitHubu pravděpodobně nemá správná oprávnění k vytvoření webhooku v použitém repozitáři.
Souhrn
Pokud jste vše správně nakonfigurovali, budete dostávat push oznámení v mobilní aplikaci Power Automate pokaždé, když ve vybraném úložišti GitHub dojde k příkazu git push. Pomocí předchozího procesu můžete ve svých tocích použít libovolnou službu podporující webhook jako trigger.
Další kroky
- Vytvoření vlastního konektoru pro webové rozhraní API
- Ověřování rozhraní API a konektoru pomocí Microsoft Entra ID
Poskytnutí názorů
Velmi si vážíme vašich názorů na problémy s naší platformou konektorů nebo nových nápadů na funkce. Chcete-li poskytnout zpětnou vazbu, přejděte do části Odeslat problémy nebo získat pomoc s konektory a vyberte typ zpětné vazby.