Werkstromen of acties uitvoeren op basis van gebeurtenissen van service-eindpunten met behulp van HTTP-webhooks in Azure Logic Apps

Van toepassing op: Azure Logic Apps (Verbruik + Standaard)

Wanneer u wilt dat een werkstroomtrigger of -actie wacht tot gebeurtenissen of gegevens binnenkomen bij een doelservice-eindpunt voordat deze worden uitgevoerd, gebruikt u de HTTP-webhooktrigger of -actie, in plaats van proactief het eindpunt volgens een schema te controleren. De HTTP-webhooktrigger of -actie abonneert zich op het service-eindpunt en wacht op nieuwe gebeurtenissen of gegevens voordat deze wordt uitgevoerd. U kunt het webhookpatroon gebruiken voor langlopende taken en asynchrone verwerking.

In de volgende lijst worden voorbeeldwerkstromen op basis van webhook beschreven:

  • Een HTTP Webhook-trigger wacht tot een gebeurtenis vanaf Azure Event Hubs aankomt voordat de werkstroom wordt uitgevoerd.
  • Een actie HTTP Webhook wacht op een goedkeuring in Office 365 Outlook voordat u verdergaat met de volgende actie in de werkstroom.

In deze handleiding ziet u hoe u de HTTP-webhooktrigger en http-webhookactie instelt, zodat uw werkstroom nieuwe gebeurtenissen of gegevens op een service-eindpunt kan ontvangen en erop kan reageren.

Hoe werken webhooks?

Een webhooktrigger of -actie peilt of controleert niet proactief op nieuwe gebeurtenissen of gegevens op het doelservice-eindpunt. In plaats daarvan wacht de trigger of actie totdat nieuwe gebeurtenissen of gegevens binnenkomen bij het service-eindpunt voordat ze worden uitgevoerd. Nadat u een webhooktrigger of -actie aan uw werkstroom hebt toegevoegd en vervolgens de werkstroom hebt opgeslagen, of nadat u een uitgeschakelde logische app-resource opnieuw hebt ingeschakeld, wordt de webhooktrigger of -actie geabonneerd op het service-eindpunt door een callback-URL met het eindpunt te genereren en te registreren. De trigger of actie wacht vervolgens totdat het service-eindpunt de URL heeft aangeroepen, waarmee de trigger of actie wordt uitgevoerd. Net als bij de aanvraagtrigger wordt een HTTP Webhook-trigger onmiddellijk geactiveerd.

De connectoractie Office 365 Outlook met de naam Eend goedkeurings-e-mail volgt bijvoorbeeld het webhookpatroon, maar werkt alleen met Office 365 Outlook. U kunt het webhookpatroon uitbreiden naar elke service met behulp van de HTTP-webhooktrigger of actie met het gewenste service-eindpunt.

Een webhooktrigger blijft geabonneerd op een service-eindpunt totdat u handmatig een van de volgende acties uitvoert:

  • Wijzig de parameterwaarden van de trigger.
  • Verwijder de trigger en sla uw werkstroom op.
  • Schakel de resource van uw Logic App uit.

Een webhookactie blijft geabonneerd op een service-eindpunt, tenzij een van de volgende voorwaarden optreedt:

  • De webhookactie is succesvol voltooid.
  • U annuleert de uitvoering van de werkstroom terwijl u wacht op een antwoord.
  • Er treedt een time-out op voor de werkstroom.
  • U wijzigt de parameterwaarden van de webhookactie die door een webhooktrigger als invoer worden gebruikt.

Voor meer informatie, zie:

Vereisten

  • Een Azure-account en -abonnement. Get een gratis Azure-account.

  • De URL voor een geïmplementeerd service-eindpunt of API.

    Dit item moet het patroon 'abonneren en afmelden' ondersteunen voor webhooktriggers in werkstromen of webhookacties in werkstromen.

  • De werkstroom van de Standard- of Consumption-logische app waarin u de HTTP-webhook-trigger of -actie wilt gebruiken.

    • Als u de HTTP Webhook-trigger wilt gebruiken, maakt u een logische app-resource met een lege werkstroom.
    • Als u de HTTP-webhookactie wilt gebruiken, start u uw werkstroom met een trigger die het beste werkt voor uw scenario. In de voorbeelden wordt de HTTP Webhook-trigger gebruikt.

