Webhook használata eseményindítóként az Azure Logic Apps szolgáltatáshoz és a Microsoft Power Automate megoldáshoz
A webhookok eseményértesítések biztosításához használt egyszerű HTTP-visszahívások. Az Azure Logic Apps és a Power Automate is lehetővé teszi webhookok eseményindítóként való használatát. Egy logikai alkalmazás vagy folyamat figyeli ezt az eseményindítót, és végrehajt egy műveletet, amikor az eseményindító utasítást ad. Ez az oktatóanyag bemutatja, hogyan használhatók fel a webhookok eseményindítóként.
Megjegyzés
A GitHubot alkalmazzuk az olyan szolgáltatások példájaként, melyek képesek webhookokkal értesítéseket küldeni, de a bemutatott módszerek bármely webhookokat használó szolgáltatásra kiterjeszthetők.
Előfeltételek
- Az alábbi előfizetések egyike:
- Azure ha a Logic Apps-szolgáltatást használja
- Power Automate
- Alapszintű tapasztalat logikai alkalmazások vagy folyamatok , valamint egyéni összekötők létrehozásában.
- Logic Apps használata esetén először hozzon létre egy egyéni Azure Logic Apps-összekötőt.
- A webhookok alapszintű ismerete.
- A specifikáció OpenAPI (korábbi nevén Swagger) alapvető ismerete.
- Egy GitHub-fiók.
- Az oktatóanyag mintadefiníciója OpenAPI .
A OpenAPI meghatározás
A webhookok a Logic Apps és Power Automate egy egyéni összekötő részeként vannak megvalósítva, ezért meg kell adnia egy definíciót, amely meghatározza a webhook alakját OpenAPI . Ha eseményindítót szeretne létrehozni, de nincs definíciója OpenAPI , az egyéni összekötő varázsló eseményindítók felhasználói felületén definiálhatja a webhook-eseményindítókat.
A OpenAPI definíció három részből áll, amelyek kritikusak a webhook működéséhez:
- A webhook létrehozása
- Az API-tól (ebben az esetben a GitHubtól) érkező horogkérelem definiálása.
- A webhook törlése
A webhook létrehozása
A webhookot a GitHub oldalán hozza létre egy, a(z) /repos/{owner}/{repo}/hooks
címre irányuló HTTP POST művelet. Új logikai alkalmazás vagy folyamat létrehozásakor a definícióban meghatározott eseményindítóval OpenAPI teszi közzé ezt az URL-címet. Az eseményindító módosítása esetén is közzétesz az URL-címen. A következőkben a post
tulajdonság tartalmazza a GitHubon közzétett kérés sémáját.
"/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"
}
}
}
}
},
Fontos
Az "x-ms-trigger": "single"
tulajdonság egy sémakiterjesztés, amely megjelenítteti a Logic Appsszel és a Power Automate-tel ezt a webhookot a tervezőben az elérhető eseményindítók listáján, ezért semmiképp se hagyja ki.
Az API-ból érkező hookkérés meghatározása
A bejövő hookkérés alakja (a GitHubról a Logic Apps vagy Power Automate) az egyéni x-ms-notification-content
tulajdonságban van definiálva, ahogy az előző mintában látható. Nem szükséges a kérelem teljes tartalmát magában foglalnia, csak azokat a részeit, amelyeket használni kíván a logikai alkalmazásban vagy folyamatban.
A webhook törlése
A OpenAPI definíciónak tartalmaznia kell a webhook törlésének definícióját . A Logic Apps és a Power Automate akkor kísérli meg törölni a webhookot, ha frissíti az eseményindítót, vagy ha törli a logikai alkalmazást vagy a folyamatot.
"/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 Hook being deleted",
"required": true,
"type": "string"
}
]
}
},
A törlési webhookhíváshoz nem tartalmaz tandíjfejlécet. A webhook törlése híváshoz is ugyanazt a kapcsolatot használja a csatlakozó.
Fontos
Ha azt szeretné, hogy a Logic Apps vagy a Power Automate töröljön egy webhookot, az API-nak tartalmaznia kell egy Location
HTTP-fejlécet a 201-es válaszban a webhook létrehozásakor. A Location
fejlécnek tartalmaznia kell a webhook elérési útját, melyet a HTTP DELETE művelet használ. A GitHub válaszában szereplő Location
fejléc formátuma például a következő: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>
.
Engedélyezze a hitelesítést a GitHub szolgáltatásban
A webhookkérelmet a Logic Appsbe vagy a Power Automate-be küldő API általában használ valamilyen hitelesítést, és ez alól a GitHub sem kivétel. A GitHub többféle hitelesítést támogat; ehhez az oktatóanyaghoz GitHub személyes hozzáférési jogkivonatokat használunk.
Nyissa meg a GitHub webhelyét, és ha még nem tette meg, jelentkezzen be.
A jobb felső sarokban válassza ki a profilképépét, majd a menüben a Beállítások pontot.
A bal oldali menüben a Fejlesztői beállítások között válassza a Személyes hozzáférési jogkivonatok lehetőséget.
Válassza az Új jogkivonat létrehozása gombot, és szükség esetén erősítse meg a jelszavát.
A Token description (Kód leírása) mezőben adjon meg egy leírást.
Jelölje be az admin:repo_hook jelölőnégyzetet.
Válassza a Jogkivonat létrehozása gombot.
Jegyezze fel az új kódot.
Fontos
Ehhez a kódhoz többé nem fog hozzáférni. Másolja és illessze be valahová, hogy az oktatóanyag későbbi részeiben használni tudja.
A definíció importálása OpenAPI
Először importálja a definíciót OpenAPI a Logic Apps vagy a számára Power Automate.
A Logic Apps definíciójának importálása OpenAPI
Lépjen az Azure Portalra, és nyissa meg az Azure Logic Apps egyéni összekötőjének létrehozását ismertető szakaszban korábban létrehozott Logic Apps-összekötőt.
Az összekötő menüjében válassza a Logic Apps csatlakozólehetőséget, majd a Szerkesztés elemet.
Az Általános alatt válassza a Fájl feltöltése lehetőséget OpenAPI , majd navigáljon a letöltött fájlhoz OpenAPI .
A definíció importálása OpenAPI Power Automate
Ugorjon a flow.microsoft.com webhelyre.
A jobb felső sarokban válassza a fogaskerék ikont, majd válassza az Egyéni összekötők lehetőséget.
Válassza az Egyéni összekötő létrehozása, majd a Postman-gyűjtemény importálása lehetőséget.
Adja meg az egyéni összekötő nevét, majd keresse meg a letöltött fájlt, és válassza a OpenAPI Csatlakozás lehetőséget.
Paraméter Érték Egyéni összekötő neve "GitHubDemo"
Az egyéni összekötő létrehozásának befejezése
Az Általános lapon válassza a Folytatás lehetőséget.
A Biztonság lapon, a Hitelesítés típusa területen válassza az Alapvető hitelesítés lehetőséget.
Az Alapszintű hitelesítés szakasz címkemezőibe írja be a Felhasználónév és a Jelszó szöveget. Ezek csak címkék, amelyek akkor jelennek meg, ha az eseményindítót logikai alkalmazásban vagy folyamatban használják.
Ellenőrizze, hogy a varázsló tetején a név GitHubDemo” értékre van-e állítva, majd válassza az Összekötő létrehozása lehetőséget.
Most már készen áll arra, hogy egy logikai alkalmazásban vagy folyamatban használja az eseményindítót, vagy elolvashatja, hogyan hozhat létre eseményindítókat a felhasználói felületről.
Webhook-eseményindítók létrehozása a felhasználói felületen
Ebben a szakaszban bemutatjuk, hogyan hozhat létre eseményindítót a felhasználói felületen anélkül, hogy eseményindító-definíciók lennének a OpenAPI definícióban. Kezdjen egy alapkonfiguráció-definícióval OpenAPI , vagy kezdje teljesen elölről az egyéni összekötő varázslóban.
Az Általános lapon mindenképpen adjon meg egy leírást és egy URL-címet.
Paraméter Érték Leírás „A GitHub egy közösségi forráskód-adattár.” URL-cím „api.github.com” A Biztonság lapon konfigurálja az alapszintű hitelesítést, ahogy az előző részben.
A Definíció lapon válassza a + Új eseményindító lehetőséget, majd töltse ki az eseményindító leírását. Ebben a példában létrehoz egy eseményindítót, amely akkor aktiválódik, amikor a rendszer lekérési kérelmet küld egy adattárba.
Paraméter Érték Összegzés „Eseményindítás, amikor a kijelölt adattár lekérési kérelmet kap” Leírás „Eseményindítás, amikor a kijelölt adattár lekérési kérelmet kap” Műveletazonosító „webhook-PR-eseményindító” Láthatóság „nincs” (a további tudnivalókat lásd lent) Eseményindító típusa „Webhook” Egy logikai alkalmazásban vagy folyamatban lévő műveletek és paraméterek láthatósági tulajdonsága a következő lehetőségekkel rendelkezik:
- nincs: normál esetben megjelenik a logikai alkalmazásban vagy folyamatban
- fejlett: Egy további menü alatt elrejtve található
- belső: A felhasználók elől rejtve van
- fontos: mindig elsőként jelenik meg a felhasználó számára
A Kérelem terület a művelet HTTP-kérelme alapján jeleníti meg az információkat. Válassza az Importálás mintából lehetőséget.
Határozza meg a lekérdezéses eseményindítóhoz tartozó kérést, majd válassza az Importálás elemet. Egy mintát biztosítunk az importáláshoz (a kép alatt). További információt a GitHub API-referenciában talál. A Logic Apps és a Power Automate automatikusan hozzáadja a standard
content-type
elemet és a biztonsági fejléceket, tehát ezeket nem kell meghatároznia a mintából importálás során.Paraméter Érték Művelet "POST" URL-cím „https://api.github.com/repos/{owner}/{repo}/hooks” Törzs Lásd alább. { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }
A Válasz terület a művelet HTTP-válasza alapján jeleníti meg az információkat. Válassza az Alapértelmezett válasz hozzáadása lehetőséget.
Határozza meg a lekérdezéses eseményindítóhoz tartozó választ, majd válassza az Importálás elemet. Itt is egy mintát biztosítunk az importáláshoz. További információt a GitHub API-referenciában talál.
{ "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" } } }
Az Eseményindító konfigurálása területen válassza ki azt a paramétert, amely a visszahívási URL-értéket kapja GitHub felől. Ez az
url
tulajdonság tartalmazza aconfig
objektumban.A varázsló tetején adja meg a nevet, majd válassza az Összekötő létrehozása lehetőséget.
A webhook használata eseményindítóként
Most, hogy mindent konfigurált, használhatja a webhookot egy logikai alkalmazásban vagy folyamatban. Ezután hozzon létre egy folyamatot, amely minden alkalommal leküldéses értesítést küld a Power Automate-mobilalkalmazásnak, amikor a GitHub-adattár git push parancsot kap.
A flow.microsoft.com oldalon, az lap tetején válassza a Saját folyamatok lehetőséget.
Válassza a Létrehozás nulláróllehetőséget, majd a következő oldalon válassza a Keresés több száz összekötő és eseményindító között lehetőséget.
A Power Automate tervezőjében keresse meg a korábban regisztrált egyéni összekötőt.
Kattintson az elemre a listában annak eseményindítóként való használatához.
Mivel először használja ezt az egyéni összekötőt, csatlakoznia kell hozzá. Adja meg a kapcsolati adatokat ,majd válassza a Létrehozás lehetőséget.
Paraméter Érték Kapcsolat neve Egy beszédes név Felhasználónév Az Ön GitHub-felhasználóneve Jelszó A korábban létrehozott személyes hozzáférési jogkivonatot Adja meg a nyomon követni kívánt adattár adatait. Előfordulhat, hogy felismeri a fájl WebhookRequestBody objektumának OpenAPI mezőit.
Paraméter Érték tulajdonos A nyomon követendő adattár tulajdonosa adattár A nyomon követendő adattár Fontos
Olyan adattárat válasszon, amelyhez hozzáfér a fiókja. Ez a legegyszerűbben saját adattár használatával biztosítható.
Válassza az + Új lépés, majd a Művelet hozzáadása lehetőséget.
Keresse meg és jelölje ki a Leküldéses értesítés műveletet.
Írjon be szöveget a Szöveg és a többi mezőbe a többi mezőt, a dinamikus tartalom párbeszédpanel értékeinek felhasználásával. Vegye figyelembe, hogy ezek az értékek a fájl WebhookPushResponse objektumából OpenAPI származnak.
Paraméter Érték Kapcsolat neve Egy beszédes név Felhasználónév Az Ön GitHub-felhasználóneve Jelszó A korábban létrehozott személyes hozzáférési jogkivonatot A lap tetején adja meg a folyamat nevét és válassza a Folyamat létrehozása lehetőséget.
Ellenőrzés és hibaelhárítás
A beállítások helyességének ellenőrzéséhez válassza a Saját folyamatok elemet majd az új folyamat melletti információs ikont választva jelenítse meg a futtatási előzményeket:
Már látnia kell legalább egy „Sikeres” futtatást a webhook létrehozása miatt. Ez jelzi, hogy a webhook sikeresen létrejött a GitHub oldalán.
Amennyiben a futtatás sikertelen volt, a részleteket megnyitva megtudhatja, hogy miért. Ha a hiba oka egy „404 Nem található” válasz, akkor a GitHub-fiókja feltehetően nem rendelkezik a webhook létrehozásához szükséges megfelelő engedélyekkel a használt adattárnál.
Összesítés
Ha mindent helyesen konfigurált, akkor ezentúl mindig leküldéses értesítést kap a Power Automate-mobilalkalmazásban, ha git push művelet megy végbe a kiválasztott GitHub-adattárban. A fenti eljárással bármilyen, webhookok használatára képes szolgáltatást felhasználhat eseményindítóként a folyamataiban.
Következő lépések
- Egyéni összekötők létrehozása webes API-khoz
- Az API és az összekötő hitelesítése azonosítóval Microsoft Entra
Visszajelzés küldése
Nagyra értékeljük az összekötőplatform problémáival kapcsolatos visszajelzéseket és az új funkciókkal kapcsolatos ötleteket. Ha visszajelzést szeretne küldeni, lépjen a Problémák küldése vagy segítség kérése az összekötőkkel kapcsolatban részre, és válassza ki a visszajelzés típusát.