Använda en webhook som utlösare för Azure Logic Apps och Power Automate
Webhooks är enkla HTTP-återanrop som används för att tillhandahålla händelsemeddelanden. Med Azure Logic Apps och Power Automate båda kan du använda webhooks som utlösare. En logikapp eller -flöde lyssnar efter den här utlösaren och utför en åtgärd när utlösaren aktiveras. I den här självstudien beskrivs hur du använder en webhook som utlösare.
Obs
Vi kommer att använda GitHub som ett exempel på en tjänst som kan skicka meddelanden via webhooks, men de metoder som beskrivs här kan utökas till alla tjänster som använder webhooks.
Förutsättningar
- Någon av följande prenumerationer:
- Azure, om du använder Logic Apps
- Power Automate
- Grundläggande erfarenhet av att skapa logikappar eller flöden och anpassade anslutningsprogram.
- Om du använder Logic Apps skapar du först en anpassad anslutningsapp för Azure Logic Apps.
- Grundläggande förståelse för webhooks.
- Grundläggande förståelse för specifikationen OpenAPI (tidigare känd som Swagger).
- Ett GitHub-konto .
- Exempeldefinitionen OpenAPI för den här självstudien.
OpenAPI-definitionen
Webhooks implementeras i Logic Apps och Power Automate som en del av en anpassad anslutningsapp, så du måste ange en OpenAPI definition som definierar formen på webhooken. Om du vill skapa en utlösare, men inte har någon OpenAPI definition, kan du använda användargränssnittet för utlösare i guiden för anpassad anslutningsapp för att definiera webhook-utlösare.
OpenAPI-definitionen innehåller tre delar som är vitala för att få webhooken att fungera:
- Skapa webhooken
- Definiera en inkommande hook-begäran från API:n (i det här fallet GitHub)
- Ta bort webhooken
Skapa webhooken
Webhooken skapas på GitHub-sidan av en HTTP POST till /repos/{owner}/{repo}/hooks
. När en ny logikapp eller ett nytt flöde skapas kommer dessa att publicera till denna URL via den utlösare som angetts i OpenAPI-definitionen. Det publicerar även till URL:en om utlösaren ändras. I följande post
avsnitt innehåller egenskapen schemat för begäran som skickas till GitHub.
"/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"
}
}
}
}
},
Viktigt
Egenskapen "x-ms-trigger": "single"
är ett schematillägg som talar om för Logic Apps och Power Automate att den här webhooken ska visas i listan över tillgängliga utlösare i designern, så se till att inkludera den.
Definiera begäran om inkommande hook från API
Formen på den inkommande hook-begäran (meddelandet från GitHub till Logic Apps eller Power Automate) definieras i den anpassade x-ms-notification-content
egenskapen, som du ser i föregående exempel. Den behöver inte innehålla hela innehållet i begäran, bara de delar som du vill använda i din logikapp eller ditt flöde.
Radera webhooken
Definitionen OpenAPI måste innehålla en definition för hur du tar bort webhooken. Logic Apps och Power Automate försöker ta bort webhooken om du uppdaterar utlösaren och om du tar bort logikappen eller flödet.
"/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"
}
]
}
},
Inget ytterligare huvud ingår för det borttagna webhook-anropet. Samma anslutning som används i anslutningen används också för borttagnings webhook-anropet.
Viktigt
För att Logic Apps ska Power Automate kunna ta bort en webhook måste API: et innehålla ett Location
HTTP-huvud i 201-svaret när webhooken skapas. Rubriken Location
ska innehålla sökvägen till webhooken som används med HTTP DELETE. Till exempel följer det Location
som ingår i GitHubs svar det här formatet: https://api.github.com/repos/<user name>/<repo name>/hooks/<hook ID>
.
Aktivera autentisering i GitHub
API:et som skickar webhook-begäran till Logic Apps eller Power Automate använder normalt någon form av autentisering och GitHub är inget undantag. GitHub stöder flera typer av autentisering. I den här självstudien används GitHubs personliga åtkomsttoken.
Gå till GitHub och logga in om du inte redan har gjort det.
Välj din profilbild uppe till höger och välj sedan Inställningar i menyn.
I menyn till vänster väljer du Utvecklarinställningar och sedan Personliga åtkomsttoken.
Välj knappen Generera ny token och bekräfta sedan ditt lösenord om du uppmanas att göra det.
I rutan Tokenbeskrivning anger du en beskrivning.
Markera kryssrutan admin:repo_hook .
Välj knappen Generera token .
Anteckna din nya token.
Viktigt
Du kan inte komma åt denna token igen. Du bör kopiera och klistra in den någonstans för användning senare i självstudierna.
Importera OpenAPI-definitionen
Börja med att OpenAPI importera definitionen för Logic Apps, eller for Power Automate.
Importera OpenAPI-definitionen för Logic Apps
Gå till Azure Portal och öppna Logic Apps-anslutningsappen som du skapade tidigare i Skapa en anpassad Azure Logic Apps-anslutningsapp.
I anslutningsappens meny väljer du Logic Apps Connector och sedan Redigera.
Under Allmänt väljer du Ladda upp en OpenAPI fil och navigerar sedan till filen OpenAPI som du laddade ned.
Importera OpenAPI-definition för Power Automate
Gå till flow.microsoft.com.
I det övre högra hörnet väljer du kugghjulsikonen och sedan Anpassade anslutningsappar.
Välj Skapa anpassat anslutningsprogram och välj sedan Importera en Postman-samling.
Ange ett namn för den anpassade anslutningsappen, gå sedan till filen OpenAPI som du laddade ned och välj Anslut.
Parameter Värde Titel för anpassad anslutningsapp "GitHubDemo"
Slutför skapandet av den anpassade anslutningen
På sidan Allmänt väljer du Fortsätt.
På sidan Säkerhet går du till Autentiseringstyp och väljer Grundläggande autentisering.
I avsnittet Grundläggande autentisering anger du texten Användarnamn och Lösenord för etikettfälten. Dessa är endast etiketter som visas när utlösaren används i en logikapp eller ett flöde.
Längst upp i guiden kontrollerar du att namnet är inställt på "GitHubDemo" och väljer sedan Skapa anslutningsapp.
Nu är du redo att använda utlösaren i en logikapp eller ett flöde, eller så kan du läsa mer om hur du skapar utlösare från användargränssnittet.
Skapa webhook-utlösare från användargränssnittet
I detta avsnitt visar vi dig hur du skapar en utlösare i användargränssnittet utan behov av utlösardefinitioner i din OpenAPI-definition. Börja med en grundläggande OpenAPI-definition, eller börja från grunden i guiden för anpassat anslutningsprogram.
På sidan Allmänt ser du till att du anger en beskrivning och URL.
Parameter Värde Description "GitHub är en lagringskod för en social källkod". URL "api.github.com" På sidan Säkerhet konfigurerar du grundläggande autentisering på samma sätt som du gjorde i föregående avsnitt.
På sidan Definition väljer du + Ny utlösare och fyller i beskrivningen för utlösaren. I det här exemplet skapar vi en utlösare som utlöses när en pull-begäran skickas till en lagringsplats.
Parameter Värde Sammanfattning "Utlöses när en hämtningsförfrågan görs till en markerad databas" Description "Utlöses när en hämtningsförfrågan görs till en markerad databas" Åtgärds-ID "webhook-PR-utlösare" Synlighet "ingen" (se nedan för mer information) Typ av utlösare "Webhook" Egenskapen Synlighet för åtgärder och parametrar i en logikapp eller ett flöde har följande alternativ:
- Ingen: Visas normalt i logikappen eller flödet
- Avancerat: Gömd under en extra meny
- internt: dolt för användaren
- Viktigt: Visas alltid för användaren först
I området Begäran visas information baserat på HTTP-begäran för åtgärden. Välj Importera från exempel.
Definiera begäran för webhook-utlösaren och välj sedan Importera. Vi tillhandahåller ett exempel du kan importera (under bilden). Mer information finns i GitHub API-referensen. Logic Apps och Power Automate lägger automatiskt till standard
content-type
- och säkerhetshuvuden, så att du inte behöver definiera dem när du importerar från ett exempel.Parameter Värde Verb "SKICKA" URL "https://api.github.com/repos/{owner}/{repo}/hooks"Och jag har inte hört talas Brödtext Se nedan { "name": "web", "active": true, "events": [ "pull_request" ], "config": { "url": "http://example.com/webhook" } }
I området Svar visas information baserat på HTTP-svaret för åtgärden. Välj Lägg till standardsvar
Definiera svaret för webhook-utlösaren och välj sedan Importera. Vi tillhandahåller återigen ett exempel som du kan importera. Mer information finns i GitHub API-referensen.
{ "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" } } }
I området Utlösarkonfiguration väljer du den parameter som ska ta emot motringnings-URL-värdet från GitHub. Det här är
url
egenskapen iconfig
objektet.Längst upp i guiden anger du ett namn och väljer sedan Skapa anslutningsapp.
Använd webhooken som en utlösare
Nu när allt är konfigurerat kan vi använda webhooken i en logikapp eller ett flöde. Nästa steg är att skapa ett flöde som skickar ett push-meddelande till Power Automate-mobilappen när vår GitHub-repo tar emot en git-push.
I flow.microsoft.com väljer du Mina flöden högst upp på sidan.
Välj Skapa från tom och välj sedan Sök efter hundratals anslutningsappar och utlösare på nästa sida.
Sök efter den anpassade anslutningen som du tidigare registrerat i Power Automate-designern.
Välj objektet i listan om du vill använda det som en utlösare.
Eftersom det är första gången du använder den här anpassade anslutningen, så måste du ansluta till den. Ange anslutningsinformation och välj sedan Skapa.
Parameter Värde Anslutningens namn Ett beskrivande namn Användarnamn Ditt GitHub användarnamn Lösenord Den personliga åtkomsttoken du skapade tidigare Ange information om lagringsplatsen du vill bevaka. Du kanske känner igen fälten från WebhookRequestBody-objektet i OpenAPI filen.
Parameter Värde ägare Ägaren till den databas som ska bevakas Repo Den lagringsplats som ska bevakas Viktigt
Du bör använda en lagringsplats som ditt konto har behörighet till. Det enklaste sättet att göra detta på är att använda en egen lagringsplats.
Välj + Nytt steg och välj sedan Lägg till en åtgärd.
Sök efter och välj åtgärden Push-meddelande .
Ange text i fältet Text och de andra fälten med hjälp av värden från dialogrutan för dynamiskt innehåll. Observera att dessa värden kommer från WebhookPushResponse-objektet i OpenAPI filen.
Parameter Värde Anslutningens namn Ett beskrivande namn Användarnamn Ditt GitHub användarnamn Lösenord Den personliga åtkomsttoken du skapade tidigare Ge flödet ett namn högst upp på sidan och välj Skapa flöde.
Verifiering och felsökning
Om du vill kontrollera att allt är korrekt konfigurerat väljer du Mina flöden och väljersedan informationsikonen bredvid det nya flödet för att visa körningshistoriken :
Du bör redan se minst en körning som ”lyckades” från när webhooken skapades. Detta visar att webhooken skapades på GitHub-sidan.
Om körningen misslyckades kan du söka efter orsaken i körningsinformationen. Om felet berodde på svaret ”404 hittades inte”, har sannolikt GitHub-kontot inte behörighet att skapa en webhook på den lagringsplats som du använde.
Sammanfattning
Om allt är korrekt konfigurerat får du nu push-meddelanden i Power Automate-mobilappen när en git-push inträffar på GitHub-lagringsplatsen som du har valt. Via processen ovan kan du använda alla webhook-kompatibla tjänster som en utlösare i dina flöden.
Nästa steg
- Skapa en anpassad anslutningsapp för ett webb-API
- Autentisera ditt API och din anslutningsapp med Microsoft Entra ID
Ge feedback
Vi uppskattar feedback på problem med vår anslutningsplattform eller nya funktioner. Om du vill ge feedback går du till Skicka problem eller får hjälp med anslutningsprogram och väljer din feedbacktyp.