ArcGIS Notebook Server include due runtime per gli appunti (raccolte di moduli Python). Questi runtime sono disponibili per gli utenti degli appunti attraverso le immagini dei contenitori, che vengono applicate a ciascun contenitore eseguito nel sito del server.
Sia i runtime Standard degli appunti che quelli Avanzati includono ArcGIS API for Python e diversi moduli Python utilizzabili per attività legate alla scienza dei dati, all'analisi spaziale, alla gestione dei contenuti e all'amministrazione. Il runtime avanzato comprende anche ArcPy.
Consultare l'elenco di librerie Python disponibili
In alcuni casi, gli autori di appunti possono aver bisogno di determinati moduli o di versioni specifiche dei moduli che non sono inclusi in questi due runtime. È possibile accedere a ulteriori moduli di Python in ArcGIS Notebook Server nei modi seguenti:
- Installare un modulo Python durante una sessione di appunti. In questo modo il modulo sarà disponibile per l'uso in quegli appunti.
- Estendere un'immagine del contenitore Esri per includere librerie aggiuntive Python in un runtime personalizzato. L'immagine del contenitore che si crea renderà disponibile il runtime esteso a tutti gli autori di appunti nel sito.
Installare i moduli durante una sessione
Gli autori degli appunti possono creare dei moduli Python, o versioni di moduli, che non sono inclusi in ciascun runtime disponibile per l'uso durante una sessione di appunti usando i sistemi di gestione pacchetti conda o pip. È consigliabile usare conda, perché ArcGIS Notebook Server lo usa per gestire i moduli di gestione; comunque, alcuni moduli Python sono disponibili solo in pip.
Questo approccio consente di installare il modulo desiderato per la durata della sessione di appunti. Il modulo cesserà di essere disponibile una volta chiusi gli appunti o quando il contenitore appartenente all'utente viene terminato. Per installare i moduli usando questo metodo, gli utenti devono disporre della connessione a Internet per il canale conda o pip.
Nota:
Sia conda che pip sono inclusi nei due runtime degli appunti. Non è necessario installarli.
Per installare il pacchetto scrapy durante una sessione, ad esempio, eseguire una cella degli appunti con uno dei seguenti comandi, a seconda del sistema di gestione dei pacchetti usato:
Utilizzo del sistema di gestione dei pacchetti conda
!conda install --yes scrapy
Utilizzo del sistema di gestione dei pacchetti pip
!pip install scrapy
Per utilizzare una versione diversa di un modulo di Python nel runtime degli appunti su cui si sta lavorando, specificare il numero di versione nel comando.
È necessario riavviare il kernel dopo aver eseguito un comando conda o pip per rendere il nuovo pacchetto disponibile.
Ad esempio, è disponibile un certo pacchetto in entrambi i runtime degli appunti con la versione 1.5, ma si desidera utilizzare uno strumento introdotto con la 1.6. Per rendere disponibile la versione 1.6 del pacchetto durante una sessione di appunti, ad esempio, eseguire una cella degli appunti con uno dei seguenti comandi, a seconda del sistema di gestione dei pacchetti usato:
Utilizzo del sistema di gestione dei pacchetti conda
!conda install --yes <package name>==1.6
Utilizzo del sistema di gestione dei pacchetti pip
!pip install <package name>==1.6
Costruire un'immagine personalizzata di un contenitore
Per modificare in modo definitivo un runtime degli appunti, è possibile creare un'immagine personalizzata del contenitore in un sito. Il seguente flusso di lavoro, che richiede privilegi di amministratore, consente di creare un'immagine personalizzata e configura ArcGIS Notebook Server per usarlo.
Usare uno dei due runtime degli appunti (Standard o Avanzato) come punto di partenza. Una volta creato il runtime personalizzato, è possibile registrarlo come un nuovo runtime nel sito.
- Installare e configurare ArcGIS Notebook Server.
- Accedere all'Administrator Directory di ArcGIS Notebook Server come amministratore.
Il formato dell'URL è https://notebookserver.domain.com:11443/arcgis/admin/.
- Fare clic sui runtime > degli appunti, quindi selezionare il runtime degli appunti che si desidera estendere per l'immagine personalizzata.
Nella pagina delle risorse del runtime, prendere nota del valore imageId per questo runtime. Si inserirà questo valore nel passaggio successivo.
- Creare un Dockerfile che aggiunga all'immagine personalizzata i moduli Python desiderati.
Un Dockerfile è un semplice file di testo contenente le istruzioni per creare un'immagine del contenitore Docker. Seguire la documentazione sui Dockerfile per le informazioni e le procedure consigliate.
In questo esempio si aggiunge il pacchetto Python per la visualizzazione dei dati graphviz al runtime degli appunti Avanzato. Il seguente blocco di codice nel Dockerfile ordina a Docker di accedere al runtime Avanzato usando il suo valore di imageId e di installare graphviz all'interno del runtime. Il comando conda clean è il modo migliore per ridurre le dimensioni del file.
# 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
In questo esempio, si crea un runtime personalizzato che include le librerie client 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
- Salvare il Dockerfile sul computer in una nuova cartella contente solo il Dockerfile.
- Creare la nuova immagine del contenitore personalizzata usando un comando Docker.
Questa immagine conterrà un nuovo runtime, come specificato nel Dockerfile. Aprire un terminale ed eseguire un comando con la seguente sintassi:
docker build -t <name of my new runtime>:v1.0 -f <path to my Dockerfile> .
Nota:
Non dimenticare di inserire il punto al termine del comando.
Quando il comando viene eseguito, Docker crea la nuova immagine del contenitore. L'ultima riga dell'output del comando sarà Successfully built <imageId> con l'identificativo abbreviato della nuova immagine. È necessario fornire al sito ArcGIS Notebook Server il valore completo imageId.
- Eseguire il seguente comando nel terminale per ottenere il valore identificativo dell'immagine:
docker inspect <imageId>
L'immagine personalizzata è ora creata e si ha il suo valore imageId completo, che verrà utilizzato per registrarla con il sito ArcGIS Notebook Server nella sezione successiva.
Registrare un nuovo in Manager
A partire dalla versione 10.8, è possibile usare ArcGIS Notebook Server Manager per registrare un runtime personalizzato che è stato creato.
- Effettuare l'accesso al portale ArcGIS Enterprise come amministratore e aprire ArcGIS Notebook Server Manager.
- Aprire la pagina Impostazioni e fare clic su Runtime.
- Cliccare su Registra Runtime per aprire la finestra di dialogo della registrazione.
- Specificare i valori appropriati per completare la registrazione.
Parametro Dettagli name (Obbligatorio)
Una stringa che rappresenti il nuovo runtime, come "Notebook Custom Runtime Python 3".
version (Obbligatorio)
La versione del runtime fornito da Esri usato come immagine Docker di base.
Legacy:
Questo parametro è stato deprecato come dalla versione ArcGIS Notebook Server 10.9
imageId (Obbligatorio)
ID completo (non troncato) della nuova immagine Docker, ottenuto al momento della creazione dell'immagine.
containerType (Facoltativo)
L'unico valore valido è "Docker".
imagePullString (Facoltativo)
Non applicabile.
requiresAdvancedPrivileges (Obbligatorio)
Impostare questo valore su true se il runtime richiede privilegi avanzati.
Valori: true | false
maxCPU (Obbligatorio)
Il numero massimo di unità CPU da usare per ciascun contenitore.
maxMemory (Obbligatorio)
La quantità massima di memoria da usare per ciascun contenitore.
maxMemoryUnit (Obbligatorio)
L'unità specificata dal parametro Memoria massima.
maxSwapMemory (Facoltativo)
La quantità massima di memoria di scambio disponibile per ciascun contenitore se raggiunge il limite di Memoria massima.
maxSwapMemoryUnit (Facoltativo)
L'unità specificata dal parametro Memoria massima.
sharedMemory (Facoltativo)
La quantità di memoria condivisa disponibile per ciascun contenitore.
sharedMemoryUnit (Facoltativo)
L'unità specificata dal parametro Memoria condivisa.
dockerRuntime (Facoltativo)
Si applica solo a runtime GPU in ambienti Linux. Ulteriori informazioni
manifestFile (Facoltativo)
Caricare un file in formato JSON contenente un elenco di librerie di Python incluse con questo runtime.
f (Facoltativo)
Formato risposta predefinita. Il formato della risposta predefinita è html.
Valori: html | json | pjson
Nota:
Per creare un file manifest.json, aprire un terminale sul computer ArcGIS Notebook Server in cui è installata l'immagine del runtime degli appunti personalizzata ed eseguire questo comando:
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 $ID
- Al termine dell'operazione, fare clic su Salva per registrare il nuovo runtime.
- Aprire una nuova sessione di appunti per testare l'aggiornamento. Verificare che i moduli o le versioni dei moduli aggiunti all'immagine personalizzata siano disponibili negli appunti.
Per ripristinare le impostazioni originali dei runtime nel sito di ArcGIS Notebook Server, eseguire l'operazione Ripristina i Runtime Predefiniti nell'Administrator Directory. Ciò è disponibile con https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore e ripristinerà solo i runtime predefiniti per la versione corrente del sito.