ArcGIS Enterprise の Webhook 機能を利用したサービス連携

はじめに

Webhook とはアプリケーションやサービスの更新情報を他のアプリケーションやサービスへリアルタイムに提供する仕組みや概念のことを指します。イベントの発生時に指定した URL に対して、HTTP で POST リクエストを送る仕組みです。

Webhook を利用して、ArcGIS Enterprise で何ができるのか?

ArcGIS Enterprise の組織のユーザー情報、グループ情報、アイテム情報の追加、削除、更新、移動、公開、共有などのイベント情報が扱えます。この機能により、たとえば、Microsoft Teams のチャネルに投稿することなどができます。また、バージョン 11.0 より、ベータ機能になりますがジオプロセシングやフィーチャ サービスのイベントをサブスクライブすることができるようになりました(※ベータ機能はサポート対象外です)。

ArcGIS Pro から ArcGIS Enterprise への Web レイヤーの公開情報をMicrosoft Teams へ投稿

それでは実際に Webhook を利用して ArcGIS Enterprise への Web レイヤーの公開情報を Microsoft Teams のチャネルへ投稿してみます。ArcGIS Enterprise はバージョン 10.9.1 を利用しています。

ここでは Zapier というサービスを利用してみます。主なサービス連携の流れは以下のとおりです。

  • ArcGIS Enterprise に Web レイヤーが公開されたイベント情報が Zapier のペイロード URL (送信先 URL) に送信される。
  • Zapier でイベント情報を受信して JSON 形式へ変換される。
  • Microsoft Teams のチャネルへメールでイベント情報を送信する。

はじめに Zapier にて、Webhook のレシーバーを用意します。

Catch Raw Hook での WebHooks by Zaiper を配置します。POST によるリクエストボディをヘッダー含めて受信できます。

Webhook の URL が発行されるので、コピーして控えておきます。(ArcGIS Enterprise にて Payload URL として設定します。)

次に Run Python in Code by Zapier により、WebHooks by Zaiper で受信した文字列を JSON に変換します。

Input Data として、webhook_body と入力し、Insert Data にRaw Body を選択します。Code は以下の通りです。

例)

import json

return json.loads(input[“webhook_body”])

リクエストのボディ部を json 形式に変換しています。

Zaiper サービス設定の最後に Email by Zaiper を選択し、送信先のメールアドレス (Teams のチャネルから取得)、メール タイトル、メール本文を設定します。

Portal for ArcGIS にて ArcGIS Portal Directory に移動し(https://machine.domain.com/webadaptor/sharing/rest)、管理者としてサインインします。

[Portal] > [Self] リソースページ(https://machine.domain.com/webadaptor/sharing/rest/portals/<orgID>)に移動し、ページの下部にスクロールし、[Child Resources] の下にある Webhooks に移動します。

[Webhook] > [Create Webhook] にて、Webhook のパラメータを指定し、Create Webhook ボタンを実行します。

ArcGIS Pro にて、Web レイヤーを Webhook 設定した ArcGIS Enterprise に共有します。

ArcGIS Enterprise での Web レイヤーの公開情報イベントが Microsoft Teams のチャネルに投稿されました。

ArcGIS Enterprise であれば機能の設定を行うことで他のサービスとの連携が可能となります。GIS 活用の中での DX推進のヒントにしてみてください。

※参考 Webhook の作成と管理

フォローする