Freigeben über


Abonnieren von Ereignissen und Warten auf Ereignisse zum Ausführen von Workflows mithilfe von HTTP-Webhooks in Azure Logic Apps

Gilt für: Azure Logic Apps (Verbrauch + Standard)

Anstelle eines Triggers, der regelmäßig einen Dienstendpunkt überprüft oder abfragt, oder einer Aktion, die diesen Endpunkt aufruft, können Sie einen HTTP-Webhooktrigger oder eine Aktion verwenden, der bzw. die einen Dienstendpunkt abonniert, auf bestimmte Ereignisse wartet und bestimmte Aktionen in Ihrem Workflow ausführt.

Hier sind einige Beispiele für webhook-basierte Workflows:

  • Warten, dass ein Ereignis von Azure Event Hubs eintrifft, bevor eine Workflowausführung ausgelöst wird
  • Warten auf eine Genehmigung, bevor ein Workflow fortgesetzt wird.

In diesem Handbuch wird gezeigt, wie Sie den HTTP-Webhook-Trigger und die HTTP-Webhook-Aktion verwenden, damit Ihr Workflow Ereignisse an einem Dienstendpunkt empfangen und darauf reagieren kann.

Wie funktionieren Webhooks?

Ein Webhooktrigger ist ereignisbasiert und erfordert nicht, dass regelmäßig auf neue Daten oder Ereignisse geprüft wird oder diese abgerufen werden. Nachdem Sie einen Webhooktrigger zu einem leeren Workflow hinzugefügt und dann den Workflow gespeichert haben oder nachdem Sie eine deaktivierte Logik-App-Ressource erneut aktiviert haben, abonniert der Webhooktrigger den angegebenen Dienstendpunkt. Dazu registriert er eine Rückruf-URL bei diesem Endpunkt. Der Trigger wartet dann darauf, dass der Dienstendpunkt die URL aufruft, wodurch der Trigger ausgelöst und der Workflow gestartet wird. Ähnlich wie der Anforderungstrigger wird ein Webhooktrigger sofort ausgelöst.

Der Webhooktrigger bleibt auch beim Dienstendpunkt abonniert, es sei denn, Sie führen manuell die folgenden Aktionen aus:

  • Ändern der Parameterwerte des Triggers
  • Löschen des Triggers und Speichern des Workflows
  • Deaktivieren der Logik-App-Ressource

Ähnlich wie beim Webhook-Trigger ist auch eine Webhook-Aktion ereignisbasiert. Nachdem Sie eine Webhookaktion zu einem vorhandenen Workflow hinzugefügt und dann den Workflow gespeichert haben oder nachdem Sie eine deaktivierte Logik-App-Ressource erneut aktiviert haben, abonniert die Webhookaktion den angegebenen Dienstendpunkt. Dazu registriert sie eine Rückruf-URL bei diesem Endpunkt. Wenn der Workflow ausgeführt wird, hält die Webhookaktion den Workflow an und wartet, bis der Dienstendpunkt die URL aufruft, bevor der Workflow die Ausführung fortsetzt. Eine Webhookaktion kündigt das Abonnement für den Dienstendpunkt, wenn die folgenden Bedingungen auftreten:

  • Die Webhookaktion wurde erfolgreich abgeschlossen.
  • Die Workflowausführung wird während des Wartens auf eine Antwort abgebrochen.
  • Vor dem Timeout einer Workflowausführung
  • Sie ändern die Parameterwerte von Webhookaktionen, die von einem Webhooktrigger als Eingaben verwendet werden.

Beispielsweise ist die E-Mail-Aktion des Office 365 Outlook-Connectors zum Senden der Genehmigung ein Beispiel für eine Webhook-Aktion, die diesem Muster folgt. Sie können dieses Muster mithilfe der Webhookaktion auf jeden Dienst erweitern.

Weitere Informationen finden Sie in der folgenden Dokumentation:

Informationen zu Verschlüsselung, Sicherheit und Autorisierung für eingehende Aufrufe an Ihre Logik-App, z. B. Transport Layer Security (TLS) oder die offene Microsoft Entra ID-Authentifizierung, finden Sie unter Access für eingehende Anrufe zu anforderungsbasierten Triggern.

