Action-Webhook Connectoren dieser Art können als ein "Wrapper" für APIs betrachtet werden, da sie eine Schnittstelle zwischen verschiedenen Anwendungen oder Diensten darstellen und die Kommunikation erleichtern. Webhooks übertragen Daten an andere Anwendungen, sobald ein Ereignis eintritt, anstatt regelmäßig neue Informationen anzufordern. Dadurch werden Prozesse mit Webhooks effektiver, da keine Wartezeiten für den Empfang der Informationen bestehen.
Erstelle deinen benutzerdefinierten Connector:
Suche im Azure-Portal nach 'Logic Apps Custom Connector' und klicke auf 'Create'. Nachdem du deine Ressourcengruppe ausgewählt und den Namen eingegeben hast, klicke auf Review+Create'.
Nachdem der benutzerdefinierte Connector bereitgestellt ist, klicke auf 'Go To Resource' und dann auf 'Overview'. Klicke anschließend auf 'Edit', um den Connector zu bearbeiten.
Die Übersicht, die Azure anbietet, stellt Webhooks nur für Trigger zur Verfügung, daher ist es nicht möglich, über den Azure Editor eine Action zu erstellen, die sich wie ein Webhook verhält. Aus diesem Grund müssen die Eigenschaften über den Swagger Editor gesetzt werden.
Der Swagger Editor erlaubt es uns, viel detaillierte Eigenschaften zu setzen, als es der normale Editor erlaubt oder nur für Trigger erlaubt. Die OpenApi-Definitionen haben Erweiterungen, die für Logic-Apps bestimmt sind. Hier ist eine Liste von den Erweiterungen, die man benutzen kann:
https://learn.microsoft.com/de-de/connectors/custom-connectors/openapi-extensions
Damit die Action sich wie ein Webhook verhält, müssen wir für die Action zwei Open-Api Eigenschaften abgeben. Eine davon ist die „x-ms-notification-content“. Das verwandelt die Action in einem Webhook.
Du kannst unter „Schema" deinen Webhook-Payload angeben oder, wenn du das Schema mehrmals verwenden möchtest, es unter "Definitionen" speichern und wie im Screenshot referenzieren.
Bei der Anfrage ist es wichtig, am Service eine Callback-URL anzugeben. Der gestartete Workflow wird pausiert und wird warten, bis die Callback-URL aufgerufen wird.
Um dies zu erreichen, müssen wir einen Parameter, den wir beliebig benennen können, als ‚required‘ kennzeichnen und die „x-ms-notification-url“ mit dem Wert 'true' setzen. Nachdem alle benötigten Eigenschaften gesetzt wurden, können wir service-relevante Parameter unter ‚properties‘ angeben. Nach Festlegung der relevanten Eigenschaften für den Connector sieht der Swagger-Editor wie folgt aus.
Wenn die Anfrage beim Service abgeschlossen ist, erwartet die Logic-Apps im "Location"-Header der Antwort eine Unsubscribe-URL, die ausgelöst wird, nachdem der Webhook abgeschlossen oder abgebrochen wurde. Das dient dazu, den Webhook-Eintrag im Service zu löschen und Service Überlastungen zu vermeiden. Es ist erforderlich, dass die Unsubscribe-URL und die Delete-Action übereinstimmen.
Die erstellte Action sollte für den Benutzer nicht sichtbar sein, da die Action nur für das Unsubscribe verwendet werden sollte. Daher ist es sinnvoll, die Visibilität der Action auf 'internal' zu setzen.
Hinweis: Der Connector kann gelegentlich anzeigen, dass der Speichervorgang erfolgreich war, obwohl dies oft nicht der Fall ist. Bitte stelle daher sicher, dass der Editor tatsächlich erfolgreich gespeichert wurde.
Dieser erstellte benutzerdefinierte Connector wird sowohl für 'Consumption' als auch für 'Standard' Logic-Apps sichtbar sein. Daher kann der Connector auf beiden Ebenen unter 'Custom' erreicht werden.
Nach erfolgreichem Speichern sieht die Aktion wie in den oben gezeigten Screenshots aus. Es ist nun möglich, Workflows in beliebiger Reihenfolge abzuarbeiten oder gegebenenfalls nach bestimmten Aufgaben weiterlaufen zu lassen.
Dieser quiTeq-Tipp wurde von Görkem Biyikli, QUIBIQ Berlin zur Verfügung gestellt.