Webhooks sind eine Funktion in ArcGIS Enterprise, mit der automatisch ereignisgesteuerte Informationen für Webhook-Empfänger oder andere Anwendungen bereitgestellt werden. ArcGIS Enterprise unterstützt zwei Typen von Webhooks:
- Organisations-Webhooks: Administratoren können Ereignis-Trigger zu den Benutzern, Gruppen und Elementen einer Organisation abonnieren.
- Service-Webhooks: Administratoren können Webhooks für Geoverarbeitungs- und Feature-Services abonnieren.
- Geoverarbeitungs-Webhooks: Administratoren können festlegen, dass Webhooks für Geoverarbeitungsservices ausgelöst werden, wenn ein Auftrag für einen Geoverarbeitungsservice abgeschlossen wird.
- Feature-Service-Webhooks: Administratoren können Ereignis-Trigger, die sich auf die Feature-Services einer Organisation beziehen, abonnieren.
Der Prozess ist für alle ArcGIS Enterprise-Webhooks ähnlich. Nach dem Auslösen eines Webhooks werden Ereignisinformationen in einem JSON-Schema mit spezifischen relevanten Informationen für jeden Webhook-Typ übermittelt. Bei jedem Webhook-Typ können bestimmte Ereignisse abonniert werden. Organisations-Webhooks können beispielsweise ausgelöst werden, wenn ein Element veröffentlicht oder ein neues Benutzerkonto erstellt wurde. Feature-Service-Webhooks können ausgelöst werden, wenn das Schema eines Feature-Layers geändert wurde. Webhooks für Geoverarbeitungsservices übermitteln nur Ereignisinformationen, wenn ein Auftrag für einen Geoverarbeitungsservice abgeschlossen wurde.
Mit den übermittelten Ereignisinformationen führen die Empfängerplattformen eine bestimmte Aktion aus, mit der Organisationsmitglieder und Administratoren über das Ereignis informiert werden. Entsprechend den Anforderungen der Organisation kann dies das Senden von E-Mails an bestimmte Mitglieder oder die Benachrichtigung von Administratoren in Slack sein.
Da Webhooks Benachrichtigungen bereitstellen, sobald ein Ereignis eintritt, können sie effektiver sein als Polling. Anders als beim Polling müssen Anwendungen bei Webhooks nicht ständig das System überprüfen, um festzustellen, ob ein bestimmtes Ereignis eingetreten ist.
Szenario: Organisations-Webhooks
Angenommen, in einer ArcGIS Enterprise-Organisation gibt es verschiedene spezifische Standards, die jedes Element erfüllen muss, damit es öffentlich freigegeben werden kann. Die Administratoren in dieser Organisation möchten einen Workflow erstellen, mit dem sie in Echtzeit reagieren können, wenn ein Element freigegeben wurde, das nicht den Standards entspricht. Sie möchten Webhooks verwenden, um benachrichtigt zu werden, wenn ein Elementbesitzer ein Element öffentlich freigegeben hat. Die Ereignisinformationen in der Payload sollen als Teil eines Skripts verwendet werden, mit dem die Administratoren benachrichtigt werden, wenn das Element den Standards nicht entspricht. Auf diese Weise sollen die Administratoren die Möglichkeit haben, das Element zu aktualisieren oder die öffentliche Freigabe aufzuheben.
Die folgende Liste zeigt, wie Webhooks von den Organisationsadministratoren zur Erstellung dieses Workflows genutzt werden können:
- Die Organisationsadministratoren richten den Webhook-Empfänger so ein, dass eingehende Payloads als lokale Textdateien geschrieben werden.
- Die Administratoren erstellen ein Python-Skript, das die Payload-Textdatei parst, um relevante Informationen über das Element und den durchgeführten Vorgang zu extrahieren. Mithilfe desselben Skripts können Administratoren auf diese Informationen reagieren, indem sie eine Benachrichtigung an einen bestimmten Slack-Channel senden. Wenn ein Element öffentlich freigegeben wird, den öffentlichen Standards jedoch nicht entspricht, verwendet das Skript die Slack-API, um eine Nachricht an die Organisationsadministratoren zu senden, in der die fehlenden oder falschen Informationen aufgeführt sind.
- Nach dem Erstellen des Skripts erstellen die Administratoren einen Webhook, der ausgelöst wird, wenn ein Elementbesitzer ein Element freigibt.
- Wenn ein Element freigegeben wird, parst das Skript die Payload-Textdatei und ermittelt, ob das Element öffentlich oder innerhalb der Organisation freigegeben wurde. Bei einer Freigabe innerhalb der Organisation erfolgt keine weitere Maßnahme. Wird das Element öffentlich freigegeben, bewertet das Skript das Element basierend auf den von der Organisation festgelegten Standards. Bei einer niedrigen Bewertung (d. h. wenn die öffentlichen Standards nicht erfüllt sind) werden die Administratoren in ihrem Slack-Channel darüber informiert, welches Element freigegeben wurde und welche seiner Metadaten aktuell nicht den Standards entsprechen.
- Ein Administrator der Organisation kann darauf reagieren, indem er entweder die Metadaten so aktualisiert, dass die Standards erfüllt werden, die Freigabe des Elements aufhebt oder den Elementbesitzer direkt in Slack benachrichtigt, damit dieser die erforderlichen Änderungen vornimmt.