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 分間実行される場合、スケジュール設定された次の実行はスキップされます。 このような状況が定期的に発生する場合、タスクの所有者は、スケジュール設定された時間間隔を調整して、実行間のオーバーラップがなくなるようにする必要があります。
スケジュール設定されたノートブック タスクの詳細については、ヘルプ トピック「ノートブックのタスクのスケジュール設定」をご参照ください。
Webhook を使用したノートブックの自動化
Webhook は、アプリケーションが他のアプリケーションに、イベントによって発生する情報を提供できるようにするメカニズムです。 ArcGIS Enterprise Portal 管理者は、Webhook を作成、管理、および構成できます。 ポータル アイテム、グループ、またはユーザーに関連付けられたイベントが発生した時点で、所有しているノートブックを自動的に実行するように Webhook を構成することができます。 Webhook がトリガーされると、Notebook Server に対して HTTP リクエストが送信され、選択されたノートブックがユーザーの操作なしで実行されます。
注意:
Webhook を介したノートブックの同時実行数は、Notebook Server の maxExecuteNotebookContainersPerNode システム プロパティによって制限されます。
Webhook の作成
Webhook は、ArcGIS Portal Directory (共有 API) を介してのみ管理できます。 Webhook を作成するには、次の手順に従います。
- ArcGIS Portal Directory に移動します。https://machine.domain.com/webadaptor/sharing/rest
- 管理者としてサイン インします。
Webhook は管理者のみが作成および管理できます。
管理者ユーザー ページが表示されます。
- [Org ID] ハイパーリンクをクリックするか、以下のフォームのリクエストを行い、[Portal] → [Self] リソース ページに移動します。https://machine.domain.com/webadaptor/sharing/rest/portals/<orgID>
- ページの下部にスクロールし、[Child Resources] の下にある Webhooks に移動します。https://machine.domain/com/webadaptor/sharing/rest/portals/<orgID>/webhooks
- [Supported Operation] で、[Create Webhook] を選択します。
- Webhook のパラメーターを指定します。 ノートブックを自動化する Webhook を作成するには、次の情報を指定します。
パラメーター 詳細 name (必須)
Webhook の名前を指定します。
例: name=mynotebook_webhook
url (オプション)
ノートブック用の Webhook を構成する場合は、ペイロード URL は不要です。システムが自動的にペイロード URL を取得します。 この情報を指定する必要はありません。
config (必須)
Webhook の構成プロパティを設定します。
注意:
管理者であり、Webhook を介して実行するノートブック アイテムを所有している必要があります。
例:
{ "deactivationPolicy": { "numberOfFailures": 5, "daysInPast": 5 }, "properties": { "federatedServer": { "itemId": "<Notebook item id to be executed>", "tokenTypeToSend": "owner", "tokenExpirationTimeMinutes": 10 } } }
events (オプション)
Webhook をトリガーするイベントの URI 表現。 changes が manual として指定されている場合、このパラメーターは必須です。 詳細については、「サポートされているトリガー イベント」セクションをご参照ください。 トリガー イベントのさらなる例については、REST API ドキュメントの「Create webhooks」の「Trigger Events」セクションをご参照ください。
例:
events=/items,/users
これらのパラメーターの詳細については、Webhook の REST API ドキュメントをご参照ください。
作成した Webhook は、他の Webhook の下に表示されます: https://machine.domain.com/webadaptor/sharing/rest/portals/<orgID>/webhooks。
Webhook を使用した自動化の詳細については、ヘルプ トピック「ArcGIS Enterprise の Webhook」をご参照ください。
Webhook の管理
次のフォームでリクエストを送信することで、ArcGIS Portal Directory を通じて Webhook を管理できます。
Webhook の管理でサポートされている操作は次のとおりです。
- Update Webhook - Webhook のパラメーターを更新します。 指定した Webhook の名前、ペイロード URL、構成、またはトリガー イベントを更新できます。
- Delete Webhook - ポータルから Webhook を削除します。
- Deactivate Webhook および Activate Webhook - Webhook を非アクティブ化します。これにより、Webhook がトリガーされたときにペイロードの配信が停止されます。 Webhook が非アクティブ化されている場合、Activate Webhook 操作を使用してペイロードの配信を再開できます。
Notification Status ページには、特定の Webhook に関連付けられたトリガー イベントに関する情報が表示されます。 このテーブルを使用することで、Webhook に加え、配信されたペイロードの詳細 (Webhook がトリガーされた時刻、ペイロード URL から受信したレスポンス、配信されたペイロードの内容など) を監視できます。 ペイロードの配信が成功したことを示すレコードは、1 日後に削除されます。 配信の失敗を示すレコードは 7 日間保存されます。
これらの操作の例については、「Webhooks API」をご参照ください。
Webhook を使用した自動化の詳細については、ヘルプ トピック「ArcGIS Enterprise の 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 Server の maxExecuteNotebookContainersPerNode システム プロパティを変更することによりこの制限を調整できます。