Skip To Content

ノートブック ランタイムの拡張

ArcGIS Notebook Server は 2 つのノートブック ランタイム (Python モジュールのコレクション) を備えています。 これらのランタイムは、コンテナー イメージを通じてノートブック ユーザーに提供され、サーバー サイトで実行される各コンテナーに適用されます。

Standard および Advanced のノートブック ランタイムには、どちらも ArcGIS API for Python および各種 Python モジュールが含まれており、データ サイエンス、空間解析、コンテンツ管理に使用できます。 Advanced ランタイムには ArcPy も含まれます。

使用可能な Python ライブラリのリストをご参照ください。

これら 2 つのランタイムに含まれていないモジュールや、特定のバージョンのモジュールが必要となる場合もあります。 ArcGIS Notebook Server では、次の方法でその他の Python モジュールにアクセスできます。

  • ノートブック セッションで Python モジュールをインストールします。 これにより、そのノートブックでモジュールを使用できるようになります。
  • Esri コンテナー イメージを拡張し、カスタム ランタイムに Python ライブラリを追加で含めます。 作成したコンテナー イメージにより、拡張したランタイムをサイト内のすべてのノートブック作成者が使用できるようになります。

セッション中のモジュールのインストール

ノートブック作成者は、conda または pip パッケージ管理システムを使用することで、ノートブック セッション中に使用可能なランタイムのどちらにも含まれていない Python モジュールまたはモジュールのバージョンを作成できます。 ArcGIS Notebook Server ではモジュールの管理に conda が使用されるため、conda の使用をお勧めします。ただし、pip でしか使用できない Python モジュールもあります。

この方法では、ノートブック セッションの間に目的のモジュールをインストールします。 ノートブックが閉じられるか、ユーザーに属するコンテナーが終了されると、そのモジュールは使用できなくなります。 この方法でモジュールをインストールするには、conda または pip チャンネルへのインターネット接続が必要です。

備考:

conda および pip はどちらも 2 つのノートブック ランタイムに含まれています。 そのため、インストールする必要はありません。

たとえば、セッション中に scrapy パッケージをインストールするには、使用しているパッケージ管理システムに応じて、次のどちらかのコマンドでノートブック セルを実行します。

conda パッケージ管理システムの使用

!conda install --yes scrapy

pip パッケージ管理システムの使用

!pip install scrapy

作業を行っているノートブック ランタイムでバージョンの異なる Python モジュールを使用するには、バージョン番号をコマンドで指定します。

新しいパッケージを使用できるようにするには、conda または pip コマンドの実行後にカーネルを再起動する必要があります。

たとえば、バージョン 1.5 の特定のパッケージが 2 つのノートブック ランタイムで使用できる場合に、バージョン 1.6 で導入されたツールを使用する必要があるとします。 ノートブック セッションでバージョン 1.6 のパッケージを使用できるようにするには、使用しているパッケージ管理システムに応じて、次のいずれかのコマンドでノートブック セルを実行します。

conda パッケージ管理システムの使用

!conda install --yes <package name>==1.6

pip パッケージ管理システムの使用

!pip install <package name>==1.6

カスタム コンテナー イメージの構築

ノートブック ランタイムに永続的な変更を加えるには、サイトにカスタム コンテナー イメージを構築します。 管理権限を必要とする次のワークフローにより、カスタム イメージが作成され、それを使用できるよう ArcGIS Notebook Server を構成します。

2 つのノートブック ランタイム (Standard か Advanced) のどちらかを開始点として使用します。 カスタム ランタイムの構築が完了したら、サイト内の新しいランタイムとして登録できます。

  1. ArcGIS Notebook Serverインストールして構成します。
  2. 管理者として ArcGIS Notebook Server Administrator Directory にサイン インします。

    URL の形式は、https://notebookserver.domain.com:11443/arcgis/admin/ です。

  3. [notebooks] > [runtimes] の順にクリックし、カスタム イメージ用に拡張するノートブック ランタイムを選択します。

    ランタイムのリソース ページで、このランタイムの imageId 値をメモします。 この値は次のステップに含めます。

  4. 目的の Python モジュールをカスタム イメージに追加する Dockerfile を作成します。

    Dockerfile は、Docker コンテナー イメージを構築する指示をまとめたシンプルなテキスト ファイルです。 ベスト プラクティスの情報については、Dockerfile のドキュメントをご参照ください。

    この例では、Advanced ノートブック ランタイムに、データ視覚化の Python パッケージ graphviz を追加します。 Dockerfile の次のコード ブロックは、imageId 値を使用して Advanced ランタイムにアクセスし、ランタイム内に graphviz をインストールするよう Docker に指示します。 conda clean コマンドは、ファイル サイズを削減する際のお勧めの方法です。

    # Specify the existing notebook runtime imageId as FROM
    FROM aa7a1a346e5b
    
    # Use RUN to issue a command to install, then clean
    RUN conda install graphviz \
      && conda clean -y -a

    この例では、Oracle クライアント ライブラリを含むカスタム ランタイムを作成します。

    ## Using a Dockerfile to build a custom notebook runtime that includes Oracle client
    FROM <replace with imageId of standard or advanced container image>
    
    ## Switch to root user for installing OS level packages. 
    USER root
    
    ## Combine OS level statements for Docker image efficiency
    RUN apt-get update && \
            apt-get install -y alien
    ## Update the url below to the desired version of Oracle client.
    RUN wget https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.10-basic-19.10.0.0.0-1.x86_64.rpm
    RUN alien -i oracle-instantclient19.10-basic-19.10.0.0.0-1.x86_64.rpm
    
    ## Installing libaio1 is required only for Notebook runtimes version 5 (10.9) or earlier.  
    RUN apt-get install -y libaio1
    
    ## Switch back to arcgis user at end of the Dockerfile
    USER arcgis
  5. コンピューターに Dockerfile を保存します。
  6. Docker コマンドを使用し、新しいカスタム コンテナー イメージを構築します。

    このイメージには、Dockerfile で指定された新しいランタイムが含まれます。 コマンド プロンプト ウィンドウを開き、次の構文でコマンドを実行します:

    docker build -t <name of my new runtime>:v1.0 -f <path to my Dockerfile> .
    備考:

    コマンド末尾には必ずピリオドを含めてください。

    コマンドが実行されると、Docker が新しいコンテナー イメージを構築します。 コマンド出力の最終行は Successfully built <imageId> になり、新しいイメージの省略形の ID 値が含まれます。 ArcGIS Notebook Server サイトには、完全な imageId 値を指定する必要があります。

  7. コマンド プロンプト ウィンドウで次のコマンドを実行し、イメージの ID 値を取得します。

    docker inspect <imageId>

    カスタム イメージが構築され、完全な imageId 値が指定されたため、ArcGIS Notebook Server Administrator Directory に戻って新しいイメージを登録します。

  8. Administrator Directory で、[notebooks] > [runtimes] の順に移動します。 [Register Runtime] をクリックします。
  9. 適切な値を指定して登録を完了します。

    これらのパラメーターに関するガイドについては、「ランタイムの登録」参照トピックをご参照ください。 準備ができたら、ランタイムをサイトに登録します。

  10. 新しいノートブックを開いて、この更新内容をテストします。 カスタム イメージに追加したモジュールやモジュールのバージョンが、ノートブックで使用できることを確認します。

ArcGIS Notebook Server サイトのランタイムを元の設定に戻すには、Administrator Directory の [Restore Factory Runtimes] 操作を実行します。 この操作は https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore から実行でき、サイトの現在のバージョンにおける初期状態のランタイムの復元のみが行われます。