ArcGIS Notebook Server では、スケジュール設定されたノートブックによる自動化、Webhook による自動化、[ノートブックの実行] 管理 API を使用した独自のカスタム スクリプトによる自動化など、ワークフロー自動化の複数の方法を実装できます。
注意:
スケジュール設定されたタスク、Webhook、またはノートブックの実行 API を使用してノートブックを自動化するには、ノートブックがバージョン 3.0 以降のランタイムを使用する必要があります。
ノートブック タスクのスケジュール設定
10.8.1 以降、ノートブック作成者は、今後の特定の時間に一度または定期的に自動的に実行されるように ArcGIS Notebooks をスケジュール設定することができます。 タスクを作成してノートブックのスケジュールを設定すると、日常的なワークフローを自動化し、ピーク以外の利用時間中に多くのデータを扱うプロセスを実行して、データセットを定期的に更新できます。 たとえば、次のような処理を実行するノートブックをスケジュール設定できます。
- 毎月更新されるオンライン ソースからデータをインポートし、データを自動的に削除して必要な変換を適用し、データをワークスペースに移動する。
- コンピューターのリソースが使用されていない夜間に、多くの処理能力を必要とするビッグ データ解析ワークフローを実行する。
- 過去 1 週間にポータルでアカウントを作成したユーザーを管理し、リストをメールで送信する。
ノートブックには 1 つ以上のタスクを作成できます。 デフォルトでは、ノートブック作成者または管理者は最大 20 のタスクを作成できます。 ノートブックの所有者が変更されると、そのノートブックに関連付けられているすべてのタスクが非アクティブになり、新しい所有者に割り当てられます。
スケジュール設定されたタスクでは、ノートブックをパラメーター化できます。 ノートブックがパラメーター化されると、何も操作せずにさまざまな入力に適応させることができる汎用コードを記述できます。 タスクが実行される際、選択されたパラメーターがノートブックに挿入されます。これらのパラメーターは、必要に応じてノートブックに保存できます。 たとえば、パラメーター化されたノートブックを使用して、地域全体の大気汚染のレポートを定期的に生成できます。 ノートブックは、スケジュール設定されたタスクを複数 (調査対象の地域ごとに 1 つ) 持つことができます。そして、タスクごとに、都市名や汚染の種類などのパラメーター化された入力をノートブックに取り込むことができます。
注意:
同時に実行されるノートブック タスクの数は、Notebook Server の maxExecuteNotebookContainersPerNode システム プロパティによって制限されます。
タスクの完了後にノートブックの状態を元のノートブック アイテムに保存するようタスクを構成できます。
ノートブックの静的な HTML ビューが、実行済みのスケジュール設定されたタスクごとに保存されます。 デフォルトでは、最新の 30 の実行結果のみが保存されます。
管理者は、ArcGIS Notebook Server Manager の [タスク] ページを使用して、詳細を表示し、サイト内のアクティブな各ノートブック タスクを編集、一時停止および再開、または削除することができます。 ノートブックのスケジュール設定権限を持つ管理者とノートブック作成者は、ノートブックの詳細ページまたはノートブック エディターのタスク ウィンドウで、詳細を表示し、ノートブック タスクを編集、一時停止および再開、または削除できます。
ノートブックの実行が何度も失敗するのを防ぐために、5 回連続して失敗すると、スケジュール設定されたタスクが無効になります。 タスクの所有者は、タスクを再度アクティブにする前に、ユーザーの操作なしでノートブックを正常に実行できることを確認する必要があります。
タスクの以前の実行がまだ続いている場合、スケジュール設定された新しいタスクの実行はスキップされます。 たとえば、タスクが 15 分おきに実行されるようにスケジュール設定されているが、そのタスクのインスタンスが 20 分間実行される場合、スケジュール設定された次の実行はスキップされます。 このような状況が定期的に発生する場合、タスクの所有者は、スケジュール設定された時間間隔を調整して、実行間のオーバーラップがなくなるようにする必要があります。
スケジュール設定されたノートブック タスクの詳細については、ヘルプ トピック「ノートブックのタスクのスケジュール設定」をご参照ください。
管理者は、ArcGIS Notebook Server ホーム ページのタスクの管理ウィンドウ、またはArcGIS Notebook Server Manager のタスク ページを使用して、詳細を表示し、サイト内のアクティブなノートブック タスクを編集、一時停止、再開、削除することができます。 管理者およびノートブックのスケジュール設定権限を持つ作成者は、ノートブックの詳細ページまたはノートブック エディターのタスク ウィンドウで、詳細を表示し、ノートブック タスクを編集、一時停止、再開、および削除できます。
スケジュール タスクの制限
スケジュール設定されたノートブック タスクには、特定のユーザー、組織、および ArcGIS Notebook Server サイト (コンピューター) レベルの制限があります。
自動化されたノートブックの最大同時実行 (maxExecuteNotebookContainersPerNode)
スケジュール設定されたタスク、Webhook、またはノートブックの実行 API を使用してノートブックを実行すると、ArcGIS Notebook Server で、自動的に新しいコンテナーが開き、ノートブックが実行されます。この場合に、ユーザーの操作は必要ありません。 デフォルトでは、ArcGIS Notebook Server は、Notebook Server コンピューターごとに最大 10 の同時ノートブック実行を実現するように構成されています。 Notebook Server サイトの各コンピューター上で使用可能なリソース (CPU および RAM) を考慮して、管理者は Notebook Server の maxExecuteNotebookContainersPerNode システム プロパティを変更することによりこの制限を調整できます。 この制限を超えた後に送信された、自動化されたノートブックのリクエストは、キューに追加され、自動化されたタスクの実行数がこの制限を下回ると実行されます。 キュー内のタスクは、待ち時間がタイムアウトの時間を超えた場合、失敗します。
注意:
これによって、ノートブック エディターから対話的に実行されるノートブックの数が制限されることはありません。
maxExecuteNotebookContainersPerNode の制限は、次の手順で変更できます。
注意:
制限を増やすと、Notebook Server で使用されるリソースが増える可能性があります。
- 管理者として ArcGIS Enterprise ポータルにサイン インします。
- ArcGIS Notebook Server Manager を開きます。
- [設定] > [サイト] の順にクリックします。
- maxExecuteNotebookContainersPerNode プロパティの値を変更します。
- [保存] をクリックします。
- Notebook Server の再起動に関する警告を確認し、[保存して再起動] をクリックして変更を保存します。
ノートブックのアクティブなスケジュール タスクのユーザーあたりの最大数
ノートブックのスケジュール設定権限を持つ各ノートブック作成者は、アクティブなノートブック タスクを最大 20 個作成できます。 この制限に達すると、ユーザーは新しいスケジュール タスクを作成できなくなります。 既存タスクの状態がアクティブから完了、失敗、または非アクティブになると、新しいタスクを作成できます。 この制限を変更するには、ArcGIS Portal Administrator API のシステム制限の更新操作により ExecuteNotebooksUserLimit プロパティを更新します。
ノートブックのアクティブなスケジュール タスクの組織あたりの最大数
ノートブックのアクティブなスケジュール タスクの、組織あたりの最大数は 200 です。 この制限は、ポータル組織全体のすべてのユーザーが所有できるアクティブなタスクの合計数を表します。 この制限に達すると、ユーザーはノートブックの新しいスケジュール タスクを作成できなくなります。 この制限を変更するには、ArcGIS Portal Administrator API のシステム制限の更新操作により ExecuteNotebooksOrgLimit プロパティを更新します。
スケジュール タスクについてレポートされた結果の数
タスクの結果がレポートされ、30 回実行される間保持されます。 直近の 30 回の実行より前に実行されたタスクは、完全に削除されます。 この制限を変更するには、ArcGIS Portal Administrator API のシステム制限の更新操作により TaskRunHistoryCount プロパティを更新します。
タスクの自動的な失敗
連続 5 回失敗したタスクは、自動的に失敗状態に切り替わり、実行されなくなります。 タスクの実行を確実に継続するには、タスクの所有者は、失敗を特定して修正し、タスクをアクティブ状態に変更する必要があります。 この制限を変更するには、ArcGIS Portal Administrator API のシステム制限の更新操作により FailedRunsDisableTask プロパティを更新します。
Webhook を使用したノートブックの自動化
Webhook は、アプリケーションが他のアプリケーションに、イベントによって発生する情報を提供できるようにするメカニズムです。 ArcGIS Enterprise Portal 管理者または組織 Webhook 権限が付与されたユーザーは、Webhook を作成、管理、構成できます。 ポータル アイテム、グループ、またはユーザーに関連付けられたイベントが発生した時点で、所有しているノートブックを自動的に実行するように Webhook を構成することができます。 ArcGIS Notebook Server は Webhook ペイロードのレシーバーとしての役割を果たします。 Webhook がトリガーされると、Notebook Server に対して HTTP リクエストが送信され、選択されたノートブックがユーザーの操作なしで実行されます。
注意:
同時に実行されるノートブックの数は、Notebook Server の maxExecuteNotebookContainersPerNode システム プロパティによって制限されます。
Webhook の作成
Webhook は、お使いのポータルの [組織の設定] ページで管理できます。 Webhook を作成するには、次の手順に従います。
- デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールとしてサイン インします。
- [組織] > [設定] > [Webhook] の順に参照します。
- [Webhook の作成] をクリックします。
- Webhook の名前を指定します。
Name=mynotebook_webhook
- Webhook をトリガーするイベントのタイプを選択します。
デフォルトでは、すべてのイベント タイプ (アイテム、ユーザー、グループ、およびロール) が考慮されます。
- [トリガー] を使用して、デフォルト値 (/) をそのまま使用するか、1 つ以上の値をトリガー イベントとして指定します。
[イベント] = /items, /items/<itemId>, /users
詳細については、「サポートされているトリガー イベント」をご参照ください。
その他の例については、「トリガー イベント」をご参照ください。
- [ノートブック] をペイロード タイプとして選択します。
注意:
[ノートブック] オプションが使用できない場合は、お使いのポータルで Notebook Server がまだ構成されていません。 [ノートブック] が使用可能であるが、選択できなくなっている場合は、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 の編集 - Webhook にあるオプション ボタンをクリックしてから [編集] をクリックし、Webhook のトリガー イベントまたは Webhook 用に指定されたノートブックを更新します。
- Webhook の削除 - Webhook にあるオプション ボタンをクリックしてから [削除] をクリックします。 [確認] をクリックして、Webhook を削除します。
高度な Webhook 設定
高度な Webhook 設定を使用すると、実行できる配信の試行回数、通知間の経過時間、Webhook の通知タイムアウトなどのプロパティを変更できます。 これらの高度な設定は、すべてのポータル Webhook に適用されます。 高度な Webhook 設定を変更するには、次の手順を実行します。
- デフォルト管理者または組織 Webhook 権限が付与されたカスタム ロールとしてサイン インします。
- [組織] > [設定] > [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 リファレンス ガイドの「ノートブックの実行」トピックをご参照ください。