Skip To Content

Rozszerzanie środowiska wykonawczego notatnika

Aplikacja ArcGIS Notebook Server udostępnia dwa środowiska wykonawcze notatników (zbiory modułów w języku Python). Użytkownicy notatników mają dostęp do tych środowisk wykonawczych za pośrednictwem obrazów kontenera, które są stosowane w przypadku każdego kontenera uruchomionego w używanej witrynie serwera.

Zarówno standardowe, jak i zaawansowane środowisko wykonawcze notatnika zawiera interfejs ArcGIS API for Python i różne moduły języka Python, których można używać do naukowej analizy danych, analizy przestrzennej oraz zarządzania i administrowania zasobami. Zaawansowane środowisko wykonawcze zawiera również pakiet ArcPy.

Zapoznaj się z listą dostępnych bibliotek Python

W niektórych przypadkach autorzy notatników mogą potrzebować modułów lub konkretnych ich wersji, które nie są dostępne w tych dwóch środowiskach wykonawczych. Dostęp do dodatkowych modułów języka Python w aplikacji ArcGIS Notebook Server można uzyskać w następujący sposób:

  • Zainstaluj moduł języka Python podczas sesji notatnika. W ten sposób moduł stanie się dostępny do użytku w tym notatniku.
  • Rozszerz obraz kontenera Esri tak, aby zawierał dodatkowe biblioteki Python w niestandardowym środowisku wykonawczym. Utworzony obraz kontenera sprawi, że rozszerzone środowisko wykonawcze będzie dostępne dla wszystkich autorów notatników w witrynie.

Instalowanie modułów podczas sesji

Podczas sesji notatnika autorzy notatników mogą przy użyciu systemów zarządzania pakietami conda lub pip udostępniać moduły języka Python lub wersje modułów, które nie znajdują się w żadnym ze środowisk wykonawczych. Zaleca się użycie systemu conda, ponieważ aplikacja ArcGIS Notebook Server używa go do zarządzania modułami, jednak niektóre moduły języka Python są dostępne tylko w systemie pip.

To podejście pozwala zainstalować żądany moduł w czasie trwania sesji notatnika. Po zamknięciu notatnika lub przerwaniu działania kontenera należącego do użytkownika moduł przestaje być dostępny. Aby instalować moduły za pomocą tej metody, użytkownicy muszą mieć połączenie internetowe z kanałem conda lub pip.

Notatka:

Kanały conda i pip są uwzględnione w obu środowiskach wykonawczych notatników. Nie jest konieczna ich instalacja.

Aby na przykład zainstalować pakiet scrapy w trakcie sesji, uruchom komórkę notatnika za pomocą jednego z następujących poleceń (w zależności od używanego systemu zarządzania pakietami):

W przypadku systemu zarządzania pakietami conda

!conda install --yes scrapy

W przypadku systemu zarządzania pakietami pip

!pip install scrapy

Aby skorzystać z innej wersji modułu języka Python w używanym środowisku wykonawczym notatników, określ w poleceniu numer tej wersji.

Po uruchomieniu polecenia conda lub pip musisz zrestartować jądro, aby nowy pakiet stał się dostępny.

Na przykład pewien pakiet jest dostępny w obu środowiskach wykonawczych notatników w wersji 1.5, ale chcesz użyć narzędzia wprowadzonego w wersji 1.6. Aby udostępnić wersję 1.6 pakietu w trakcie sesji notatnika, uruchom komórkę notatnika za pomocą jednego z poniższych poleceń (w zależności od używanego systemu zarządzania pakietami):

W przypadku systemu zarządzania pakietami conda

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

W przypadku systemu zarządzania pakietami pip

!pip install <package name>==1.6

Budowanie niestandardowego obrazu kontenera

Aby dokonać trwałych zmian w środowisku wykonawczym notatników, możesz zbudować niestandardowy obraz kontenera w witrynie. Poniższa procedura wykonywania zadań, która wymaga uprawnień administratora, pozwala utworzyć niestandardowy obraz i skonfigurować aplikację ArcGIS Notebook Server do korzystania z niego.

