ノートブック ランタイムの拡張
ArcGIS Notebook Server は 2 つのノートブック ランタイム (Python モジュールのコレクション) を備えています。 これらのランタイムは、コンテナー イメージを通じてノートブック ユーザーに提供され、サーバー サイトで実行される各コンテナーに適用されます。
Standard および Advanced のノートブック ランタイムには、どちらも ArcGIS API for Python および各種 Python モジュールが含まれており、データ サイエンス、空間解析、コンテンツ管理に使用できます。 Advanced ランタイムには ArcPy も含まれます。
使用可能な Python ライブラリーのリストをご参照ください。
これら 2 つのランタイムに含まれていないモジュールや、特定のバージョンのモジュールが必要となる場合もあります。 ArcGIS Notebook Server では、次の方法でその他の Python モジュールにアクセスできます。
ノートブック セッションで Python モジュールをインストールします。 これにより、そのノートブックでモジュールを使用できるようになります。
Esri コンテナー イメージを拡張し、カスタム ランタイムに Python ライブラリーを追加で含めます。 作成したコンテナー イメージにより、拡張したランタイムをサイト内のすべてのノートブック作成者が使用できるようになります。
セッション中のモジュールのインストール
ノートブック作成者は、conda パッケージ管理システムを使用することで、ノートブック セッション中に使用可能なランタイムのどちらにも含まれていない Python モジュールまたはモジュールのバージョンを作成できます。 ArcGIS Notebook Server ではモジュールの管理に使用されるため、conda の使用をおすすめします。
この方法では、ノートブック セッションの間に目的のモジュールをインストールします。 ノートブックが閉じられるか、ユーザーに属するコンテナーが終了されると、そのモジュールは使用できなくなります。 この方法でモジュールをインストールするには、conda チャネルへのインターネット接続が必要です。
注意:
conda は 2 つのノートブック ランタイムに含まれています。 そのため、インストールする必要はありません。
たとえば、セッション中に scrapy パッケージをインストールするには、使用しているパッケージ管理システムに応じて、次のどちらかのコマンドでノートブック セルを実行します。
conda パッケージ管理システムの使用
!conda install --yes scrapy
作業を行っているノートブック ランタイムでバージョンの異なる Python モジュールを使用するには、バージョン番号をコマンドで指定します。
新しいパッケージを使用できるようにするには、conda コマンドの実行後にカーネルを再起動する必要があります。
たとえば、バージョン 1.5 の特定のパッケージが 2 つのノートブック ランタイムで使用できる場合に、バージョン 1.6 で導入されたツールを使用する必要があるとします。 ノートブック セッションでバージョン 1.6 のパッケージを使用できるようにするには、使用しているパッケージ管理システムに応じて、次のいずれかのコマンドでノートブック セルを実行します。
conda パッケージ管理システムの使用
!conda install --yes <package name>==1.6
カスタム コンテナー イメージの構築
ノートブック ランタイムに永続的な変更を加えるには、サイトにカスタム コンテナー イメージを構築します。 管理権限を必要とする次のワークフローにより、カスタム イメージが作成され、それを使用できるよう ArcGIS Notebook Server を構成します。
2 つのノートブック ランタイム (Standard か Advanced) のどちらかを開始点として使用します。 カスタム ランタイムの構築が完了したら、サイト内の新しいランタイムとして登録できます。
ArcGIS Notebook Server をインストールして構成します。
管理者として ArcGIS Notebook Server Administrator Directory にサイン インします。
URL の形式は、
https://notebookserver.domain.com:11443/arcgis/admin/です。notebooks > runtimes の順にクリックし、カスタム イメージ用に拡張するノートブック ランタイムを選択します。
ランタイムのリソース ページで、このランタイムの
imageId値をメモします。 この値は次のステップに含めます。目的の Python モジュールをカスタム イメージに追加する Dockerfile を作成します。
Dockerfile は、Docker コンテナー イメージを構築する指示をまとめたシンプルなテキスト ファイルです。 ベスト プラクティスの情報については、Dockerfile のドキュメントをご参照ください。
この例では、Advanced ノートブック ランタイムに、データ視覚化の Python パッケージ
graphvizを追加します。 Dockerfile の次のコード ブロックは、repository名とtagを使用して Advanced ランタイムにアクセスし、ランタイム内にgraphvizをインストールするよう Docker に指示します。 このランタイムがインストールされている ArcGIS Notebook Server コンピューターでコマンドdocker imagesを使用して、repositoryの名前とtagを取得できます。conda cleanコマンドは、ファイル サイズを削減する際におすすめします。次の例に示すように、
docker imagesコマンドを使用して、既存のノートブック ランタイムのイメージ名 (リポジトリー) とタグを取得します。docker images REPOSITORY TAG IMAGE ID CREATED SIZE arcgis-notebook-python-windows 11.4.0.54309 7a03917a4381 5 weeks ago 29.5GBdocker images REPOSITORY TAG IMAGE ID CREATED SIZE arcgis-notebook-python-advanced 11.4.0.54309 e46a81f69ea0 12 months ago 12.4GB arcgis-notebook-python-standard 11.4.0.54309 106a660a4d0b 12 months ago 7.51GBデータ視覚化の Python パッケージ
graphvizを Advanced ノートブック ランタイムに追加して、カスタム ランタイムを作成します。# Specify the existing notebook runtime imageId as FROM FROM <repository>:<tag> # Use RUN to issue a command to install, then clean RUN conda install graphviz \ && conda clean -y -aDockerfile を、コンピューター上の、Dockerfile のみを格納する新しいフォルダー内に保存します。
Docker コマンドを使用してカスタム コンテナー イメージを構築します。
このイメージには、Dockerfile で指定された新しいランタイムが含まれます。 コマンド プロンプト ウィンドウを開いて、次の構文でコマンドを実行します:
cd C:\DockerfileDir docker build -t <repository>:<tag> -f Dockerfile .このイメージには、Dockerfile で指定された新しいランタイムが含まれます。 ターミナルを開き、次の構文でコマンドを実行します:
docker build -t <repository>:<tag> -f /data/DockerfileDir/Dockerfile .注意:
コマンド末尾には必ずピリオドを含めてください。
コマンドが実行されると、Docker で新しいコンテナー イメージが構築されます。 コマンド出力の最終行は
Successfully built <imageId>になり、新しいイメージの省略形の ID 値が含まれます。 ArcGIS Notebook Server サイトには、完全なimageId値を指定する必要があります。コマンド プロンプト ウィンドウで次のコマンドを実行し、イメージの ID 値を取得します:
ターミナルで次のコマンドを実行し、イメージの ID 値を取得します:
docker inspect <imageId>単一コンピューターの Notebook Server サイトがある場合、ステップ 8 ~ 10 はスキップできます。 複数コンピューターの Notebook Server サイトがある場合、ステップ 8 ~ 10 までを実行します。
docker saveを使用して、カスタム Docker イメージを*.tarファイルとして保存します。カスタム ランタイム イメージがインストールされている Notebook Server コンピューターでコマンド ウィンドウを開き、次のコマンドを実行してカスタム ランタイム イメージを
*.tarファイルとして保存します。docker save <repository>:<tag> > <repository>-custom.tarNotebook Server がインストールされている各コンピューターで、ArcGIS Notebook Server ポストインストール ユーティリティーを使用してカスタム ランタイム イメージを読み込みます。
コマンド ウィンドウを管理者として開きます。
ディレクトリーを ArcGIS Notebook Server ポストインストール ユーティリティー フォルダーに変更します。
デフォルト パスは
C:\Program Files\ArcGIS\NotebookServer\tools\postInstallUtilityです。カスタム Docker イメージのファイル パスを指定してインストールします。
PostInstallUtility.bat -l <path of .tar Custom Docker image>デフォルト パスは
${HOME}/arcgis/notebookserver/tools/postInstallUtilityです。- カスタム Docker イメージのファイル パスを指定してインストールします。
./PostInstallUtility.sh -l <path of .tar Custom Docker image>ArcGIS Notebook Server サイトに参加している各コンピューターで、ステップ 9 を繰り返します。
これでカスタム イメージが構築され、完全な imageId 値を取得しました。次のセクションでは、この値を使用してカスタム イメージを ArcGIS Notebook Server サイトに登録します。
ArcGIS Server Manager への新しいランタイムの登録
10.8 以降、ArcGIS Notebook Server Manager を使用して、作成したカスタム ランタイムを登録することができます。
管理者として ArcGIS Enterprise ポータルにサイン インし、ArcGIS Notebook Server Manager を開きます。
設定 ページを開き、ランタイム をクリックします。
ランタイムの登録 をクリックして登録ダイアログ ボックスを開きます。
適切な値を指定して登録を完了します。
Parameter
詳細
名前
新しいランタイムを表す文字列 (たとえば、
"Notebook Custom Runtime Python 3")。コンテナー タイプ
有効な値は
dockerのみです。最大 CPU
各コンテナーに使用される CPU ユニットの最大数。
高度な権限が必要
ランタイムで Advanced ノートブック権限が必要な場合は、切り替えボタンをオンにします。
画像 ID
新しく構築された Docker イメージの完全な (短縮されていない) ID。
Docker ランタイム
Linux 環境の GPU ランタイムに対してのみ適用されます。
最大メモリー
各コンテナーに使用されるメモリーの最大量。
最大メモリー単位
maxMemoryパラメーターで指定された単位。最大スワップ メモリー
各コンテナーが
maxMemory制限に達した場合に、各コンテナーに使用できるスワップ メモリーの最大量。最大スワップ メモリー単位
maxSwapMemoryパラメーターで指定された単位。共有メモリー
各コンテナーに使用できる共有メモリーの量。
共有メモリー単位
sharedMemoryパラメーターで指定された単位。ライブラリー マニフェスト
ランタイム内の Python ライブラリーのリストを含む
*.jsonファイル (UTF-8 または ANSI エンコード)。注意:
manifest.jsonファイルを作成するには、カスタム ノートブック ランタイム イメージがインストールされている ArcGIS Notebook Server コンピューターで PowerShell ウィンドウを開き、Windows コンテナーを使用しているか Linux コンテナーを使用しているかに応じて、次のコマンドのいずれかを実行します。Windows コンテナーで、次のコマンドを使用します:
$ID = docker run -d -it <custom_runtime_image_ID> cmd; docker exec -it $ID powershell "conda list --json >> C:\arcgis\home\manifest.json"; docker cp $ID/:C:\arcgis\home\manifest.json <existing_folder_path>; docker kill $ID; docker rm -f $ID;Linux コンテナーで、次のコマンドを使用します:
$ID = docker container run -d --rm -it -v /:/host <custom_runtime_image_ID> /bin/bash; docker exec -it $ID /opt/conda/bin/conda list --json >> ~\Desktop\manifest.json; docker kill $ID注意:
manifest.jsonファイルを作成するには、カスタム ノートブック ランタイム イメージがインストールされている ArcGIS Notebook Server コンピューターでターミナルを開き、次のコマンドを実行します:ID=$(docker container run -d --rm -it -v /:/host <custom_runtime_image_ID> /bin/bash) && docker exec -it $ID /opt/conda/bin/conda list --json >> ~/manifest.json && docker kill $ID準備ができたら、保存 をクリックして新しいランタイムを登録します。
新しいノートブックを開いて、この更新内容をテストします。 カスタム イメージに追加したモジュールやモジュールのバージョンが、ノートブックで使用できることを確認します。
非接続環境用の ArcGIS Deep Learning バックボーン パッケージを使用したカスタム ランタイム イメージの作成
ArcGIS API for Python では、それぞれが独自のベースモデル (バックボーン) をサポートする複数のディープ ラーニング モデルをトレーニングすることができます。 利用可能なバックボーン パッケージについては、「非接続環境のための追加インストール」をご参照ください。 arcgis_dl_backbones conda メタパッケージを含むカスタム ランタイム イメージを作成するには、次の手順に従います。 このプロセスは、他のバックボーンを使用したカスタム ランタイムの作成でも使用できます。
ArcGIS Notebook Server コンピューターにフォルダーを作成します。
場所の例:
C:\Program Files\custom。場所の例:
/data/custom。arcgis_dl_backbonesパッケージをダウンロードします。作成したフォルダーに最新のパッケージ
arcgis_dl_backbones-<Version number>-py_0.tar.bz2を抽出します。作成したフォルダーに、次のコンテンツおよび適切なバージョン番号を含む Docker ファイルを作成します。
FROM <repository>:<tag> RUN mkdir C:\\Users\\arcgis\\arcgis_dl_backbones-<Version number> WORKDIR C:\\Users\\arcgis\\arcgis_dl_backbones-<Version number> COPY arcgis_dl_backbones-<Version number>-py_0.tar.bz2 C:\\Users\\arcgis\\arcgis_dl_backbones-<Version number> RUN conda install --offline arcgis_dl_backbones-<Version number>-py_0.tar.bz2 -y RUN conda clean -y -aFROM <repository>:<tag> USER root RUN mkdir -p /home/user/DUMP/arcgis_dl_backbones-<Version number> USER $NB_UID WORKDIR /home/user/DUMP/arcgis_dl_backbones-<Version number> COPY arcgis_dl_backbones-<Version number>-py_0.tar.bz2 /home/user/DUMP/arcgis_dl_backbones-<Version number> RUN conda install --offline arcgis_dl_backbones-<Version number>-py_0.tar.bz2 -y RUN conda clean -y -a WORKDIR $HOME作成したフォルダーに移動し、次の Docker コマンドを使用してカスタム コンテナー イメージを構築します。
docker build -t <repository>:<tag> -f /data/DockerfileDir/Dockerfile .上記の ArcGIS Notebook Server Manager への新しいランタイムの登録セクションのステップに従って、このカスタム ランタイム イメージを Notebook Server コンピューターにインストールします。
ArcGIS Notebook Server をアップグレードした後のカスタム ランタイムの更新
ArcGIS Notebook Server をアップグレードした後でカスタム ランタイムを更新するには、以下の手順に従います。
新しいバージョンのノートブック ランタイム イメージを使用してカスタム ランタイム イメージを構築します。
Notebook Server ポスト インストール ユーティリティーを使用して、各 Notebook Server コンピューターに新しいランタイム イメージをインストールします。
ArcGIS Notebook Server Manager を使用して新しいランタイムを登録します。
カスタム ランタイムを使用している各ノートブックのアイテム詳細ページで、設定 をクリックします。
カスタム ランタイムを使用している各コンピューターで、ランタイムを確認し、新しく登録されたカスタム ランタイムに更新します。
新しいランタイム イメージが機能することを確認したら、以前のバージョンのカスタム ランタイムを登録解除して各 Notebook Server コンピューターからそのランタイム イメージを削除することでランタイムを廃止します。
ArcGIS Notebook Server サイトのランタイムを元の設定に戻すには、Administrator Directory の Restore Factory Runtimes 操作を実行します。 この操作は https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore から実行でき、サイトの現在のバージョンにおける初期状態のランタイムの復元のみが行われます。