Een HTTP-webhooktrigger toevoegen

Met deze ingebouwde trigger wordt het eindpunt voor het abonneren aangeroepen op de doelservice en wordt een callback-URL geregistreerd bij de doelservice. Uw werkstroom wacht vervolgens totdat de doelservice een HTTP POST aanvraag naar de callback-URL verzendt. Wanneer deze gebeurtenis plaatsvindt, wordt de trigger geactiveerd en worden alle gegevens in de aanvraag doorgegeven aan de werkstroom.

  1. In het Azure-portaal, open je logic app-resource. Open uw lege werkstroom in de ontwerper.

  2. Volg de algemene stappen om de trigger met de naam HTTP Webhook toe te voegen aan uw werkstroom.

    In dit voorbeeld wordt de naam van de trigger Run HTTP Webhook trigger gewijzigd in een meer beschrijvende naam. In het voorbeeld wordt later ook een HTTP Webhook-actie toegevoegd. Beide namen moeten uniek zijn.

  3. Geef voor de triggerparameters van de HTTP-webhook de waarden op voor de aanroepen voor abonneren en afmelden:

    Kenmerk Vereist Beschrijving
    Subscribe-methode Ja De methode die moet worden gebruikt voor het abonneren op het doeleindpunt.
    Abonnements-URI Ja De URL die moet worden gebruikt voor het abonneren op het doeleindpunt.
    Hoofdtekst abonneren Nee Elke berichttekst die moet worden opgenomen in de aanvraag voor abonneren. Dit voorbeeld bevat de callback-URL die de abonnee, dat uw werkstroom is, uniek identificeert door de listCallbackUrl() expressiefunctie te gebruiken om de callback-URL van uw trigger op te halen.
    Hoofdtekst afmelden Nee Elke berichttekst die moet worden opgenomen in de afmeldingsaanvraag. U kunt de expressiefunctie gebruiken om de listCallbackUrl() callback-URL van uw actie op te halen. De trigger bevat en verzendt echter ook automatisch de headers x-ms-client-tracking-id en x-ms-workflow-operation-name, die de doelservice kan gebruiken om de abonnee uniek te identificeren.
  4. Als u andere triggerparameters wilt toevoegen, opent u de lijst met geavanceerde parameters .

    Als u bijvoorbeeld de parameters Afmeldingsmethode en Afmeldings-URI wilt gebruiken, voegt u deze toe uit de lijst met geavanceerde parameters .

    In het volgende voorbeeld ziet u een trigger die de methoden, URI's en berichtteksten bevat die moeten worden gebruikt voor de methoden voor abonneren en afmelden:

    Schermopname van de werkstroom met triggerparameters voor HTTP Webhook.

  5. Als u verificatie wilt gebruiken, voegt u de parameters Voor verificatie abonneren en Afmelden toe uit de lijst met geavanceerde parameters .

    Zie Verificatie toevoegen aan uitgaande aanroepen voor meer informatie over verificatietypen die beschikbaar zijn voor HTTP Webhook.

  6. Voeg eventuele andere acties toe die uw scenario nodig heeft.

  7. Sla uw werkstroom op wanneer u klaar bent. Selecteer in de werkbalk van de ontwerper Opslaan.

Als u uw werkstroom opslaat, wordt het abonneer-eindpunt op de doelservice aangeroepen en vervolgens wordt de callback-URL geregistreerd. Uw werkstroom wacht totdat de doelservice een HTTP POST aanvraag naar de callback-URL verzendt. Wanneer deze gebeurtenis plaatsvindt, wordt de trigger geactiveerd en worden alle gegevens in de aanvraag doorgegeven aan de werkstroom. Als deze bewerking met succes is voltooid, wordt de trigger afgemeld van het eindpunt en gaat uw workflow verder met de volgende actie.

