Personalizzare l'istanza di calcolo con uno script
Usare uno script di installazione per un modo automatizzato per personalizzare e configurare un'istanza di calcolo in fase di provisioning.
Usare un'istanza di calcolo come ambiente di sviluppo completamente configurato e gestito nel cloud. Per lo sviluppo e il test, è anche possibile usare l'istanza come destinazione di calcolo di training o per una destinazione di inferenza. Un'istanza di calcolo può eseguire più processi in parallelo e ha una coda di processi. Come ambiente di sviluppo, un'istanza di calcolo non può essere condivisa con altri utenti nell'area di lavoro.
L'amministratore può scrivere uno script di personalizzazione da usare per effettuare il provisioning di tutte le istanze di calcolo nell'area di lavoro in base alle esigenze. È possibile configurare lo script di installazione come script di creazione, che verrà eseguito una sola volta quando viene creata l'istanza di calcolo. In alternativa, è possibile configurarlo come script di avvio, che verrà eseguito ogni volta che viene avviata l'istanza di calcolo (inclusa la creazione iniziale).
Alcuni esempi di cosa è possibile fare in uno script di configurazione:
- Installare pacchetti, strumenti e software
- Montare dati
- Creare un ambiente Conda e kernel Jupyter personalizzati
- Clonare i repository Git e impostare la configurazione Git
- Impostare i proxy di rete
- Impostare le variabili di ambiente
- Installare le estensioni di JupyterLab
Creare lo script di configurazione
Lo script di installazione è uno script della shell, che viene eseguito come rootuser
. Creare o caricare lo script nei file notebook:
- Accedere allo studio e selezionare l'area di lavoro.
- Selezionare Notebook a sinistra.
- Usare lo strumento Aggiungi file per creare o caricare lo script della shell di installazione. Assicurarsi che il nome file dello script termini in ".sh". Quando si crea un nuovo file, modificare anche il tipo di file in bash(.sh).
Quando viene eseguito lo script, la directory di lavoro corrente dello script è la directory in cui è stata caricata. Ad esempio, se si carica lo script nell'amministratore utenti, il percorso dello script nell'istanza di calcolo e la directory di lavoro corrente quando lo script viene eseguito è /home/azureuser/cloudfiles/code/Users/admin.> Questo percorso consente di usare percorsi relativi nello script.
Gli argomenti script possono essere indicati nello script come $1, $2 e così via.
Se lo script stava eseguendo un'operazione specifica per azureuser, ad esempio l'installazione dell'ambiente conda o del kernel Jupyter, inserirlo all'interno sudo -u azureuser
di un blocco simile al seguente:
#!/bin/bash
set -e
# This script installs a pip package in compute instance azureml_py38 environment.
sudo -u azureuser -i <<'EOF'
PACKAGE=numpy
ENVIRONMENT=azureml_py38
conda activate "$ENVIRONMENT"
pip install "$PACKAGE"
conda deactivate
EOF
Il comando sudo -u azureuser
modifica la directory di lavoro corrente in /home/azureuser
. Non è inoltre possibile accedere agli argomenti dello script in questo blocco.
Per altri script di esempio, vedere azureml-examples.
È anche possibile usare le variabili di ambiente seguenti nello script:
CI_RESOURCE_GROUP
CI_WORKSPACE
CI_NAME
CI_LOCAL_UBUNTU_USER
- punta aazureuser
Usare uno script di installazione in combinazione con Criteri di Azure per applicare o impostare uno script di installazione predefinito per ogni creazione dell'istanza di calcolo.
Il valore predefinito per un timeout dello script di installazione è 15 minuti. L'ora può essere modificata in Studio o tramite i modelli di Resource Manager usando il DURATION
parametro .
DURATION
è un numero a virgola mobile con un suffisso facoltativo: 's'
per secondi (impostazione predefinita), 'm'
per minuti, 'h'
per ore o 'd'
per giorni.
Usare lo script in Studio
Dopo aver archiviato lo script, specificarlo durante la creazione dell'istanza di calcolo:
- Accedere a Studio e selezionare l'area di lavoro.
- A sinistra selezionare Calcolo.
- Selezionare +Nuovo per creare una nuova istanza di calcolo.
- Compilare il modulo.
- Nella pagina Applicazioni del modulo attivare o disattivare il tipo di script da usare, lo script di creazione (eseguito una volta durante la creazione dell'istanza di calcolo) o lo script di avvio (eseguito ogni volta che viene avviata l'istanza di calcolo).
- Passare allo script della shell salvato. Oppure caricare uno script dal computer.
- Aggiungere argomenti di comando in base alle esigenze.
Suggerimento
Se l'archiviazione dell'area di lavoro è collegata a una rete virtuale, potrebbe non essere possibile accedere al file di script di installazione a meno che non si acceda allo studio dalla rete virtuale.
Usare lo script in un modello di Resource Manager
In un modello di Resource Manager aggiungere setupScripts
per richiamare lo script di installazione quando viene effettuato il provisioning dell'istanza di calcolo. Ad esempio:
"setupScripts":{
"scripts":{
"creationScript":{
"scriptSource":"workspaceStorage",
"scriptData":"[parameters('creationScript.location')]",
"scriptArguments":"[parameters('creationScript.cmdArguments')]"
}
}
}
scriptData
in precedenza specifica il percorso dello script di creazione nella condivisione file dei notebook, Users/admin/testscript.sh
ad esempio .
scriptArguments
è facoltativo in precedenza e specifica gli argomenti per lo script di creazione.
È invece possibile specificare lo script inline per un modello di Resource Manager. Il comando shell può fare riferimento a tutte le dipendenze caricate nella condivisione file dei notebook. Quando si usa una stringa inline, la directory di lavoro per lo script è /mnt/batch/tasks/shared/LS_root/mounts/clusters/**\<ciname\>**/code/Users
.
Ad esempio, specificare una stringa di comando con codifica Base64 per scriptData
:
"setupScripts":{
"scripts":{
"creationScript":{
"scriptSource":"inline",
"scriptData":"[base64(parameters('inlineCommand'))]",
"scriptArguments":"[parameters('creationScript.cmdArguments')]"
}
}
}
Log di script di installazione
Fare riferimento ai log dell'esecuzione dello script di configurazione visualizzati nella cartella logs nella pagina dei dettagli dell'istanza di calcolo. I log vengono archiviati nella condivisione file dei notebook nella cartella Logs\<compute instance name>
. Gli argomenti del file di script e dei comandi per una particolare istanza di calcolo vengono visualizzati nella pagina dei dettagli.