Skip To Content

Webhook イベントを使用したノートブック ワークフローの自動化

Webhook は、アプリケーションが他のアプリケーションに、イベントによって発生する情報を提供できるようにするメカニズムです。 Webhook は、組織およびサービス レベルで構成でき、組織またはサービスに関連付けられたイベントが発生した時点で、ノートブックを自動的に実行します。

組織の Webhook を使用したノートブックの自動化

ArcGIS Enterprise 管理者または組織 Webhook 権限が付与されたユーザーは、Webhook を作成、管理、構成できます。 アイテム、グループ、またはユーザーに関連付けられたイベントが発生した時点で、所有しているノートブックを自動的に実行するように Webhook を構成することができます。 ArcGIS Notebook Server は Webhook ペイロードのレシーバーとしての役割を果たします。 Webhook がトリガーされると、ArcGIS Notebook Server に対して HTTP リクエストが送信され、選択されたノートブックがユーザーの操作なしで実行されます。

注意:

Webhook から同時に実行されるノートブックの数は、ArcGIS Notebook ServermaxExecuteNotebookContainersPerNode システム プロパティによって制限されます。

Organization Webhook の作成

Webhook は、[組織の設定] ページで管理できます。 Webhook を作成するには、次の手順に従います。

  1. デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールとしてサイン インします。
  2. [組織] > [設定] > [Webhook] の順にクリックします。
  3. 組織の Webhook セクションで、[Webhook の作成] をクリックします。
  4. Webhook の名前を指定します。
  5. Webhook をトリガーするイベントのタイプを選択します。

    デフォルトでは、すべてのイベント タイプ (アイテム、ユーザー、グループ、およびロール) が考慮されます。

    詳細については、「サポートされているトリガー イベント」をご参照ください。

  6. [ノートブック] をペイロード タイプとして選択します。

    注意:
    [ノートブック] オプションが使用できない場合は、お使いのポータルで Notebook Server がまだ構成されていません。 [ノートブック] オプションが使用可能であるが、選択できなくなっている場合は、Webhook の構成に使用できるノートブックがありません。 Webhook に使用するノートブック アイテムを所有している必要があります。

  7. Webhook がトリガーされた時点で実行されるノートブックを選択します。
  8. 必要に応じて、Webhook ペイロードに含める [シークレット] キーを入力します。

    前もってランダムに生成された値を [シークレット] キーとして使用することもできます。

  9. [Webhook の作成] をクリックして、Webhook 設定を保存し、Webhook を作成します。

組織の Webhook の管理

Webhook は、[組織の設定] ページで管理できます。 既存の Webhook を管理するには、次の手順を実行します。

  1. デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールとしてサイン インします。
  2. [組織] > [設定] > [Webhook] の順にクリックして、自分と自分以外の Webhook 管理者が作成した組織の Webhook のリストを表示します。

次の操作を実行して、既存の Webhook を管理することができます。

  • Webhook の無効化 - Webhook が有効な状態になっている場合は、[有効] をクリックします。 Webhook を無効にすると、Webhook がトリガーされた時点でペイロードが配信されなくなります。
  • Webhook の有効化 - Webhook が無効な状態になっている場合は、[無効] をクリックします。 Webhook を有効にすると、ペイロードの配信が再開されます。
  • Webhook の編集 - Webhook にあるオプション ボタンをクリックしてから、[編集] をクリックして Webhook を更新します。
  • Webhook の削除 - Webhook にあるオプション ボタンをクリックしてから [削除] をクリックします。 [確認] をクリックして、Webhook を削除します。

組織の高度な Webhook 設定の変更

高度な Webhook 設定を使用すると、実行できる配信の試行回数、通知間の経過時間、Webhook の通知タイムアウトなどのプロパティを変更できます。 これらの高度な設定は、組織のすべての Webhook に適用されます。 高度な Webhook 設定を変更するには、次の手順を実行します。

  1. デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールとしてサイン インします。
  2. [組織] > [設定] > [Webhook] の順にクリックします。
  3. 組織の Webhook セクションで、[高度な設定] をクリックして、高度な Webhook プロパティのデフォルト値を変更します。

Organization Webhook のペイロード

ノートブックが Webhook 経由で実行されると、Webhook のペイロード情報がノートブックの最初のセルに自動的に挿入されます。 挿入後に、Webhook のペイロードで提供された情報は、ノートブックで自動化ワークフローを進めるために使用できます。

ノートブックには、次の Webhook のペイロード情報が含まれます。


webhookPayload = {
    "properties": {
        "itemId": "<notebook_item_id>"
    },
    "events": [
        {
            "source": "<items | user | group | role>",
            "id": "<source_id>",
            "userId": "<user_id_of_member_triggered_webhook>",
            "when": 1742596800000,
            "operation": "<operation_triggered_webhook>",
            "properties": {"<operation_details>"},
            "username": "<username_of_member_triggered_webhook>"
        }
    ],
    "info": {
        "webhookId": "<webhook_id>",
        "portalURL": "<portal_url>",
        "webhookName": "<webhook_name>",
        "when": 1742596805000
    }
}