Technische Referenz für den Connector

Weitere Informationen zu Trigger- und Aktionsparametern finden Sie unter HTTP-Webhookparameter.

Voraussetzungen

  • Ein Azure-Konto und ein Azure-Abonnement. Wenn Sie nicht über ein Azure-Abonnement verfügen, können Sie sich für ein kostenloses Azure-Konto registrieren.

  • Die URL für einen bereits bereitgestellten Endpunkt oder eine bereits bereitgestellte API, die das Abonnieren- und Abbestellen-Muster für Webhook-Trigger in Workflows oder Webhook-Aktionen in Workflows unterstützt, entsprechend.

  • Der Workflow der Standard- oder Verbrauchs-Logik-App, in dem auf bestimmte Ereignisse am Zielendpunkt gewartet werden soll.

    Um mit dem HTTP-Webhook-Trigger zu beginnen, erstellen Sie eine Logik-App mit einem leeren Workflow.

    Um die HTTP-Webhook-Aktion zu verwenden, starten Sie Den Workflow mit jedem gewünschten Trigger. In diesem Beispiel wird der HTTP-Trigger als erster Schritt verwendet.

Hinzufügen eines HTTP-Webhooktriggers

Dieser integrierte Trigger ruft den Abonnementendpunkt im Zieldienst auf und registriert eine Rückruf-URL beim Zieldienst. Ihr Workflow wartet dann darauf, dass der Zieldienst eine HTTP POST-Anforderung an die Rückruf-URL sendet. Wenn dieses Ereignis eintritt, wird der Trigger ausgelöst und übergibt alle Daten in der Anforderung an den Workflow.

  1. Öffnen Sie im Azure-Portal Ihre Ressource vom Typ „Logic App (Standard)“.

  2. Wählen Sie im Menü der Ressourcen-Seitenleiste unter Workflows die Option Workflows aus, und wählen Sie dann Ihren leeren Workflow aus.

  3. Wählen Sie im Menü "Workflow-Randleiste" unter "Extras" den Designer aus, um den Workflow zu öffnen.

  4. Fügen Sie den HTTP-Webhook-Trigger zu Ihrem Workflow hinzu, indem Sie die allgemeinen Schritte zum Hinzufügen eines Triggers ausführen.

    Dieses Beispiel benennt den Trigger in HTTP-Webhooktrigger um, damit der Schritt über einen aussagekräftigeren Namen verfügt. Darüber hinaus fügt das Beispiel später eine HTTP-Webhookaktion hinzu, und beide Namen müssen eindeutig sein.

  5. Geben Sie die Werte für die Parameter des HTTP-Webhooktriggers an, die Sie für die Aufrufe zum Abonnieren und Kündigen eines Abonnements verwenden möchten.

    Eigenschaft Erforderlich Beschreibung
    Subscribe-Methode Ja Die Methode, die beim Abonnieren des Zielendpunkts verwendet werden soll.
    Abonnement-URI Ja Die URL, die zum Abonnieren des Zielendpunkts verwendet werden soll.
    Abonnement-Inhalt Nein Jeder Nachrichtentext, der in die Abonnementanforderung eingeschlossen werden soll. Dieses Beispiel beinhaltet die Rückruf-URL, die den Abonnenten eindeutig identifiziert, bei dem es sich um Ihre Logik-App handelt, indem der @listCallbackUrl()-Ausdruck verwendet wird, um die Rückruf-URL Ihrer Logik-App abzurufen.
    Kündigungstext Nein Ein optionaler Nachrichtentext, der in die Anforderung der Abonnementkündigung eingeschlossen werden soll.

    Hinweis: Diese Eigenschaft unterstützt nicht die Verwendung der listCallbackUrl()-Funktion. Der Trigger schließt jedoch automatisch die Header x-ms-client-tracking-id und x-ms-workflow-operation-name ein und sendet sie, die der Zieldienst verwenden kann, um den Abonnenten eindeutig zu identifizieren.
    Unsubscribe-Methode Nein Die Methode, die beim Kündigen des Abonnements des Zielendpunkts verwendet werden soll.
    Abmelden-URI Nein Die URL, die zum Kündigen des Abonnements des Zielendpunkts verwendet werden soll.

    Hinweis

    Fügen Sie sie für die Eigenschaften "Unsubscribe Method " und "Unsubscribe URI " zu Ihrer Aktion hinzu, indem Sie die Liste "Erweiterte Parameter" öffnen.

    Der folgende Trigger umfasst beispielsweise die Methoden, URIs und Nachrichtentexte, die beim Durchführen der Vorgänge „Abonnieren“ und „Abonnement kündigen“ verwendet werden sollen.

    Screenshot: Standardworkflow mit HTTP-Webhook-Triggerparametern.

    Wenn Sie die Authentifizierung verwenden müssen, können Sie die Eigenschaften " Authentifizierung abonnieren " und " Authentifizierung kündigen" hinzufügen. Weitere Informationen zu den für HTTP-Webhook verfügbaren Authentifizierungstypen finden Sie unter Hinzufügen der Authentifizierung zu ausgehenden Aufrufen.

  6. Fahren Sie mit dem Erstellen des Workflows fort, und fügen Sie weitere Aktionen hinzu, die bei Auslösung des Triggers ausgeführt werden.

  7. Wenn Sie fertig sind, speichern Sie Ihren Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.

