Skip To Content

ArcGIS Notebooks でのワークフローの自動化

ArcGIS Notebook Server では、スケジュール設定されたノートブックによる自動化、Webhook による自動化、[ノートブックの実行] 管理 API を使用した独自のカスタム スクリプトによる自動化など、ワークフロー自動化の複数の方法を実装できます。

注意:

スケジュール設定されたタスク、Webhook、またはノートブックの実行 API を使用してノートブックを自動化するには、ノートブックがバージョン 3.0 以降のランタイムを使用する必要があります。

ノートブック タスクのスケジュール設定

10.8.1 以降、ノートブック作成者は、今後の特定の時間に一度または定期的に自動的に実行されるように ArcGIS Notebooks をスケジュール設定することができます。 タスクを作成してノートブックのスケジュールを設定すると、日常的なワークフローを自動化し、ピーク以外の利用時間中に多くのデータを扱うプロセスを実行して、データセットを定期的に更新できます。 たとえば、次のような処理を実行するノートブックをスケジュール設定できます。

  • 毎月更新されるオンライン ソースからデータをインポートし、データを自動的に削除して必要な変換を適用し、データをワークスペースに移動する。
  • コンピューターのリソースが使用されていない夜間に、多くの処理能力を必要とするビッグ データ解析ワークフローを実行する。
  • 過去 1 週間にポータルでアカウントを作成したユーザーを管理し、リストをメールで送信する。

ノートブックには 1 つ以上のタスクを作成できます。 デフォルトでは、ノートブック作成者または管理者は最大 20 のタスクを作成できます。 ノートブックの所有者が変更されると、そのノートブックに関連付けられているすべてのタスクが非アクティブになり、新しい所有者に割り当てられます。

スケジュール設定されたタスクでは、ノートブックをパラメーター化できます。 ノートブックがパラメーター化されると、何も操作せずにさまざまな入力に適応させることができる汎用コードを記述できます。 タスクが実行される際、選択されたパラメーターがノートブックに挿入されます。これらのパラメーターは、必要に応じてノートブックに保存できます。 たとえば、パラメーター化されたノートブックを使用して、地域全体の大気汚染のレポートを定期的に生成できます。 ノートブックは、スケジュール設定されたタスクを複数 (調査対象の地域ごとに 1 つ) 持つことができます。そして、タスクごとに、都市名や汚染の種類などのパラメーター化された入力をノートブックに取り込むことができます。

注意:

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

タスクの完了後にノートブックの状態を元のノートブック アイテムに保存するようタスクを構成できます。

ノートブックの静的な HTML ビューが、実行済みのスケジュール設定されたタスクごとに保存されます。 デフォルトでは、最新の 30 の実行結果のみが保存されます。

管理者は、ArcGIS Notebook Server Manager の [タスク] ページを使用して、詳細を表示し、サイト内のアクティブな各ノートブック タスクを編集、一時停止および再開、または削除することができます。 ノートブックのスケジュール設定権限を持つ管理者とノートブック作成者は、ノートブックの詳細ページまたはノートブック エディターのタスク ウィンドウで、詳細を表示し、ノートブック タスクを編集、一時停止および再開、または削除できます。

ノートブックの実行が何度も失敗するのを防ぐために、5 回連続して失敗すると、スケジュール設定されたタスクが無効になります。 タスクの所有者は、タスクを再度アクティブにする前に、ユーザーの操作なしでノートブックを正常に実行できることを確認する必要があります。

タスクの以前の実行がまだ続いている場合、スケジュール設定された新しいタスクの実行はスキップされます。 たとえば、タスクが 15 分おきに実行されるようにスケジュール設定されているが、そのタスクのインスタンスが 20 分間実行される場合、スケジュール設定された次の実行はスキップされます。 このような状況が定期的に発生する場合、タスクの所有者は、スケジュール設定された時間間隔を調整して、実行間のオーバーラップがなくなるようにする必要があります。

スケジュール設定されたノートブック タスクの詳細については、ヘルプ トピック「ノートブックのタスクのスケジュール設定」をご参照ください。

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

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

注意:

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

Webhook の作成

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

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

    Name=mynotebook_webhook

  5. Webhook をトリガーするイベントのタイプを選択します。

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

  6. [トリガー] を使用して、デフォルト値 (/) をそのまま使用するか、1 つ以上の値をトリガー イベントとして指定します。

    [イベント] = /items, /items/<itemId>, /users

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

    その他の例については、「トリガー イベント」をご参照ください。

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

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

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

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

  10. [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 設定を使用すると、実行できる配信の試行回数、通知間の経過時間、Webhook の通知タイムアウトなどのプロパティを変更できます。 これらの高度な設定は、すべてのポータル Webhook に適用されます。 高度な Webhook 設定を変更するには、次の手順を実行します。

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

Webhook のペイロード

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

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

{
  "properties": {
    "itemId": "<itemId of the current notebook>"
  },
  "events": [
    {
      "source": "items",
      "id": "<itemId of the item that resulted in webhook trigger>",
      "userId": "<webhook user>",
      "when": \<epoch time in ms when webhook was triggered\>,
      "operation": "<type of operation that resulted in webhook trigger>",
      "properties": {},
      "username": "<webhook username>"
    }
  ],
  "info": {
    "webhookId": "<webhookId>",
    "portalURL": "<public portal url>",
    "webhookName": "<webhook name>",
    "when": \<epoch time in ms when webhook was triggered\>,
  }
}

ノートブックの実行 API

管理者およびノートブック作成者は ArcGIS Notebook Server Administrator Directory の [ノートブックの実行] 操作を使用して、ユーザーが操作することなく実行するようノートブックを自動化することもできます。 この操作が呼び出されるとノートブックが自動的に実行されますが、独自のカスタム スクリプトを使用して、所定の時間または定期的にノートブックが自動的に実行されるようにスケジュール設定することもできます。 cron ジョブまたは Windows スケジューラを使用して、所定の時間または定期的に [ノートブックの実行] 操作が行われるようにスケジュール設定することもできます。

詳細については、Administrator Directory リファレンス ガイドの「ノートブックの実行」トピックをご参照ください。

自動化されたノートブックの最大同時実行

スケジュール設定されたタスク、Webhook、またはノートブックの実行 API を使用してノートブックを実行すると、ArcGIS Notebook Server で、自動的に新しいコンテナーが開き、ノートブックが実行されます。この場合に、ユーザーの操作は必要ありません。 デフォルトでは、ArcGIS Notebook Server は、Notebook Server コンピューターごとに最大 10 の同時ノートブック実行を実現するように構成されています。 Notebook Server サイトの各コンピューター上で使用可能なリソース (CPU および RAM) を考慮して、管理者は Notebook ServermaxExecuteNotebookContainersPerNode システム プロパティを変更することによりこの制限を調整できます。