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.
- Zainstaluj i skonfiguruj aplikację ArcGIS Notebook Server.
- Zaloguj się w aplikacji ArcGIS Notebook Server Administrator Directory jako administrator.
Adres URL ma format https://notebookserver.domain.com:11443/arcgis/admin/.
- 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.
- 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
- Zapisz plik Dockerfile na komputerze.
- 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.
- 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.
- W aplikacji Administrator Directory wybierz kolejno opcje notatniki > środowiska wykonawcze. Kliknij opcję Zarejestruj środowisko wykonawcze.
- 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.
- 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.