Webhook は、Webhook レシーバーまたは他のアプリケーションにイベント駆動型の情報を自動的に提供する ArcGIS Enterprise の機能です。 ArcGIS Enterprise では、次の 2 種類の Webhook がサポートされています。
- 組織 Webhook - 管理者は、組織のユーザー、グループ、およびアイテムに関連するイベント トリガーに登録することができます。
- サービス Webhook - 管理者は、ジオプロセシング サービスとフィーチャ サービスの Webhook に登録することができます。
- ジオプロセシング サービス Webhook - 管理者は、ジオプロセシング サービスのジョブが完了した時点で呼び出されるようにジオプロセシング サービス Webhook を設定することができます。
- フィーチャ サービス Webhook - 管理者は、組織のフィーチャ サービスに関連するイベント トリガーに登録することができます。
ArcGIS Enterprise の Webhook はいずれも、同様の手順に従います。 Webhook がトリガーされると、イベント情報が JSON スキーマで配信されます。このスキーマは、各 Webhook タイプに固有であり、関連情報が格納されています。 Webhook タイプごとに、その Webhook タイプを登録できる固有のイベントがあります。 たとえば、組織 Webhook は、アイテムが公開された時点または新しいユーザー アカウントが作成された時点で呼び出すことができます。 フィーチャ サービス Webhook は、フィーチャ レイヤーのスキーマが変更された時点でトリガーすることができます。 ジオプロセシング サービス Webhook は、ジオプロセシング サービスのジョブが完了している場合にのみイベント情報を配信します。
イベント情報が配信されると、レシーバーのプラットフォームでは、イベントが発生したことを組織のメンバーと管理者に通知する特定の処理が実行されます。 組織のニーズに応じて、指定のメンバーに電子メールを送信するか、Slack で管理者にメッセージを送信することができます。
Webhook は、イベントが発生した時点で通知を配信するので、ポーリングよりも有効です。 ポーリングとは異なり、Webhook を使用すると、アプリケーションは、毎回システムを調べて特定のイベントが発生したかどうかを確認する必要がなくなります。
シナリオ: 組織 Webhook
パブリックに共有する前に各アイテムが満たす必要のある一連の標準が ArcGIS Enterprise 組織で設定されているシナリオを想定してください。 この組織の管理者は、標準を満たしていないアイテムが共有された場合にリアルタイムで対応できるワークフローを確立したいと思っています。 また、これらの管理者は、Webhook を活用して、アイテムの所有者がそのアイテムをパブリックに共有した時点でその旨が管理者に通知され、ペイロード内のイベント情報をスクリプトの一部として使用し、そのアイテムが標準を満たしていない場合にのみ管理者にメッセージが送信されるようにしたいと考えています。これにより、管理者は、アイテムを更新したり、アイテムをパブリックに共有されないようにしたりできるようになります。
このワークフローを確立するために、組織の管理者が Webhook をどのように活用できるかを次に示します。
- 組織の管理者は、受信ペイロードをローカル テキスト ファイルとして作成するように Webhook レシーバーを設定します。
- 管理者は、ペイロード テキスト ファイルを解析して、そのアイテムに関連する情報と実行された操作に関連する情報を抽出する Python スクリプトを作成します。 同じスクリプトで、管理者は、通知を指定の Slack チャンネルに送信して、この情報に応答することができます。 アイテムがパブリックに共有されているが、パブリックの標準を満たしていない場合に、このスクリプトは、Slack API を使用して、不足している情報や誤りのある情報を示すメッセージを組織の管理者に送信します。
- このスクリプトの作成が終了したら、管理者は、アイテムの所有者がそのアイテムを共有した時点でトリガーされる Webhook を作成します。
- アイテムが共有されている場合、このスクリプトは、ペイロード テキスト ファイルを解析し、そのアイテムがパブリックに共有されているか、組織内で共有されているかを確認します。 組織内で共有されている場合、追加の処理は実行されません。 アイテムがパブリックに共有されている場合、このスクリプトは、組織が設定した標準に基づいてそのアイテムを評価します。 評価が低い (つまり、パブリックの標準が満たされていない) 場合は、どのアイテムが共有されているか、また現時点で該当するアイテムのどのメタデータが標準を満たしていないかの情報が Slack チャンネルで管理者に通知されます。
- この後、組織の管理者は、標準を満たすようにメタデータを更新するか、該当するアイテムの共有を解除するか、必要な変更を加えるよう求めるメッセージを該当するアイテムの所有者に送信するかのいずれかで、Slack から直接対応することができます。