Punktem wyjścia jest jedno z dwóch środowisk wykonawczych notatników (standardowe lub zaawansowane). Po zbudowaniu niestandardowego środowiska wykonawczego możesz je zarejestrować jako nowe środowisko wykonawcze w witrynie.

  1. Zainstaluj i skonfiguruj aplikację ArcGIS Notebook Server.
  2. Zaloguj się w aplikacji ArcGIS Notebook Server Administrator Directory jako administrator.

    Adres URL ma format https://notebookserver.domain.com:11443/arcgis/admin/.

  3. Kliknij pozycję notatniki (notebooks) > środowiska wykonawcze (runtimes) i wybierz środowisko wykonawcze notatników, które chcesz rozszerzyć na potrzeby obrazu kontenera.

    Na stronie zasobów środowiska wykonawczego zanotuj wartość imageId dla tego środowiska wykonawczego. Wartość ta będzie potrzebna w następnym etapie.

  4. Utwórz plik Dockerfile, który pozwoli dodać konieczne moduły języka Python do obrazu niestandardowego.

    Plik Dockerfile to prosty plik tekstowy z instrukcjami pozwalającymi zbudować obraz kontenera Docker. Informacje i najważniejsze wskazówki znajdziesz w dokumentacji Dockerfile.

    W tym przykładzie dodasz pakiet wizualizacji danych graphviz w języku Python do zaawansowanego środowiska wykonawczego notatników. Poniższy blok kodu w pliku Dockerfile zawiera instrukcje dla systemu Docker umożliwiające uzyskanie dostępu do zaawansowanego środowiska wykonawczego przy użyciu wartości imageId, a następnie zainstalowanie pakietu graphviz w tym środowisku wykonawczym. Zastosowanie polecenia conda clean to dobra praktyka, która pozwala na zmniejszenie wielkości pliku.

    # 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

    W tym przykładzie utworzysz niestandardowe środowisko wykonawcze, które zawiera biblioteki aplikacji klienckiej 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. Zapisz plik Dockerfile na komputerze.
  6. Zbuduj nowy niestandardowy obraz kontenera przy użyciu polecenia Docker.

    Obraz ten będzie zawierał nowe środowisko wykonawcze zgodnie z informacjami w pliku Dockerfile. Otwórz terminal i uruchom polecenie o następującej składni:

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

    Pamiętaj, aby postawić kropkę na końcu polecenia.

    Podczas wykonywania polecenia system Docker buduje nowy obraz kontenera. Ostatni wiersz w danych wynikowych polecenia będzie miał postać Successfully built <imageId> i będzie zawierał skróconą wartość identyfikatora nowego obrazu. W witrynie aplikacji ArcGIS Notebook Server należy podać pełną wartość identyfikatora imageId.

  7. Uruchom następujące polecenie w terminalu, aby uzyskać wartość identyfikatora obrazu:

    docker inspect <imageId>

    Po zbudowaniu niestandardowego obrazu i uzyskaniu pełnej wartości identyfikatora imageId wróć do aplikacji ArcGIS Notebook Server Administrator Directory, aby zarejestrować nowy obraz.

  8. W aplikacji Administrator Directory wybierz kolejno opcje notatniki > środowiska wykonawcze. Kliknij opcję Zarejestruj środowisko wykonawcze.
  9. Podaj odpowiednie wartości, aby dokończyć rejestrację.

    Wskazówki dotyczące tych parametrów znajdują się w temacie referencyjnym Rejestrowanie środowiska wykonawczego. Gdy wszystko będzie gotowe, zarejestruj środowisko wykonawcze w witrynie.

  10. Otwórz nowy notatnik, aby przetestować tę aktualizację. Sprawdź, czy moduły lub wersje modułów dodane do niestandardowego obrazu są dostępne w notatniku.

W celu przywrócenia oryginalnych ustawień środowisk wykonawczych dostępnych w witrynie aplikacji ArcGIS Notebook Server użyj operacji Przywróć fabryczne środowiska wykonawcze w aplikacji Administrator Directory. Operacja ta jest dostępna pod adresem https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore i spowoduje odtworzenie wyłącznie fabrycznych środowisk wykonawczych dla bieżącej wersji witryny.