Étendre un runtime de notebook
ArcGIS Notebook Server inclut deux runtimes de notebook (collections de modules Python). Ces runtimes sont mis à disposition des utilisateurs de notebook via des images de conteneur, qui sont appliquées à chaque conteneur qui s’exécute sur un site de serveur.
Les runtimes de notebook standard et avancés incluent ArcGIS API for Python et plusieurs modules Python qui peuvent être utilisés pour la science des données, l’analyse spatiale, la gestion du contenu et l’administration. Le runtime avancé comprend également ArcPy.
Afficher la liste des bibliothèques Python disponibles
Dans certains cas, les créateurs de notebooks peuvent avoir besoin de modules ou de versions spécifiques des modules qui ne figurent pas dans ces deux runtimes. Vous pouvez accéder à des modules Python supplémentaires dans ArcGIS Notebook Server de la manière suivante :
Installez un module Python pendant une session de notebook. Le module est alors disponible pour être utilisé dans ce notebook.
Étendez une image de conteneur Esri de façon à inclure des bibliothèques Python dans un runtime personnalisé. L’image de conteneur que vous créez mettra le runtime étendu à disposition de tous les créateurs de notebook de votre site.
Installer des modules pendant une session
Les créateurs de notebooks peuvent mettre à disposition les modules Python ou des versions des modules, qui ne sont disponibles dans aucun runtime, pendant une session de notebook à l’aide du système de gestion des paquetages conda. Il est recommandé d’utiliser conda, car ArcGIS Notebook Server l’emploie pour gérer les modules.
Cette approche installe le module souhaité pendant la durée de la session de notebook. Une fois que le notebook est fermé ou que le conteneur appartenant à l’utilisateur est terminé, le module n’est plus disponible. Pour installer des modules à l’aide de cette méthode, vous devez disposer d’une connexion Internet au canal conda.
Remarque :
conda est inclus dans les deux runtimes de notebooks. Il n’est pas nécessaire de l’installer.
Pour installer le paquetage scrapy pendant une session, par exemple, exécutez une cellule de notebook avec l’une des commandes suivantes, selon le système de gestion des paquetages que vous utilisez :
Utilisation du système de gestion des paquetages conda
!conda install --yes scrapy
Pour utiliser une autre version d’un module Python dans le runtime de notebook dans lequel vous travaillez, indiquez le numéro de version dans la commande.
Après avoir exécuté une commande conda, vous devez redémarrer le noyau pour que le nouveau paquetage soit disponible.
Par exemple, un paquetage donné est disponible dans les deux runtimes de notebook version 1.5, mais vous voulez utiliser un outil introduit dans la version 1.6. Pour mettre la version 1.6 à disposition pendant une session de notebook, exécutez une cellule de notebook avec l’une des commandes suivantes, selon le système de gestion des paquetages que vous utilisez :
Utilisation du système de gestion des paquetages conda
!conda install --yes <package name>==1.6
Créer une image de conteneur personnalisée
Pour apporter des modifications durables à un runtime de notebook, vous pouvez créer une image de conteneur personnalisée dans un site. Le processus suivant, qui nécessite des privilèges administratifs, crée une image personnalisée et configure ArcGIS Notebook Server de façon à l’utiliser.
Utilisez l’un des deux runtimes de notebook (standard ou avancé) comme point de départ. Une fois que vous avez créé un runtime personnalisé, vous pouvez l’inscrire comme nouveau runtime auprès de votre site.
Installez et configurez ArcGIS Notebook Server.
Connectez-vous au répertoire d’administration d’ArcGIS Notebook Server en tant qu’administrateur.
L’URL est au format
https://notebookserver.domain.com:11443/arcgis/admin/.Cliquez sur notebooks > runtimes, puis sélectionnez le runtime de notebook que vous voulez étendre pour votre image personnalisée.
Sur la page des ressources du runtime, notez la valeur
imageIdde ce runtime. Vous utiliserez cette valeur à l’étape suivante.Créez un Dockerfile qui ajoute les modules Python de votre choix à l’image personnalisée.
Un Dockerfile est un fichier texte simple comportant des instructions pour créer une image de conteneur Docker. Pour obtenir plus d’informations et des pratiques conseillées, reportez-vous à la documentation Dockerfile.
Dans cet exemple, vous allez ajouter le paquetage Python de visualisation des données
graphvizau runtime de notebook avancé. Le bloc de code suivant de votre Dockerfile indique à Docker d’accéder au runtime avancé à l’aide du nomrepositoryet detag, puis d’installergraphvizdans le runtime. Vous pouvez obtenir le nomrepositoryettagà l’aide de la commandedocker imagessur une machine ArcGIS Notebook Server sur laquelle ce runtime est installé. La commandeconda cleanest conseillée pour réduire la taille du fichier.Utilisez la commande
docker imagespour obtenir le nom de l’image (référentiel) et la balise d’un runtime de notebook existant, comme indiqué dans les exemples de réponse suivants.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.51GBCréez un runtime personnalisé en ajoutant le paquetage Python de visualisation des données
graphvizau runtime de notebook avancé.# 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 -aEnregistrez votre Dockerfile sur la machine, dans un nouveau dossier ne contenant que le Dockerfile.
Créez une image de conteneur personnalisée à l’aide d’une commande Docker.
Cette image contient un nouveau runtime, comme indiqué dans votre Dockerfile. Ouvrez la fenêtre d’invite de commande et exécutez une commande comportant la syntaxe suivante :
cd C:\DockerfileDir docker build -t <repository>:<tag> -f Dockerfile .Cette image contient un nouveau runtime, comme indiqué dans votre Dockerfile. Ouvrez un terminal et exécutez une commande comportant la syntaxe suivante :
docker build -t <repository>:<tag> -f /data/DockerfileDir/Dockerfile .Remarque :
Assurez-vous d’ajouter le point à la fin de la commande.
Lorsque la commande s’exécute, Docker crée la nouvelle image de conteneur. La dernière ligne de la sortie de commande sera
Successfully built <imageId>, avec l’ID abrégé de la nouvelle image. Vous devez indiquer votre site ArcGIS Notebook Server sa valeur complèteimageId.Exécutez la commande suivante dans la fenêtre d’invite de commande pour obtenir la valeur de l’ID de l’image :
Exécutez la commande suivante dans votre terminal pour obtenir la valeur de l’ID de l’image :
docker inspect <imageId>Si vous avez un site Notebook Server n’incluant qu’une seule machine, vous pouvez ignorer les étapes 8 à 10. Si vous avez un site Notebook Server comportant plusieurs machines, effectuez les étapes 8 à 10.
Enregistrez l’image Docker personnalisée en tant que fichier
*.taravecdocker save.Ouvrez une fenêtre de commande sur la machine Notebook Server sur laquelle l’image du runtime personnalisé est installée, puis exécutez la commande suivante pour enregistrer l’image du runtime personnalisé en tant que fichier
*.tar.docker save <repository>:<tag> > <repository>-custom.tarSur chaque machine sur laquelle Notebook Server est installé, chargez l’image de runtime personnalisée à l’aide de l’utilitaire post-installation d’ArcGIS Notebook Server.
Ouvrez une invite de commande en tant qu'administrateur.
Accédez au dossier de l’utilitaire post-installation d’ArcGIS Notebook Server.
Le chemin est défini par défaut sur
C:\Program Files\ArcGIS\NotebookServer\tools\postInstallUtility.Installez l’image Docker personnalisée en spécifiant le chemin d’accès à son fichier.
PostInstallUtility.bat -l <path of .tar Custom Docker image>Le chemin est défini par défaut sur
${HOME}/arcgis/notebookserver/tools/postInstallUtility.- Installez votre image Docker personnalisée en spécifiant le chemin d’accès à son fichier.
./PostInstallUtility.sh -l <path of .tar Custom Docker image>Répétez l’étape 9 sur chaque machine faisant partie de votre site ArcGIS Notebook Server.
Votre image personnalisée est désormais créée et vous disposez de sa valeur complète imageId, que vous utiliserez pour l’inscrire auprès du site ArcGIS Notebook Server à la section suivante.
Inscrire un nouveau runtime dans Manager
À partir de la version 10.8, vous pouvez utiliser ArcGIS Notebook Server Manager pour inscrire un runtime personnalisé que vous avez créé.
Connectez-vous au portail ArcGIS Enterprise en tant qu’administrateur et ouvrez ArcGIS Notebook Server Manager.
Ouvrez la page Settings (Paramètres) et cliquez sur Runtimes.
Cliquez sur Register runtime (Inscrire le runtime) pour ouvrir la boîte de dialogue d’inscription.
Spécifiez les valeurs adéquates pour terminer l’inscription.
Le paramètre
Détails
Nom
Chaîne représentant le nouveau runtime, telle que
"Notebook Custom Runtime Python 3".Type de conteneur
La seule valeur valide est
docker.CPU max
Nombre maximum d’unités UCT à utiliser pour chaque conteneur.
Privilèges avancés requis
Activez le bouton bascule si le runtime exige le privilège Notebooks avancés.
ID d'image
Identifiant complet (non tronqué) de la nouvelle image Docker au moment de sa construction.
Runtime Docker
S’applique uniquement aux runtimes de GPU dans les environnements Linux.
Mémoire max.
Quantité maximum de mémoire à utiliser pour chaque conteneur.
Unité de mémoire max.
Unité spécifiée par le paramètre
maxMemory.Mémoire d’échange max.
Quantité maximale de mémoire d’échange disponible pour chaque conteneur s’il atteint la limite
maxMemory.Unité de mémoire d’échange max.
Unité spécifiée par le paramètre
maxSwapMemory.Mémoire partagée
Quantité de mémoire partagée disponible pour chaque conteneur.
Unité de mémoire partagée
Unité spécifiée par le paramètre
sharedMemory.Manifeste de bibliothèque
Fichier
*.json(encodage UTF-8 ou ANSI) contenant la liste des bibliothèques Python dans le runtime.Remarque :
Pour créer un fichier
manifest.json, ouvrez une fenêtre PowerShell sur la machine ArcGIS Notebook Server où l’image de runtime de notebook personnalisé est installée et exécutez l’une des commandes suivantes, selon que vous utilisez des conteneurs Windows ou Linux.Sur les conteneurs Windows, utilisez la commande suivante :
$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;Sur les conteneurs Linux, utilisez la commande suivante :
$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 $IDRemarque :
Pour créer un fichier
manifest.json, ouvrez un terminal sur la machine ArcGIS Notebook Server où l’image de runtime de notebook personnalisé est installée et exécutez la commande suivante :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 $IDLorsque vous avez terminé, cliquez sur Save (Enregistrer) pour inscrire le nouveau runtime.
Ouvrez un nouveau notebook pour tester cette mise à jour. Vérifiez que les modules ou les versions des modules que vous avez ajoutés à votre image personnalisée sont disponibles dans le notebook.
Créer une image de runtime personnalisée avec le paquetage de backbones ArcGIS Deep Learning pour les environnements déconnectés
ArcGIS API for Python prend en charge la possibilité d’entraîner plusieurs modèles de Deep Learning, chacun prenant en charge leurs propres modèles de base (backbones). Pour connaître les paquetages de backbone disponibles, reportez-vous à la section Composants supplémentaires à installer dans les environnements déconnectés. Suivez la procédure ci-dessus pour créer une image d’exécution personnalisée contenant le métapaquetage conda arcgis_dl_backbones. Cette procédure permet également de créer des runtimes personnalisés avec d’autres backbones.
Créez un dossier sur votre machine ArcGIS Notebook Server.
Vous pouvez, par exemple, le créer à l’emplacement
C:\Program Files\custom.Voici un exemple d’emplacement :
/data/custom.Téléchargez le paquetage
arcgis_dl_backbones.Extrayez le tout dernier paquetage
arcgis_dl_backbones-<Version number>-py_0.tar.bz2dans le dossier que vous avez créé.Créez un fichier Docker avec le contenu suivant et le numéro de version approprié dans le dossier que vous avez créé :
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 $HOMEAccédez au dossier que vous avez créé et générez une image de conteneur personnalisée à l’aide de la commande Docker suivante :
docker build -t <repository>:<tag> -f /data/DockerfileDir/Dockerfile .Suivez les étapes de la section Inscrire un nouveau runtime dans Manager ci-dessus pour installer cette image de runtime personnalisé sur vos machines Notebook Server.
Mettre à jour le runtime personnalisé après la mise de niveau d’ArcGIS Notebook Server
Après avoir mis à niveau ArcGIS Notebook Server, procédez comme suit pour mettre à jour le runtime personnalisé :
Créez une image de runtime personnalisé à l’aide de la nouvelle version de l’image de runtime du notebook.
Utilisez l’utilitaire post-installation de Notebook Server pour installer la nouvelle image de runtime sur chaque poste Notebook Server.
Inscrivez un nouveau runtime à l’aide d’ArcGIS Notebook Server Manager.
Sur la page des détails des éléments de chaque notebook qui utilise le runtime personnalisé, clique sur Settings (Paramètres).
Sur chaque machine utilisant le runtime personnalisé, vérifiez le runtime et mettez-le à jour pour qu’il corresponde au runtime personnalisé que vous venez d’inscrire.
Après avoir vérifié que l’image du nouveau runtime fonctionne, dépréciez la version précédente du runtime personnalisé en désinscrivant celui-ci et en retirant son image de chaque machine Notebook Server.
Pour restaurer les paramètres d’origine des runtimes disponibles sur votre site ArcGIS Notebook Server, utilisez l’opération Restore Factory Runtimes (Restaurer les runtimes d’usine) dans le répertoire d’administration. Elle est disponible à l’adresse https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore et restaure uniquement les runtimes d’usine pour la version actuelle de votre site.