Webhook の作成

組織の管理者は、特定のイベントが発生したときに通知を受けるように 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 AutomateZapier、および IFFT) やカスタム Web サービスなどのレシーバーでサポートされているいくつかのオプションがあります。 カスタム Web サービスの作成方法の例、およびサードパーティ レシーバーの基本操作については、Webhook リポジトリをご参照ください。
  • サービスの Webhook を構成するには、そのフィーチャ サービスに編集機能が含まれていて、同期なしの変更追跡が有効になっている必要があります。
  • ジオプロセシング サービスの 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 を作成するには、次の手順を実行します。

  1. ArcGIS Portal Directory を参照し、管理者ロールを持つメンバーとしてサイン インします。

    組織 Webhook を作成および管理できるのは、組織 Webhook 権限が付与された管理者、またはデフォルト管理者ロールが割り当てられているメンバーだけです。

    https://organization.domain.com/context/sharing/rest
    

    サイン インすると、自分のアカウントの [User] リソース ページが表示されます。

  2. [Org ID] ハイパーリンクをクリックするか、以下のフォームのリクエストを行い、[Portal] → [Self] リソース ページにアクセスします。
    https://organization.domain.com/context/sharing/rest/portals/self
    
  3. [Self] リソース ページの下部にスクロールし、[Webhook] > [Create Webhook] の順にクリックして [Create Webhook] 操作にアクセスします。
  4. [Create Webhook] エンドポイントで、次の情報を入力します。
    1. [Name] テキスト ボックスに Webhook の一意の名前を入力します。
    2. [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
      
    3. 必要に応じて、レシーバーで Webhook メッセージを認証するときに使用可能な Webhook のシークレットを設定します。 [Secret (Optional)] テキスト ボックスに、ユーザー定義の英数字文字列を入力します。
    4. 必要に応じて、[Configuration Properties] テキスト ボックスで、Webhook の非アクティブ化情報を指定します。

      デフォルトでは、5 日間で 5 回エラーが発生すると Webhook は非アクティブ化します。

    5. [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 を表します。
        /groups/[groupID]/update
        
        組織 Webhook でサポートされているすべてのイベント トリガーについては、「イベント トリガー」をご参照ください。
      • [Send me everything] を選択した場合、サポートされているすべてのトリガー イベントに登録することになります。 各イベントが発生すると通知を受けます。
  5. 上記のパラメーターを構成したら、[Create Webhook] をクリックしてリクエストを送信します。

    操作が完了すると、新しい Webhook が組織に追加されます。

ArcGIS Enterprise ポータル Web サイトでの組織 Webhook の作成

ArcGIS Enterprise ポータル Web サイトから組織 Webhook を作成するには、次の手順を実行します。

  1. デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールのメンバーとしてサイン インしていることを確認します。
  2. [組織] > [設定] > [Webhook] の順に参照します。
  3. [Webhook の作成] をクリックします。
  4. [Webhook の作成] ウィンドウで、次の手順を実行します。
    1. [Name] テキスト ボックスに Webhook の一意の名前を入力します。
    2. [タイプ] ドロップダウン メニューから、Webhook タイプを選択します。
      • [すべて] を選択すると、サポートされているすべてのイベント トリガーに登録されます。 各イベントが発生すると通知を受けます。
      • [アイテム][ユーザー][グループ]、または [ロール] を選択すると、登録するトリガー イベントを手動で定義することができます。
    3. [すべて] 以外の Webhook タイプを選択すると、選択した Webhook タイプに関連する追加のドロップダウン メニューが表示されます。 たとえば、Webhook タイプに [アイテム] を選択すると [アイテム] ドロップダウン メニューが表示され、Webhook が監視する特定のアイテムを選択できます。
    4. [イベント] ドロップダウン メニューから、トリガー イベントを選択します。 たとえば、特定のアイテムが公開された時点で Webhook を呼び出す場合は、「/items/<アイテム ID>/publish」を選択します。
    5. [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
      
    6. 必要に応じて、[シークレット (オプション)] テキスト ボックスに Webhook のシークレット値を設定します。 このシークレット値は、Webhook ペイロードに含まれ、レシーバーでの Webhook メッセージの認証に使用されます。
  5. [Webhook の作成] をクリックします。

Organization Webhook の詳細パラメーターの構成

組織で利用する Webhook に適用される詳細設定で、配信の試行回数、通知時刻、配信試行間の時間などを指定することによって、Webhook の動作をさらにカスタマイズすることができます。

注意:

組織 Webhook では、ArcGIS Enterprise ポータル Web サイトまたは ArcGIS Portal Directory から、その詳細プロパティを変更することができます。 これらの詳細プロパティを構成する POST リクエストの例については、REST API ドキュメントの「Update Webhook Settings」をご参照ください。

ArcGIS Portal Directory での詳細パラメーターの構成

ArcGIS Portal Directory から詳細プロパティを設定するには、次の手順を実行します。

  1. ArcGIS Portal Directory を参照し、管理者ロールを持つメンバーとしてサイン インします。

    組織 Webhook を作成および管理できるのは、デフォルト管理者ロールが割り当てられているメンバー、または組織 Webhook 権限が付与されたメンバーだけです。

    https://organization.domain.com/context/sharing/rest
    

    サイン インすると、自分のアカウントの [User] リソース ページが表示されます。

  2. [Org ID] ハイパーリンクをクリックするか、以下のフォームのリクエストを行い、[Portal] → [Self] リソース ページにアクセスします。
    https://organization.domain.com/context/sharing/rest/portals/self
    
  3. [Self] リソース ページの下部にスクロールし、[Webhook] > [Settings] > [Update] の順にクリックして [Update Webhook Settings] 操作にアクセスします。
  4. [Update Webhook Settings] エンドポイントで、次の情報を入力します。
    1. [Number of Notification Attempts] の値を設定します。

      この値は、Webhook ペイロードを配信する試行回数を指定します。 デフォルトでは、ArcGIS Enterprise ポータルはペイロードの配信を 3 回試行します。 試行回数の値は 0 ~ 5 の整数である必要があります。

    2. [Notification Time Out in Seconds] の値を設定します。

      この値は、ArcGIS Enterprise ポータルがレシーバーからのレスポンスの受信を待機する時間の長さ (秒) を指定します。 デフォルトでは、ArcGIS Enterprise ポータルは 10 秒待機します。 ArcGIS Enterprise ポータルが待機する秒数の値は 0 ~ 60 の整数である必要があります。

    3. [Notification Elapsed Time in Seconds] の値を設定します。

      この値は、各ペイロード配信試行間の時間 (秒) を指定します。 デフォルトで、ArcGIS Enterprise ポータルは、[通知の試行回数] で指定された試行回数に到達するまで、前回の試行に失敗してから 5 秒後に別のペイロードの配信を試行します。

  5. 上記のパラメーターを構成したら、[Update Webhook Settings] をクリックしてリクエストを送信します。

    操作が完了すると、更新されたプロパティが、構成されているすべての Organization Webhook に適用されます。

ArcGIS Enterprise ポータル Web サイトでの詳細パラメーターの構成

ArcGIS Enterprise ポータル Web サイトから詳細プロパティを設定するには、次の手順を実行します。

  1. デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールのメンバーとして、組織にサイン インします。
  2. サイトの上部にある [組織] をクリックして、[設定] タブをクリックします。
  3. ページの左側にある [Webhook] をクリックします。
  4. [高度な Webhook 設定] をクリックします。
  5. [高度な Webhook 設定] ウィンドウで、次の手順を実行します。
    1. [配信の試行回数] の値を設定します。

      この値は、Webhook ペイロードを配信する試行回数を指定します。 デフォルトでは、ArcGIS Enterprise ポータルはペイロードの配信を 3 回試行します。 試行回数の値は 0 ~ 5 の整数である必要があります。

    2. [通知タイムアウト] の値を設定します。

      この値は、ArcGIS Enterprise ポータルがレシーバーからのレスポンスの受信を待機する時間の長さ (秒) を指定します。 デフォルトでは、ArcGIS Enterprise ポータルは 10 秒待機します。 ArcGIS Enterprise ポータルが待機する秒数の値は 0 ~ 60 の整数である必要があります。

    3. [通知の経過時間] の値を設定します。

      この値は、各ペイロード配信試行間の時間 (秒) を指定します。 デフォルトで、ArcGIS Enterprise ポータルは、[配信の試行回数] で指定された試行回数に到達するまで、前回の試行に失敗してから 5 秒後に別のペイロードの配信を試行します。

  6. 上記の設定を構成したら、[保存] をクリックします。

    更新されたプロパティが、構成されているすべての組織 Webhook に適用されます。

ジオプロセシング サービス Webhook の作成

ジオプロセシング サービス Webhook を使用することで、ジオプロセシング サービスに関連付けられているイベント トリガーに登録できます。

注意:

ジオプロセシング サービス Webhook は、ArcGIS Server Administrator Directory を介してのみ作成できます。 ジオプロセシング サービス Webhook を作成する POST リクエストの例については、REST API ドキュメントの「 Create Webhook」をご参照ください。

ジオプロセシング サービス Webhook を作成するには、次の手順に従います。

  1. ArcGIS Enterprise Administrator Site Directory を参照し、適切な権限が割り当てられているメンバーとしてサイン インします。
    Webhook を作成および管理できるのは、ジオプロセシング権限、デフォルト管理者ロール、または公開者ロールが割り当てられているメンバーだけです。
    注意:

    ジオプロセシング権限を割り当てられたユーザーは、カスタム ロールにサーバーベース レイヤーを公開する権限も追加する必要があります。

    https://organization.domain.com/context/admin
    
  2. サイン インしたら、[Services] > [[ServiceName]] > [Webhooks] > [Create] の順にクリックして、ジオプロセシング サービスの [Webhooks] リソースを参照します。ここで、[ServiceName] は、Webhook が作成されるサービスを表します。 特定のフォルダーに格納されているサービスの場合、[Services] > [[FolderName]] > [[ServiceName]] > [Webhooks] > [Create] の順にクリックします。ここで、[FolderName] は、そのサービスが格納されているフォルダーを表します。
    注意:

    ジオプロセシング サービスの Webhook を構成するには、そのジオプロセシング サービスが非同期でなければなりません。

  3. [Create Webhook] エンドポイントで、次の情報を入力します。
    1. [Name] テキスト ボックスに Webhook の一意の名前を入力します。 特殊文字を使用するとエラー メッセージが発生するため、入力する名前には英数字の値のみ含めることができます。
    2. 必要に応じて、レシーバーで 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 ペイロードを拒否できます。

    3. [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
      
    4. 必要に応じて、メディア タイプを指定します。 [Content Type] ドロップダウン メニューで、次のいずれかを選択します。
      • application/json (デフォルト)
      • application/x-www-form-urlencoded
    5. 必要に応じて、ペイロードの形式を定義します。 [Payload Format] ドロップダウン メニューで、次のいずれかを選択します。
      • JSON (デフォルト)
      • PJSON
    6. 必要に応じて、[Active] パラメーターを使用して、Webhook がトリガーされたときのコールバックを無効または有効にします。 有効にするには、[True] を選択します。 無効にするには、[False] を選択します。

      デフォルトでは、コールバックが有効になっています。

  4. 上記のパラメーターを構成したら、[Create] をクリックしてリクエストを送信します。

    操作が完了すると、新しい Webhook がそのジオプロセシング サービスに適用されます。

注意:
Organization Webhook やフィーチャ サービス Webhook とは異なり、ジオプロセシング サービス Webhook にユーザー定義のイベント トリガーはありません。 ジオプロセシング サービス Webhook はジオプロセシング ジョブが完了するとペイロードを配信します。 ジオプロセシング サービスで配信されるペイロードの詳細については、「ペイロード」をご参照ください。

フィーチャ サービス Webhook の作成

フィーチャ サービス Webhook を使用することで、フィーチャ サービスに関連付けられているイベント トリガーに登録できます。

注意:

フィーチャ サービス Webhook は、ArcGIS Server Administrator Directory を介してのみ作成できます。 フィーチャ サービス Webhook を作成する POST リクエストの例については、REST API ドキュメントの「 Create Webhook」をご参照ください。

フィーチャ サービス Webhook を作成するには、次の手順に従います。

  1. ArcGIS Enterprise Administrator Site Directory を参照し、適切な権限が割り当てられているメンバーとしてサイン インします。
    Webhook を作成および管理できるのは、フィーチャ レイヤー権限、デフォルト管理者ロール、または公開者ロールが割り当てられているメンバーだけです。
    https://organization.domain.com/context/admin
    
  2. サイン インしたら、[Services] > [[ServiceName]] > [Webhooks] > [Create] の順にクリックして、フィーチャ サービスの [Webhooks] リソースを参照します。ここで、[ServiceName] は、Webhook が作成されるサービスを表します。 特定のフォルダーに格納されているサービスの場合、[Services] > [[FolderName]] > [[ServiceName]] > [Webhooks] > [Create] の順にクリックします。ここで、[FolderName] は、そのサービスが格納されているフォルダーを表します。
    注意:

    フィーチャ サービスの Webhook を構成するには、そのフィーチャ サービスに編集機能が含まれていて、同期なしの変更追跡が有効になっている必要があります。

  3. [Create Webhook] エンドポイントで、次の情報を入力します。
    1. [Name] テキスト ボックスに Webhook の一意の名前を入力します。 特殊文字を使用するとエラー メッセージが発生するため、入力する名前には英数字の値のみ含めることができます。
    2. [タイプの変更] テキスト ボックスで、この Webhook に使用するイベント トリガーをリストします。 たとえば、フィーチャ サービスが作成されたときに必ず Webhook を呼び出すには、次のイベント トリガーを使用します。

      FeaturesCreated
      
      フィーチャ サービス Webhook でサポートされているすべてのイベント トリガーについては、「イベント トリガー」をご参照ください。
    3. 必要に応じて、レシーバーで 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 ペイロードを拒否できます。

    4. [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
      
    5. 必要に応じて、メディア タイプを指定します。 [Content Type] ドロップダウン メニューで、次のいずれかを選択します。
      • application/json (デフォルト)
      • application/x-www-form-urlencoded
    6. 必要に応じて、ペイロードの形式を定義します。 [Payload Format] ドロップダウン メニューで、次のいずれかを選択します。
      • JSON (デフォルト)
      • PJSON
    7. 必要に応じて、[Active] パラメーターを使用して、Webhook がトリガーされたときのコールバックを無効または有効にします。 有効にするには、[True] を選択します。 無効にするには、[False] を選択します。

      デフォルトでは、コールバックが有効になっています。

    8. [Schedule] テキスト ボックス内の [Seconds] 情報を変更することによって、Webhook のスケジュール設定を調整します。 頻繁に編集が行われるフィーチャ サービスの場合、[Seconds] の値を小さくすることで、Webhook を受信する回数を増やしてペイロードに含まれるイベント情報を減らします。 編集が頻繁には行われないフィーチャ サービスの場合、[Seconds] プロパティの値を大きくすることで、Webhook を受信する回数を減らしてペイロードに含まれるイベント情報を増やします。

      スケジュール設定の最小 (デフォルト) 値は 20 秒です。

  4. 上記のパラメーターを構成したら、[Create] をクリックしてリクエストを送信します。

    操作が完了すると、新しい Webhook がそのフィーチャ サービスに適用されます。