ArcGIS Notebook Server umfasst zwei Notebook-Runtimes (Sammlungen von Python-Modulen). Diese Runtimes werden den Notebook-Benutzern über so genannte Container-Images zur Verfügung gestellt, die auf alle in der Server-Site ausgeführte Container angewendet werden.
Sowohl die Standard- als auch die erweiterte Notebook-Runtime enthalten ArcGIS API for Python und verschiedene Python-Module zur Verwendung in Data Science, räumlichen Analysen, für Content Management und Verwaltung. Die erweiterte Runtime enthält zudem ArcPy.
Liste der verfügbaren Python-Bibliotheken anzeigen
Manchmal benötigen Notebook-Autoren Module oder bestimmte Modulversionen, die nicht in diesen Runtimes enthalten sind. Es gibt mehrere Möglichkeiten, um in ArcGIS Notebook Server auf zusätzliche Python-Module zuzugreifen:
- Installieren Sie ein Python-Modul während einer Notebook-Sitzung. Damit steht das Modul zur Verwendung in diesem Notebook zur Verfügung.
- Erweitern Sie ein Esri Container-Image um zusätzliche Python-Bibliotheken in einer benutzerdefinierten Runtime. Durch das erstellte Container-Image wird die erweiterte Runtime für alle Notebook-Autoren der Site verfügbar.
Installieren von Modulen während einer Sitzung
Notebook-Autoren können Python-Module oder -Modulversionen, die in keiner Runtime enthalten sind, mit dem conda- oder pip-Paketmanagementsystem während einer Notebook-Sitzung verfügbar machen. Es wird empfohlen, conda zu verwenden, weil auch in ArcGIS Notebook Server Module damit verwaltet werden; allerdings sind einige Python-Module nur in pip verfügbar.
Hierbei wird das gewünschte Modul für die Dauer der Notebook-Sitzung installiert. Wird das Notebook geschlossen oder der Container des Benutzers beendet, ist das Modul nicht mehr verfügbar. Wenn Sie Module mit dieser Methode installieren möchten, müssen die Benutzer eine Internetverbindung zum conda- oder pip-Kanal haben.
Hinweis:
Sowohl conda als auch pip sind in den beiden Notebook-Runtimes enthalten. Sie müssen sie nicht extra installieren.
Wenn Sie zum Beispiel das scrapy-Paket während einer Sitzung installieren möchten, führen Sie eine Notebook-Zelle mit einem der folgenden Befehle aus. Welcher Befehl zu verwenden ist, hängt dabei vom eingesetzten Paketmanagementsystem ab:
Mit dem conda-Paketmanagementsystem
!conda install --yes scrapy
Mit dem pip-Paketmanagementsystem
!pip install scrapy
Um in der Notebook-Runtime, mit der Sie arbeiten, eine andere Version eines Python-Moduls zu verwenden, geben Sie die Versionsnummer im Befehl an.
Sie müssen den Kernel neu starten, nachdem Sie einen conda- oder pip-Befehl ausgeführt haben, damit das neue Paket zur Verfügung steht.
Beispielsweise ist ein bestimmtes Paket in beiden Notebook-Runtimes in Version 1.5 verfügbar, Sie möchten jedoch ein Werkzeug verwenden, das in Version 1.6 eingeführt wurde. Um Version 1.6 des Pakets während einer Notebook-Sitzung verfügbar zu machen, führen Sie eine Notebook-Zelle mit einem der folgenden Befehle aus. Welcher Befehl zu verwenden ist, hängt dabei vom eingesetzten Paketmanagementsystem ab:
Mit dem conda-Paketmanagementsystem
!conda install --yes <package name>==1.6
Mit dem pip-Paketmanagementsystem
!pip install <package name>==1.6
Erstellen eines benutzerdefinierten Container-Image
Um eine Notebook-Runtime dauerhaft zu ändern, können Sie ein benutzerdefiniertes Container-Image in einer Site erstellen. Durch den folgenden Workflow, der Administratorberechtigungen erfordert, wird ein benutzerdefiniertes Image erstellt, und ArcGIS Notebook Server wird für die Verwendung dieses Image konfiguriert.
Als Ausgangspunkt verwenden Sie eine der beiden Notebook-Runtimes (Standard oder erweitert). Wenn Sie die benutzerdefinierte Runtime erstellt haben, können Sie sie als neue Runtime in der Site registrieren.
- Installieren und konfigurieren Sie ArcGIS Notebook Server.
- Melden Sie sich beim ArcGIS Notebook Server-Administratorverzeichnis als Administrator an.
Die URL weist das Format https://notebookserver.domain.com:11443/arcgis/admin/ auf.
- Klicken Sie auf Notebooks > Runtimes, und wählen Sie die Notebook-Runtime aus, die Sie für das benutzerdefinierte Image erweitern möchten.
Notieren Sie sich für diese Runtime den Wert für "imageId", den Sie auf der Seite mit den Ressourcen finden. Dieser wird im nächsten Schritt benötigt.
- Erstellen Sie ein Dockerfile, mit dem die gewünschten Python-Module dem benutzerdefinierten Image hinzugefügt werden.
Ein Dockerfile ist eine einfache Textdatei mit Anweisungen zum Erstellen eines Docker-Container-Image. Informationen und Best Practices finden Sie in der Dockerfile-Dokumentation.
In diesem Beispiel fügen Sie das Python-Datenvisualisierungspaket graphviz der erweiterten Notebook-Runtime hinzu. Der folgende Codeblock im Dockerfile weist Docker an, mit dem imageId-Wert auf die erweiterte Runtime zuzugreifen und anschließend graphviz in der Runtime zu installieren. Als Best Practice lässt sich mit dem Befehl conda clean die Dateigröße reduzieren.
# 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
- Speichern Sie das Dockerfile auf dem Computer in einem neuen Ordner, der nur das Dockerfile enthält.
- Mit dem Befehl Docker erstellen Sie ein neues benutzerdefiniertes Container-Image. Dieses enthält eine neue Runtime gemäß Ihrer Angabe im Dockerfile. Führen Sie im Eingabeaufforderungsfenster einen Befehl mit folgender Syntax aus:
docker build -t <name of my new runtime>:v1.0 -f <path to my Dockerfile> .
Hinweis:
Beenden Sie den Befehl mit einem Punkt.
Bei der Ausführung des Befehls wird in Docker das neue Container-Image erstellt. Die letzte Zeile der Befehlsausgabe lautet Successfully built <imageId>, und sie enthält den abgekürzten ID-Wert des neuen Image. Sie müssen die ArcGIS Notebook Server-Site mit dem vollständigen imageId-Wert angeben.
- Führen Sie im Eingabeaufforderungsfenster den folgenden Befehl aus, um den Image ID-Wert abzurufen:
docker inspect <imageId>
Das benutzerdefinierte Image wird jetzt erstellt, und Sie verfügen über seinen vollständigen imageId-Wert. Diesen verwenden Sie im nächsten Abschnitt zum Registrieren des Image bei der ArcGIS Notebook Server-Site.
Registrieren einer neuen Runtime in Manager
Ab Version 10.8 können Sie mit ArcGIS Notebook Server Manager eine benutzerdefinierte Runtime registrieren, die Sie erstellt haben.
- Melden Sie sich als Administrator bei Ihrem ArcGIS Enterprise-Portal an, und öffnen Sie ArcGIS Notebook Server Manager.
- Öffnen Sie die Seite Einstellungen, und klicken Sie auf Runtimes.
- Klicken Sie auf Runtime registrieren, um das Dialogfeld für die Registrierung zu öffnen.
- Geben Sie die entsprechenden Werte an, um die Registrierung abzuschließen.
Parameter Details Name Eine Zeichenfolge zur Repräsentation der neuen Runtime wie etwa "Notebook Custom Runtime Python 3".
Version Die Version der von Esri bereitgestellten Runtime, die Sie als Basis-Docker-Image verwendet haben.
Image ID Vollständige (ungekürzte) ID für das neue Docker-Image, die Sie beim Erstellen des Image erhalten.
Container Type (Optional) Der einzige gültige Wert lautet "Docker".
Image pull string (Optional) nicht anwendbar.
Advanced privileges required? Aktivieren Sie dieses Kontrollkästchen, wenn die neue Notebook-Runtime über die Runtime ArcGIS Notebook Python 3 Advanced erweitert wurde und für die Verwendung die Berechtigung "Advanced-Notebooks" benötigt wird.
Max CPU Die maximale Anzahl CPUs, die für die einzelnen Container verwendet werden.
Max memory Die maximale Größe des Arbeitsspeichers, der für die einzelnen Container verwendet wird.
Max memory unit Die durch den Parameter Max memory angegebene Einheit.
Max swap memory (Optional) Die maximale Größe des Swap-Speichers, der für die einzelnen Container verfügbar ist, wenn der Grenzwert für Max. Speicher erreicht wird.
Max swap memory unit (Optional) Die durch den Parameter Max swap memory angegebene Einheit.
Shared memory (Optional) Die Größe des freigegebenen Speichers, der für die einzelnen Container verfügbar ist.
Shared memory unit (Optional) Die durch den Parameter Shared memory angegebene Einheit.
Docker runtime (Optional) Ist nur auf GPU-Runtimes anwendbar. Weitere Informationen
Library manifest (Optional) Laden Sie eine Datei im JSON-Format hoch, die eine Liste der in dieser Runtime enthaltenen Python-Bibliotheken enthält.
Format Das Standardantwortformat. Das Standardantwortformat lautet html.
Wert: html | json | pjson
- Klicken Sie anschließend auf Speichern, um die neue Runtime zu registrieren.
- Öffnen Sie ein neues Notebook, um diese Aktualisierung zu testen. Überprüfen Sie, ob die zum benutzerdefinierten Image hinzugefügten Module oder Modulversionen im Notebook enthalten sind.
Mit der Operation Restore Factory Runtimes im Administratorverzeichnis können Sie die in der ArcGIS Notebook Server-Site verfügbaren Runtimes auf die ursprünglichen Einstellungen zurücksetzen. Diese ist unter https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore verfügbar und stellt nur die werksseitigen Runtimes für die aktuelle Version der Site wieder her.