Een HTTP-webhookactie toevoegen

Met deze ingebouwde actie wordt het eindpunt voor het abonneren aangeroepen in de doelservice en wordt een callback-URL geregistreerd bij de doelservice. Uw werkstroom onderbreekt en wacht totdat de doelservice een HTTP POST aanvraag naar de callback-URL verzendt. Wanneer deze gebeurtenis plaatsvindt, worden alle gegevens in de aanvraag doorgegeven aan de werkstroom. Als de bewerking succesvol is voltooid, meldt de actie zich af van het eindpunt en gaat de werkstroom verder naar de volgende actie.

  1. In het Azure-portaal, open je logic app-resource. Open uw werkstroom in de ontwerper.

  2. Volg de algemene stappen om de actie HTTP Webhook toe te voegen aan uw werkstroom.

    In dit voorbeeld wordt de naam van de actie Run HTTP Webhook action gewijzigd in een meer beschrijvende naam. Als uw werkstroom ook gebruikmaakt van de HTTP Webhook-trigger , moeten beide namen uniek zijn.

  3. Geef voor de http-webhookactieparameters de waarden op die moeten worden gebruikt voor de aanroepen voor abonneren en afmelden:

    Kenmerk Vereist Beschrijving
    Subscribe-methode Ja De methode die moet worden gebruikt voor het abonneren op het doeleindpunt.
    Abonnements-URI Ja De URL die moet worden gebruikt voor het abonneren op het doeleindpunt.
    Hoofdtekst abonneren Nee Elke berichttekst die moet worden opgenomen in de aanvraag voor abonneren. Dit voorbeeld bevat de callback-URL die de abonnee binnen uw werkstroom uniek identificeert door de expressiefunctie te gebruiken om de callback-URL van uw actie op te halen.
    Hoofdtekst afmelden Nee Elke berichttekst die moet worden opgenomen in de afmeldingsaanvraag. U kunt de expressiefunctie gebruiken om de listCallbackUrl() callback-URL van uw actie op te halen. De actie bevat echter ook automatisch de headers en verzendt deze, x-ms-client-tracking-id en x-ms-workflow-operation-name, die de doelservice kan gebruiken om de abonnee uniek te identificeren.
  4. Als u andere actieparameters wilt toevoegen, opent u de lijst met geavanceerde parameters .

    Als u bijvoorbeeld de parameters Afmeldingsmethode en Afmeldings-URI wilt gebruiken, voegt u deze toe uit de lijst met geavanceerde parameters .

    In het volgende voorbeeld ziet u een actie die de methoden, URI's en berichtteksten bevat die moeten worden gebruikt voor de methoden voor abonneren en afmelden:

    Schermopname van de Standaardwerkstroom met actieparameters voor HTTP Webhook.

  5. Als u verificatie wilt gebruiken, voegt u de parameters Voor verificatie abonneren en Afmelden toe uit de lijst met geavanceerde parameters .

    Zie Verificatie toevoegen aan uitgaande aanroepen voor meer informatie over verificatietypen die beschikbaar zijn voor HTTP Webhook.

  6. Voeg eventuele andere acties toe die uw scenario nodig heeft.

  7. Sla uw werkstroom op wanneer u klaar bent. Selecteer in de werkbalk van de ontwerper Opslaan.

Wanneer deze actie wordt uitgevoerd, roept uw werkstroom het eindpunt voor abonneren aan bij de doelservice en registreert het de callback-URL. Uw werkstroom onderbreekt en wacht totdat de doelservice een HTTP POST aanvraag naar de callback-URL verzendt. Wanneer deze gebeurtenis plaatsvindt, worden alle gegevens in de aanvraag doorgegeven aan de werkstroom. Als de bewerking succesvol is voltooid, meldt de actie zich af van het eindpunt en gaat de werkstroom verder naar de volgende actie.

