組織の管理者は、特定のイベントが発生したときに通知を受けるように ArcGIS Enterprise デプロイメントの Webhook を構成できます。 以下の各セクションでは、Organization Webhook とサービス Webhook を構成する方法について説明します。
Webhook を作成するための前提条件
Webhook を作成する前に、以下を考慮してください。
- 組織 Webhook を使用するには、組織が ArcGIS Enterprise 10.7 以降を使用している必要があります。 サービス Webhook を使用するには、組織が ArcGIS Enterprise 11.0 以降を使用している必要があります。
- 組織 Webhook を作成および管理するには、組織 Webhooks 権限またはデフォルトの管理者ロールが割り当てられている必要があります。
- ジオプロセシング サービス Webhook を作成および管理するには、ジオプロセシング権限、デフォルトの管理者ロール、または公開者ロールが割り当てられている必要があります。
- フィーチャ サービス Webhook を作成および管理するには、フィーチャ レイヤー権限、デフォルトの管理者ロール、または公開者ロールが割り当てられている必要があります。
- HTTPS を介して通信するように Webhook レシーバーが構成されている必要があります。 サードパーティ Web サービス レシーバー (Microsoft Power Automate、Zapier、および IFFT) やカスタム Web サービスなどのレシーバーでサポートされているいくつかのオプションがあります。 カスタム Web サービスの作成方法の例、およびサードパーティ レシーバーの基本操作については、Webhook リポジトリをご参照ください。
- ホスト フィーチャ サービスの Webhook を構成するには、そのサービスに編集機能が含まれていて、同期なしの変更追跡が有効になっている必要があります。
- ホストされていないフィーチャ サービスの Webhook を構成するには、そのサービスが参照しているエンタープライズ ジオデータベース データが変更追跡の要件を満たし、次のパターンのいずれかに従っている必要があります。
- 履歴管理が有効で、Global ID を持つバージョン非対応のフィーチャ サービスであること。
- バージョン管理機能が有効ではなく、編集内容がデフォルト バージョンのフィーチャに直接適用されるブランチ バージョン対応フィーチャ サービスであること。
- バージョン管理機能が有効なブランチ バージョン対応フィーチャ サービスであること。 バージョン管理機能が有効な場合、サービスは FeaturesPosted イベント トリガーを持つ Webhook を作成します。このイベント トリガーにより、そのサービスでポスト操作が実行されると必ずその Webhook が呼び出されます。
注意:
ブランチ バージョン対応フィーチャ サービスのサポートは、ArcGIS Enterprise 11.3 で追加されました。
- ジオプロセシング サービスの Webhook を構成するには、そのサービスが非同期でなければなりません。
Organization Webhook の作成
Organization Webhook を使用することで、ArcGIS Enterprise ポータル アイテム、グループ、およびユーザーに関連付けられたイベントのトリガーに登録できます。
注意:
組織 Webhook は、ArcGIS Enterprise ポータル Web サイトまたは ArcGIS Portal Directory から作成することができます。 ユーザー、グループ、およびアイテム関連のイベントについての Webhook を作成する POST リクエストの例については、REST API ドキュメントの「Create Webhook」をご参照ください。
ArcGIS Portal Directory での組織 Webhook の作成
ArcGIS Portal Directory から組織 Webhook を作成するには、次の手順を実行します。
- ArcGIS Portal Directory を参照し、管理者ロールを持つメンバーとしてサイン インします。
組織 Webhook を作成および管理できるのは、組織 Webhook 権限が付与された管理者、またはデフォルト管理者ロールが割り当てられているメンバーだけです。
https://organization.domain.com/context/sharing/rest
サイン インすると、自分のアカウントの [User] リソース ページが表示されます。
- [Org ID] ハイパーリンクをクリックするか、以下のフォームのリクエストを行い、[Portal] → [Self] リソース ページにアクセスします。
https://organization.domain.com/context/sharing/rest/portals/self
- [Self] リソース ページの下部にスクロールし、[Webhook] > [Create Webhook] の順にクリックして [Create Webhook] 操作にアクセスします。
- [Create Webhook] エンドポイントで、次の情報を入力します。
- [Name] テキスト ボックスに Webhook の一意の名前を入力します。
- [Payload URL] テキスト ボックスに Webhook レシーバーのペイロード URL を入力します。レシーバーと ArcGIS Enterprise ポータル間の正常な接続が可能であるかを確認するため、Webhook の作成中にこの URL がクエリされます。
ペイロード URL の例を以下に示します。
https://app.logic.azure.com:443/workflows/b688528a36e246279dc050f936e5ebd4/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=nHP-LBo9x-nSgMi11DSDuwRIUiJr-8yKGCy7OYaT_ow
- 必要に応じて、レシーバーで Webhook メッセージを認証するときに使用可能な Webhook のシークレットを設定します。 [Secret (Optional)] テキスト ボックスに、ユーザー定義の英数字文字列を入力します。
- 必要に応じて、[Configuration Properties] テキスト ボックスで、Webhook の非アクティブ化情報を指定します。
デフォルトでは、5 日間で 5 回エラーが発生すると Webhook は非アクティブ化します。
- [Which events would you like to trigger this webhook] で、[Let me define manually] または [Send me everything] を選択します。
- [Let me define manually] を選択した場合、[Send me changes for these comma separated events] テキスト ボックスで、この Webhook に使用するトリガー イベントをリストします。 たとえば、組織内の特定のグループに関連するすべてのイベントに登録する場合、以下に示すようなトリガー イベントを入力します。ここで、[groupID] は、そのグループに関連付けられている一意の ID を表します。
組織 Webhook でサポートされているすべてのイベント トリガーについては、「イベント トリガー」をご参照ください。/groups/[groupID]/update
- [Send me everything] を選択した場合、サポートされているすべてのトリガー イベントに登録することになります。 各イベントが発生すると通知を受けます。
- [Let me define manually] を選択した場合、[Send me changes for these comma separated events] テキスト ボックスで、この Webhook に使用するトリガー イベントをリストします。 たとえば、組織内の特定のグループに関連するすべてのイベントに登録する場合、以下に示すようなトリガー イベントを入力します。ここで、[groupID] は、そのグループに関連付けられている一意の ID を表します。
- 上記のパラメーターを構成したら、[Create Webhook] をクリックしてリクエストを送信します。
操作が完了すると、新しい Webhook が組織に追加されます。
ArcGIS Enterprise ポータル Web サイトでの組織 Webhook の作成
ArcGIS Enterprise ポータル Web サイトから組織 Webhook を作成するには、次の手順を実行します。
- デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールのメンバーとしてサイン インしていることを確認します。
- [組織] > [設定] > [Webhook] の順に参照します。
- [Webhook の作成] をクリックします。
- [Webhook の作成] ウィンドウで、次の手順を実行します。
- [Name] テキスト ボックスに Webhook の一意の名前を入力します。
- [タイプ] ドロップダウン メニューから、Webhook タイプを選択します。
- [すべて] を選択すると、サポートされているすべてのイベント トリガーに登録されます。 各イベントが発生すると通知を受けます。
- [アイテム]、[ユーザー]、[グループ]、または [ロール] を選択すると、登録するトリガー イベントを手動で定義することができます。
- [すべて] 以外の Webhook タイプを選択すると、選択した Webhook タイプに関連する追加のドロップダウン メニューが表示されます。 たとえば、Webhook タイプに [アイテム] を選択すると [アイテム] ドロップダウン メニューが表示され、Webhook が監視する特定のアイテムを選択できます。
- [イベント] ドロップダウン メニューから、トリガー イベントを選択します。 たとえば、特定のアイテムが公開された時点で Webhook を呼び出す場合は、「/items/<アイテム ID>/publish」を選択します。
- [Webhook URL] テキスト ボックスに、Webhook レシーバーのペイロード URL を入力します。 ペイロード URL の例を以下に示します。
https://app.logic.azure.com:443/workflows/b688528a36e246279dc050f936e5ebd4/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=nHP-LBo9x-nSgMi11DSDuwRIUiJr-8yKGCy7OYaT_ow
- 必要に応じて、[シークレット (オプション)] テキスト ボックスに Webhook のシークレット値を設定します。 このシークレット値は、Webhook ペイロードに含まれ、レシーバーでの Webhook メッセージの認証に使用されます。
- [Webhook の作成] をクリックします。
Organization Webhook の詳細パラメーターの構成
組織で利用する Webhook に適用される詳細設定で、配信の試行回数、通知時刻、配信試行間の時間などを指定することによって、Webhook の動作をさらにカスタマイズすることができます。
注意:
組織 Webhook では、ArcGIS Enterprise ポータル Web サイトまたは ArcGIS Portal Directory から、その詳細プロパティを変更することができます。 これらの詳細プロパティを構成する POST リクエストの例については、REST API ドキュメントの「Update Webhook Settings」をご参照ください。
ArcGIS Portal Directory での詳細パラメーターの構成
ArcGIS Portal Directory から詳細プロパティを設定するには、次の手順を実行します。
- ArcGIS Portal Directory を参照し、管理者ロールを持つメンバーとしてサイン インします。
組織 Webhook を作成および管理できるのは、デフォルト管理者ロールが割り当てられているメンバー、または組織 Webhook 権限が付与されたメンバーだけです。
https://organization.domain.com/context/sharing/rest
サイン インすると、自分のアカウントの [User] リソース ページが表示されます。
- [Org ID] ハイパーリンクをクリックするか、以下のフォームのリクエストを行い、[Portal] → [Self] リソース ページにアクセスします。
https://organization.domain.com/context/sharing/rest/portals/self
- [Self] リソース ページの下部にスクロールし、[Webhook] > [Settings] > [Update] の順にクリックして [Update Webhook Settings] 操作にアクセスします。
- [Update Webhook Settings] エンドポイントで、次の情報を入力します。
- [Number of Notification Attempts] の値を設定します。
この値は、Webhook ペイロードを配信する試行回数を指定します。 デフォルトでは、ArcGIS Enterprise ポータルはペイロードの配信を 3 回試行します。 試行回数の値は 0 ~ 5 の整数である必要があります。
- [Notification Time Out in Seconds] の値を設定します。
この値は、ArcGIS Enterprise ポータルがレシーバーからのレスポンスの受信を待機する時間の長さ (秒) を指定します。 デフォルトでは、ArcGIS Enterprise ポータルは 10 秒待機します。 ArcGIS Enterprise ポータルが待機する秒数の値は 0 ~ 60 の整数である必要があります。
- [Notification Elapsed Time in Seconds] の値を設定します。
この値は、各ペイロード配信試行間の時間 (秒) を指定します。 デフォルトで、ArcGIS Enterprise ポータルは、[通知の試行回数] で指定された試行回数に到達するまで、前回の試行に失敗してから 5 秒後に別のペイロードの配信を試行します。
- [Number of Notification Attempts] の値を設定します。
- 上記のパラメーターを構成したら、[Update Webhook Settings] をクリックしてリクエストを送信します。
操作が完了すると、更新されたプロパティが、構成されているすべての Organization Webhook に適用されます。
ArcGIS Enterprise ポータル Web サイトでの詳細パラメーターの構成
ArcGIS Enterprise ポータル Web サイトから詳細プロパティを設定するには、次の手順を実行します。
- デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールのメンバーとして、組織にサイン インします。
- サイトの上部にある [組織] をクリックして、[設定] タブをクリックします。
- ページの左側にある [Webhook] をクリックします。
- [高度な Webhook 設定] をクリックします。
- [高度な Webhook 設定] ウィンドウで、次の手順を実行します。
- [配信の試行回数] の値を設定します。
この値は、Webhook ペイロードを配信する試行回数を指定します。 デフォルトでは、ArcGIS Enterprise ポータルはペイロードの配信を 3 回試行します。 試行回数の値は 0 ~ 5 の整数である必要があります。
- [通知タイムアウト] の値を設定します。
この値は、ArcGIS Enterprise ポータルがレシーバーからのレスポンスの受信を待機する時間の長さ (秒) を指定します。 デフォルトでは、ArcGIS Enterprise ポータルは 10 秒待機します。 ArcGIS Enterprise ポータルが待機する秒数の値は 0 ~ 60 の整数である必要があります。
- [通知の経過時間] の値を設定します。
この値は、各ペイロード配信試行間の時間 (秒) を指定します。 デフォルトで、ArcGIS Enterprise ポータルは、[配信の試行回数] で指定された試行回数に到達するまで、前回の試行に失敗してから 5 秒後に別のペイロードの配信を試行します。
- [配信の試行回数] の値を設定します。
- 上記の設定を構成したら、[保存] をクリックします。
更新されたプロパティが、構成されているすべての組織 Webhook に適用されます。
ジオプロセシング サービス Webhook の作成
ジオプロセシング サービス Webhook を使用することで、ジオプロセシング サービスに関連付けられているイベント トリガーに登録できます。
注意:
ジオプロセシング サービス Webhook は、ArcGIS Server Administrator Directory を介してのみ作成できます。 ジオプロセシング サービス Webhook を作成する POST リクエストの例については、REST API ドキュメントの「 Create Webhook」をご参照ください。
ジオプロセシング サービス Webhook を作成するには、次の手順に従います。
- ArcGIS Enterprise Administrator Site Directory を参照し、適切な権限が割り当てられているメンバーとしてサイン インします。Webhook を作成および管理できるのは、ジオプロセシング権限、デフォルト管理者ロール、または公開者ロールが割り当てられているメンバーだけです。
注意:
ジオプロセシング権限を割り当てられたユーザーは、カスタム ロールにサーバーベース レイヤーを公開する権限も追加する必要があります。
https://organization.domain.com/context/admin
- サイン インしたら、[Services] > [[ServiceName]] > [Webhooks] > [Create]の順にクリックして、ジオプロセシング サービスの [Webhooks] リソースを参照します。ここで、[ServiceName] は、Webhook が作成されるサービスを表します。 特定のフォルダーに格納されているサービスの場合、[Services] > [[FolderName]] > [[ServiceName]] > [Webhooks] > [Create] の順にクリックします。ここで、[FolderName] は、そのサービスが格納されているフォルダーを表します。
注意:
ジオプロセシング サービスの Webhook を構成するには、そのジオプロセシング サービスが非同期でなければなりません。
- [Create Webhook] エンドポイントで、次の情報を入力します。
- [Name] テキスト ボックスに Webhook の一意の名前を入力します。 特殊文字を使用するとエラー メッセージが発生するため、入力する名前には英数字の値のみ含めることができます。
- 必要に応じて、レシーバーで Webhook メッセージを認証するときに使用可能な Webhook のシークレットを設定します。 [Signature Key] テキスト ボックスに、ユーザー定義の英数字文字列を入力します。
サービス Webhook は、署名確認により、ArcGIS Enterprise から Webhook レシーバーに送信される Webhook ペイロードの完全性とセキュリティを確保します。 [署名鍵] テキスト ボックスに入力される英数字文字列は、ArcGIS Enterprise と Webhook レシーバーの両方により認識され、個別に格納される秘密鍵として取り扱われます。 Webhook イベントがトリガーされると、秘密鍵とペイロードが HMAC-SHA256 アルゴリズムを使用してハッシュ化され、署名が作成されます。 その後署名が x-esriHook-Signature ヘッダー値として Webhook リクエストに渡されます。 Webhook ペイロードがレシーバーに渡されたら、レシーバーは、秘密鍵とペイロードを使用し、ArcGIS Enterprise が使用したのと同じ HMAC-SHA256 アリゴリズムを使用して、自身の署名を作成します。 リクエスト ヘッダーに格納された署名が Webhook レシーバーにより作成された再計算値と一致する場合、Webhook ペイロードがレシーバーにより信頼されます。 これらが一致しない場合は、レシーバーが受信 Webhook ペイロードを拒否できます。
- [Hook URL] テキスト ボックスに Webhook レシーバーのペイロード URL を入力します。レシーバーとデプロイメントの ArcGIS Server 間の正常な接続が可能であるかを確認するため、Webhook の作成中にこの URL がクエリされます。 ペイロードの例を以下に示します。
https://app.logic.azure.com:443/workflows/b688528a36e246279dc050f936e5ebd4/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=nHP-LBo9x-nSgMi11DSDuwRIUiJr-8yKGCy7OYaT_ow
- 必要に応じて、メディア タイプを指定します。 [Content Type] ドロップダウン メニューで、次のいずれかを選択します。
- application/json (デフォルト)
- application/x-www-form-urlencoded
- 必要に応じて、ペイロードの形式を定義します。 [Payload Format] ドロップダウン メニューで、次のいずれかを選択します。
- JSON (デフォルト)
- PJSON
- 必要に応じて、[Active] パラメーターを使用して、Webhook がトリガーされたときのコールバックを無効または有効にします。 有効にするには、[True] を選択します。 無効にするには、[False] を選択します。
デフォルトでは、コールバックが有効になっています。
- 上記のパラメーターを構成したら、[Create] をクリックしてリクエストを送信します。
操作が完了すると、新しい Webhook がそのジオプロセシング サービスに適用されます。
注意:
Organization Webhook やフィーチャ サービス Webhook とは異なり、ジオプロセシング サービス Webhook にユーザー定義のイベント トリガーはありません。 ジオプロセシング サービス Webhook はジオプロセシング ジョブが完了するとペイロードを配信します。 ジオプロセシング サービスで配信されるペイロードの詳細については、「ペイロード」をご参照ください。フィーチャ サービス Webhook の作成
フィーチャ サービス Webhook を使用することで、フィーチャ サービスに関連付けられているイベント トリガーに登録できます。
注意:
フィーチャ サービス Webhook は、ArcGIS Server Administrator Directory を介してのみ作成できます。 フィーチャ サービス Webhook を作成する POST リクエストの例については、REST API ドキュメントの「 Create Webhook」をご参照ください。
フィーチャ サービス Webhook を作成するには、次の手順に従います。
- ArcGIS Enterprise Administrator Site Directory を参照し、適切な権限が割り当てられているメンバーとしてサイン インします。Webhook を作成および管理できるのは、フィーチャ レイヤー権限、デフォルト管理者ロール、または公開者ロールが割り当てられているメンバーだけです。
https://organization.domain.com/context/admin
- サイン インしたら、[Services] > [[ServiceName]] > [Webhooks] > [Create] の順にクリックして、フィーチャ サービスの [Webhooks] リソースを参照します。ここで、[ServiceName] は、Webhook が作成されるサービスを表します。 特定のフォルダーに格納されているサービスの場合、[Services] > [[FolderName]] > [[ServiceName]] > [Webhooks] > [Create] の順にクリックします。ここで、[FolderName] は、そのサービスが格納されているフォルダーを表します。
- [Create Webhook] エンドポイントで、次の情報を入力します。
- [Name] テキスト ボックスに Webhook の一意の名前を入力します。 特殊文字を使用するとエラー メッセージが発生するため、入力する名前には英数字の値のみ含めることができます。
- [タイプの変更] テキスト ボックスで、この Webhook に使用するイベント トリガーをリストします。 たとえば、フィーチャ サービスが作成されたときに必ず Webhook を呼び出すには、次のイベント トリガーを使用します。
フィーチャ サービス Webhook でサポートされているすべてのイベント トリガーについては、「イベント トリガー」をご参照ください。例
FeaturesCreated
- 必要に応じて、レシーバーで Webhook メッセージを認証するときに使用可能な Webhook のシークレットを設定します。 [Signature Key] テキスト ボックスに、ユーザー定義の英数字文字列を入力します。
サービス Webhook は、署名確認により、ArcGIS Enterprise から Webhook レシーバーに送信される Webhook ペイロードの完全性とセキュリティを確保します。 [署名鍵] テキスト ボックスに入力される英数字文字列は、ArcGIS Enterprise と Webhook レシーバーの両方により認識され、個別に格納される秘密鍵として取り扱われます。 Webhook イベントがトリガーされると、秘密鍵とペイロードが HMAC-SHA256 アルゴリズムを使用してハッシュ化され、署名が作成されます。 その後署名が x-esriHook-Signature ヘッダー値として Webhook リクエストに渡されます。 Webhook ペイロードがレシーバーに渡されたら、レシーバーは、秘密鍵とペイロードを使用し、ArcGIS Enterprise が使用したのと同じ HMAC-SHA256 アリゴリズムを使用して、自身の署名を作成します。 リクエスト ヘッダーに格納された署名が Webhook レシーバーにより作成された再計算値と一致する場合、Webhook ペイロードがレシーバーにより信頼されます。 これらが一致しない場合は、レシーバーが受信 Webhook ペイロードを拒否できます。
- [Hook URL] テキスト ボックスに Webhook レシーバーのペイロード URL を入力します。レシーバーとデプロイメントの ArcGIS Server 間の正常な接続が可能であるかを確認するため、Webhook の作成中にこの URL がクエリされます。 ペイロードの例を以下に示します。
https://app.logic.azure.com:443/workflows/b688528a36e246279dc050f936e5ebd4/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=nHP-LBo9x-nSgMi11DSDuwRIUiJr-8yKGCy7OYaT_ow
- 必要に応じて、メディア タイプを指定します。 [Content Type] ドロップダウン メニューで、次のいずれかを選択します。
- application/json (デフォルト)
- application/x-www-form-urlencoded
- 必要に応じて、ペイロードの形式を定義します。 [Payload Format] ドロップダウン メニューで、次のいずれかを選択します。
- JSON (デフォルト)
- PJSON
- 必要に応じて、[Active] パラメーターを使用して、Webhook がトリガーされたときのコールバックを無効または有効にします。 有効にするには、[True] を選択します。 無効にするには、[False] を選択します。
デフォルトでは、コールバックが有効になっています。
- [Schedule] テキスト ボックス内の [Seconds] 情報を変更することによって、Webhook のスケジュール設定を調整します。 頻繁に編集が行われるフィーチャ サービスの場合、[Seconds] の値を小さくすることで、Webhook を受信する回数を増やしてペイロードに含まれるイベント情報を減らします。 編集が頻繁には行われないフィーチャ サービスの場合、[Seconds] プロパティの値を大きくすることで、Webhook を受信する回数を減らしてペイロードに含まれるイベント情報を増やします。
スケジュール設定の最小 (デフォルト) 値は 20 秒です。
- 上記のパラメーターを構成したら、[Create] をクリックしてリクエストを送信します。
操作が完了すると、新しい Webhook がそのフィーチャ サービスに適用されます。