Durch das Speichern Ihres Workflows wird der Abonnementendpunkt im Zieldienst aufgerufen und die Rückruf-URL registriert. Ihr Workflow wartet dann darauf, dass der Zieldienst eine HTTP POST-Anforderung an die Rückruf-URL sendet. Wenn dieses Ereignis eintritt, wird der Trigger ausgelöst und übergibt alle Daten in der Anforderung an den Workflow. Wenn dieser Vorgang erfolgreich abgeschlossen wurde, kündigt der Trigger das Abonnement des Endpunkts, und Ihr Workflow fährt mit der nächsten Aktion fort.

Hinzufügen einer HTTP-Webhookaktion

Diese integrierte Aktion ruft den Abonnementendpunkt im Zieldienst auf und registriert eine Rückruf-URL beim Zieldienst. Ihr Workflow pausiert und wartet dann darauf, dass der Zieldienst eine HTTP POST-Anforderung an die Rückruf-URL sendet. Wenn dieses Ereignis eintritt, übergibt die Aktion alle Daten in der Anforderung an den Workflow. Wenn der Vorgang erfolgreich abgeschlossen wurde, kündigt die Aktion das Abonnement des Endpunkts, und Ihr Workflow fährt mit der nächsten Aktion fort.

  1. Öffnen Sie im Azure-Portal Ihre Ressource vom Typ „Logic App (Standard)“.

  2. Wählen Sie in der Seitenleiste "Ressourcen" unter Workflows die Option Workflows aus, und wählen Sie dann Ihren Workflow aus.

  3. Wählen Sie im Menü "Workflow-Randleiste" unter "Extras" den Designer aus, um den Workflow zu öffnen.

    Dieses Beispiel verwendet den HTTP-Webhooktrigger als ersten Schritt.

  4. Fügen Sie dem Workflow die HTTP-Webhook-Aktion hinzu, indem Sie die allgemeinen Schritte zum Hinzufügen einer Aktion ausführen.

    Dieses Beispiel benennt die Aktion in HTTP-Webhookaktion um, damit der Schritt über einen aussagekräftigeren Namen verfügt.

  5. Geben Sie die Werte für die HTTP-Webhook-Aktionsparameter an, die den HTTP-Webhook-Triggerparametern ähneln, die Sie für die Aufrufe zum Abonnieren und Kündigen des Abonnements verwenden möchten.

    Eigenschaft Erforderlich Beschreibung
    Subscribe-Methode Ja Die Methode, die beim Abonnieren des Zielendpunkts verwendet werden soll.
    Abonnement-URI Ja Die URL, die zum Abonnieren des Zielendpunkts verwendet werden soll.
    Abonnement-Inhalt Nein Jeder Nachrichtentext, der in die Abonnementanforderung eingeschlossen werden soll. Dieses Beispiel beinhaltet die Rückruf-URL, die den Abonnenten eindeutig identifiziert, bei dem es sich um Ihre Logik-App handelt, indem der @listCallbackUrl()-Ausdruck verwendet wird, um die Rückruf-URL Ihrer Logik-App abzurufen.
    Kündigungstext Nein Ein optionaler Nachrichtentext, der in die Anforderung der Abonnementkündigung eingeschlossen werden soll.

    Hinweis: Diese Eigenschaft unterstützt nicht die Verwendung der listCallbackUrl()-Funktion. Die Aktion schließt jedoch automatisch die Header x-ms-client-tracking-id und x-ms-workflow-operation-name ein und sendet sie, die der Zieldienst verwenden kann, um den Abonnenten eindeutig zu identifizieren.
    Unsubscribe-Methode Nein Die Methode, die beim Kündigen des Abonnements des Zielendpunkts verwendet werden soll.
    Abmelden-URI Nein Die URL, die zum Kündigen des Abonnements des Zielendpunkts verwendet werden soll.

    Hinweis

    Fügen Sie sie für die Eigenschaften "Unsubscribe Method " und "Unsubscribe URI " zu Ihrer Aktion hinzu, indem Sie die Liste "Erweiterte Parameter" öffnen.

    Die folgende Aktion umfasst beispielsweise die Methoden, URIs und Nachrichtentexte, die beim Durchführen der Vorgänge „Abonnieren“ und „Abonnement kündigen“ verwendet werden sollen.

    Screenshot: Standardworkflow mit HTTP-Webhook-Aktionsparametern.

  6. Öffnen Sie die Liste Erweiterte Parameter, um weitere Aktionseigenschaften hinzuzufügen.

    Wenn Sie beispielsweise die Authentifizierung verwenden müssen, können Sie die Eigenschaften Authentifizierung abonnieren und Authentifizierung abbestellen hinzufügen. Weitere Informationen zu den für HTTP-Webhook verfügbaren Authentifizierungstypen finden Sie unter Hinzufügen der Authentifizierung zu ausgehenden Aufrufen.

  7. Wenn Sie fertig sind, speichern Sie Ihren Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.