サービス Webhook を使用したノートブックの自動化

Webhook (非同期ジオプロセシング サービス、フィーチャ サービス、その他の一般的な Webhook の Webhook を含む) は、特定のイベントに応じてノートブックの実行をトリガーできます。 管理者は、Webhook レシーバーの URL をこれらの Webhook の Hook URL またはペイロード URL として登録できます。 Webhook に関連付けられている特定のイベントがトリガーされると、ノートブック Webhook レシーバーの URL が自動的を呼び出し、対応するノートブックの実行を開始します。

次のセクションでは、ArcGIS Notebook Server でノートブック Webhook レシーバーを構成する方法について説明します。

API キーの作成とコピー

API キーは、関連付けられたノートブック アイテムを実行し、ノートブックの実行に必要な ArcGIS Enterprise 機能に安全にアクセスするために、サービス Webhook を認証する長期トークンです。

API キーは、組織でホストされているアイテムのタイプである API キーの認証情報を使用して生成されます。 API キーの認証情報に含まれる設定では、API キーを生成したり、権限や有効期限日などのプロパティを管理したりすることができます。 API キーの認証情報を作成しアプリケーションで API キーを使用するプロセスは API キー認証と呼ばれます。

API キーを作成してコピーするには、次の手順を実行します:

  1. 管理者ユーザーとしてポータルにサイン インします。
  2. API キー アイテムの [アイテムの詳細] ページをクリックします。
  3. API キーを作成してコピーする手順については、「API キーの作成」チュートリアルの手順に従います。 ノートブックの作成と編集権限、アイテムの作成、更新、削除権限のほか、ArcPy の場合は高度なノートブック権限を付与します。

    ノートブックで実行されるワークフローに応じて、追加の権限が必要になることがあります。

ノートブック Webhook レシーバーの登録

ノートブック Webhook レシーバーを登録するには、次の手順を実行します。

  1. 管理者としてポータルにサイン インします。
  2. [組織] > [設定] > [Webhook] > [Webhook レシーバーの作成] の順にクリックします。
  3. Webhook レシーバーの名前を入力します。
  4. Webhook レシーバーを実行するノートブックを選択します。
  5. Webhook の送信元を確認するために使用される 32 文字のシークレット キーを入力します。
  6. 暗号化されたペイロードのチェックに使用される署名ヘッダーのカンマ区切りリストを入力します。
  7. ノートブック アイテムへのアクセス権限、Create Notebook/Create Advanced Notebook 権限、ノートブック内のその他の GIS 機能を含む API トークンを入力します。
  8. 必要に応じて、JSON 形式のパラメーターを入力します。
  9. [レシーバーの作成] をクリックします。

非同期ジオプロセシング サービス Webhook またはフィーチャ サービス Webhook の作成

非同期ジオプロセシング サービス Webhook またはフィーチャ サービス Webhook を作成するには、次の手順を実行します。

  1. Webhook レシーバーの URL、シークレット ヘッダー、シグネチャー ヘッダーを使用して、サービス Webhook を作成します。
  2. 特定のサービス Webhook イベントがトリガーされるたびに、ノートブック Webhook に関連付けられたノートブックが実行されることを検証します。

サービス Webhook のペイロード

ノートブックが Webhook 経由で実行されると、Webhook のペイロード情報がノートブックの最初のセルに自動的に挿入されます。 挿入後に、Webhook のペイロードで提供された情報は、ノートブックで自動化ワークフローを進めるために使用できます。

フィーチャ サービス Webhook

次のコードは、フィーチャ サービス Webhook のペイロードの例です。

webhookPayload = {
    "serviceType": "FeatureServer",
    "changesUrl": "<change_url>",
    "name": "<webhook_name>",
    "id": "<webhook_id>",
    "folderName": "<folder_name>",
    "serviceName": "<service_name>",
    "events": [
        {
            "eventType": "FeaturesCreated",
            "when": 1740436800000
        },
        {
            "eventType": "FeaturesDeleted",
            "when": 1740436810000
        },
        {
            "eventType": "FeaturesUpdated",
            "when": 1740436820000
        }
    ]
}

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

次のコードは、ジオプロセシング サービス Webhook のペイロードの例です。

webhookPayload = {
    "serviceType": "GPServer",
    "jobId": "<job_id>",
    "statusURL": "<status_url>",
    "name": "<webhook_name>",
    "taskName": "<task_name>",
    "folderName": "<folder_name>",
    "serviceName": "<service_name>",
    "events": [
        {
            "eventType": "esriJobSucceeded",
            "when": 1742337000000
        }
    ]
}