Technische referentie voor connectoren

Zie http-webhookparameters voor meer informatie over de HTTP-webhooktrigger en actieparameters. De trigger en actie hebben dezelfde parameters.

Verloop van SAS-token (Shared Access Signature)

De callback-URL voor de HTTP Webhook-trigger of -actie wordt automatisch gegenereerd door de methode List Callback URL - REST API. Standaard heeft het SAS-token in de callback-URL geen verlooptijd op basis van tijd. De callback-URL blijft geldig voor de duur van de werkstroomuitvoering.

Time-out limieten

In de volgende tabel worden de time-outlimieten voor de HTTP-webhookactie beschreven, op basis van de optie voor het hosten van logische apps:

Hostingoptie Werkstroomtype Duur
Verbruik Stateful Tot 90 dagen.
Standard Stateful Tot 30 dagen.
Standard Staatloos: 5 minuten
(vaste limiet)

De callback-URL van de HTTP-webhookactie wordt ongeldig wanneer de volgende gebeurtenissen plaatsvinden:

  • U annuleert de werkstroom.
  • U verwijdert de resource van de werkstroom of de logische app of schakelt deze uit.
  • U wijzigt de toegangssleutels van de workflows.
  • Er treedt een time-out op voor de werkstroom.

Zie HTTP-limieten in Azure Logic Apps voor andere HTTP-limieten.

Time-outlimiet wijzigen

Als u met behulp van de Azure-portal deze limiet voor de actie HTTP Webhook in stateful werkstromen wilt wijzigen, raadpleegt u de tabel Time-outduur voor uitgaande HTTP-verzoeken. Of voeg in de JSON-definitie van de actie het limit.timeout object toe en stel de waarde in op de gewenste duur, bijvoorbeeld:

{
   "actions": {
      "Run_HTTP_Webhook_action": {
         "type": "HttpWebhook",
         "inputs": {
            "subscribe": {
               "method": "POST",
               "uri": "https://<external-service>.com/subscribe",
               "body": {
                  "callbackUrl": "@{listCallBackUrl()}"
               }
            },
            "unsubscribe": {}
         },
         "limit": {
            "timeout": "PT1H"
         }
      }
   }
}

Uitvoer van triggers en acties

De volgende tabellen bevatten meer informatie over de uitvoer die wordt geretourneerd door een HTTP-webhooktrigger of -actie:

JSON-naam Typologie Beschrijving
headers JSON-object De headers van de aanvraag.
body JSON-object Het object met de hoofdtekstinhoud van de aanvraag.
status code int (integer) De statuscode van de aanvraag.
Statuscode Beschrijving
200 OK
202 Geaccepteerd
400 Onjuiste aanvraag
401 Niet geautoriseerd
403 Verboden
404 Niet gevonden
500 Interne serverfout. Er is een onbekende fout opgetreden.

Callback-URL genereren met secundaire toegangssleutel

Een werkstroom voor logische apps heeft twee toegangssleutels: primair en secundair. Standaard gebruikt Azure Logic Apps de primaire sleutel om de callback-URL voor de HTTP-webhooktrigger te genereren.

Als u in plaats daarvan de secundaire sleutel wilt gebruiken voor het genereren van callback-URL's, voert u de volgende stappen uit:

  1. Als u zich in de werkstroomontwerper bevindt, schakelt u over naar de codeweergave.

  2. Zoek de parameter HttpWebhook in de triggerdefinitie accessKeyType.

  3. Voer het woord Secondary in als de parameterwaarde.

  4. Sla uw wijzigingen op.

In het volgende voorbeeld ziet u de definitie van de webhooktrigger met de accessKeyType parameter ingesteld op Secondary:

{
  "type": "HttpWebhook",
  "inputs": {
    "subscribe": {
      "method": "POST",
      "uri": "<subscription-URL>",
      "body": "@listCallbackUrl()"
    },
    "accessKeyType": "Secondary"
  },
  "runAfter": {}
}