Wenn diese Aktion ausgeführt wird, ruft Ihr Workflow den Abonnementendpunkt im Zieldienst auf und registriert die Rückruf-URL. Ihr Workflow pausiert und wartet dann darauf, dass der Zieldienst eine HTTP POST-Anforderung an die Rückruf-URL sendet. Wenn dieses Ereignis eintritt, übergibt die Aktion alle Daten in der Anforderung an den Workflow. Wenn der Vorgang erfolgreich abgeschlossen wurde, kündigt die Aktion das Abonnement des Endpunkts, und Ihr Workflow fährt mit der nächsten Aktion fort.

Ausgaben aus Triggern und Aktionen

Hier sind weitere Informationen zu den Ausgaben eines HTTP-Webhook-Triggers oder einer Aktion, die diese Informationen zurückgibt:

Eigenschaftenname Typ Beschreibung
Überschriften Objekt (object) Die Header aus der Anforderung
Körper Objekt (object) Das Objekt mit dem Inhalt des Texts aus der Anforderung
Statuscode INT Der Statuscode aus der Anforderung
Statuscode Beschreibung
200 OKAY
202 Zulässig
400 Ungültige Anforderung
401 Nicht autorisiert
403 Verboten
404 Nicht gefunden
500 Interner Serverfehler. Unbekannter Fehler.

Generieren einer Rückruf-URL mit sekundärem Zugriffsschlüssel

Ein Logik-App-Workflow verfügt über zwei Zugriffstasten: primär und sekundär. Standardmäßig verwendet Azure Logic Apps den Primärschlüssel, um die Rückruf-URL für den HTTP-Webhook-Trigger zu generieren.

Führen Sie die folgenden Schritte aus, um den sekundären Schlüssel stattdessen für die Generierung von Rückruf-URLs zu verwenden:

  1. Wechseln Sie im Workflow-Designer zur Codeansicht.

  2. Suchen Sie in der HttpWebhook Triggerdefinition den accessKeyType Parameter.

  3. Geben Sie das Wort Secondary als Parameterwert an.

  4. Denken Sie daran, Ihre Änderungen zu speichern.

Das folgende Beispiel zeigt die Triggerdefinition des Webhooks, für die der Parameter accessKeyType auf Secondary festgelegt ist.

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