Eine neue Funktion in ArcGIS Enterprise 10.7 ermöglicht Webhooks zu erstellen. Mit Webhooks lassen sich komplexe Arbeitsvorgänge vereinfachen, denn Webhooks sind ein Werkzeug für die Erstellung ereignisgesteuerter, automatisierter Workflows.

Dieser Blog erläutert Ihnen die Vorteile von Webhooks und deren vielseitige Anwendungsmöglichkeiten.

Anwendungsbeispiele

Jedes mal wenn ein neues Element im Portal gespeichert wird,
werden in Ihrer ArcGIS Organisation eine Reihe von Prozeduren ausgeführt

Hier einige Beispiele:

  • Prüfung des Elements auf Vollständigkeit der Metadaten.
  • Einfügen der Standard-Miniaturansichten der Organisation, Tags und Beschreibungen.
  • Ausführen eines Scripts zur Replizierung der primären Bereitstellung in eine Standby-Bereitstellung, sodass alle zur Primär-Site hinzugefügten Elemente auch in der Standby-Site verfügbar sind.

Im Prinzip benötigte man eine effiziente Methode, um festzustellen, dass ein neues Element zum ArcGIS Enterprise-Portal hinzugefügt wurde. 

Da Elemente nicht nach einem festgelegten Muster erstellt werden, ist dies aber durchaus eine Herausforderung. Praktisch wäre eine Lösung, um neu hinzugefügte Elemente zu identifizieren und so zeitnah zu reagieren. Im Folgenden sollen einige mögliche Szenarien betrachtet werden:

Option A: Manuelles Erfassen und Zählen der Elemente

Je nach Anzahl der Benutzer in der Organisation und der Zahl der erstellten Elemente könnten Sie die Elemente nach Datum sortieren oder im Tagesverlauf zählen. Dieser Ansatz stößt jedoch sehr schnell an seine Grenzen, wenn neue Elemente hinzugefügt werden. Dazu kommt: Es gibt sicher wichtigere Aufgaben als Elemente im Portal zu zählen.

Option B: Abfragen der ArcGIS REST API

Ein erfahrener Administrator könnte ein Skript erstellen, um in einem festgelegten Intervall die ArcGIS REST API aufzurufen und feststellen, ob neue Elemente zum Portal hinzugefügt wurden.

Abbildung 1: SkriptBeispiel

Diese Vorgehensweise wenden vermutlich viele Administratoren an: Aufrufen der APIs, um Änderungen in der Organisation und an Inhalten zu erfassen. Dies ist vor allem für Änderungen relevant, von denen operative Workflows abhängig sind. Dieser Ansatz hat jedoch auch Grenzen: Er ist keine besonders effektive Methode, Informationen zu erfassen. Und da solche Änderungen normalerweise sehr spontan auftreten, kann es durch die festgelegten Intervalle zu zeitlichen Verzögerungen in den Prozessen kommen.

Option C: Verwenden von Webhooks

Besonders erfahrene Anwender sind geneigt, diese Aufgabe dem System zu übertragen und informiert zu werden, wenn dem Portal ein neues Element hinzugefügt wurde. Dies lässt sich in ArcGIS Enterprise 10.7 ganz einfach mit Webhooks umsetzen. Webhooks ermöglichen es Administratoren, Ereignisse im Portal zu abonnieren und informiert zu werden, wenn eines dieser Ereignisse auftritt. Wie dies genau funktioniert, wird im Folgenden erläutert.

Zuerst wird ein Webhook in der Organisation eingerichtet. Das Ziel ist, benachrichtigt zu werden, sobald ein neues Element hinzugefügt wird. Daher wird der Webhook mit einem „Abonnement“ für das Ereignis „Element hinzufügen“ konfiguriert. Sobald ein neues Element hinzugefügt wird, wird der Webhook ausgelöst.

Über das URI-Muster wird angegeben, für welche Ereignisse im Portal ein Abonnement erstellt werden soll. Für das Ereignis „Element hinzufügen“ lautet die URI beispielsweise /items/add. Der Webhook kann für eine Reihe von Ereignissen im Portal konfiguriert werden. Eine Übersicht finden Sie in der Dokumentation.

Abbildung 2: Benutzer legt ein Element in Portal an

Bei der Konfiguration des Webhook muss die URL einer Anwendung oder eines Service angegeben werden (die sogenannte Payload-URL), die/der auf HTTPS POST-Anforderungen wartet. Sie können bestimmen, wohin die Payload gesendet wird. Zur Auswahl stehen beispielsweise eine Reihe von Webservices wie Microsoft FlowZapierIntegromat und mehr. Sie ermöglichen automatische Workflows und verfügen über verschiedene integrierte Anwendungen wie Outlook, Slack, Power BI und vieles mehr. Sie können beispielsweise mit Zapier einen Workflow konfigurieren, der eine E-Mail oder Slack-Nachricht versendet, sobald ein neues Element zur Organisation hinzugefügt wurde. Die Payload-URL kann auch eine Anwendung sein, die auf Ihren lokalen Servern bereitgestellt wird. Dies ist optimal für Organisationen, die in nicht verbundenen Umgebungen arbeiten.
Auf der folgenden Website finden Sie einige Beispielanwendungen des Esri-Entwicklerteams, die Ihnen das Erstellen von Webhook-Empfängern erleichtern sollen: https://github.com/Esri/webhooks-samples/

Sobald der Webhook ausgelöst wird, sendet er automatisch eine Payload mit allgemeinen Informationen über das jeweilige Ereignis.

Abbildung 3: Payload wird an die Payload-URL gesendet

In unserem Beispiel sind dies Informationen, wie der Name des Benutzers, der ein Element hinzugefügt hat und die Element-ID. Diese Informationen können dann verwendet werden, um eine Abfrage an das Portal zu senden und einen spezifischen Prozess für dieses Element auszuführen.

Payload für dieses Beispiel:

{
“info”: {
“webhookId”: “e893a2b8ff3a40f49a9537236c006dce”,
“webhookName”: “New items added”,
“portalURL”: “https://yourPortalURL.com/portal/”,
“when”: 1544481891249
},
“events”: [{
“userId”: “0a9c99cf4392495585a6f1d34971a2aa”,
“username”: “publisher”,
“when”: 1544481889202,
“operation”: “add”,
“source”: “item”,
“id”: “eea1bac77ce44514b85ec604b16ab7f0”,
“properties”: {}
}]
}

Nun, da diese Aufgabe komplett vom System übernommen wird, können die externen Workflows erstellt werden, mit denen auf diese Ereignisse reagiert wird.

Dies ist nur eines von zahlreichen Szenarien, wie sich die Administration des ArcGIS Enterprise-Portals mithilfe von Webhooks in ArcGIS Enterprise 10.7 effizienter gestalten lässt.

Weitere Informationen zu Webhooks und ihre Erstellung in ArcGIS Enterprise finden Sie in der Portal-Dokumentation und der Dokumentation zur ArcGIS REST API.