Condividi tramite


Personalizzare l'istanza di calcolo con uno script

Usare uno script di installazione per automatizzare la personalizzazione e la configurazione di un'istanza di ambiente 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 ambiente di calcolo può eseguire più processi in parallelo e ha una coda di processi. Come ambiente di sviluppo, un'istanza di ambiente 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 configurazione come:

  • Script di creazione: viene eseguito una sola volta quando viene creata l'istanza di calcolo.
  • Script di avvio: viene eseguito ogni volta che viene avviata l'istanza di ambiente 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 di notebook:

  1. Accedere allo studio e selezionare l'area di lavoro.
  2. Selezionare Notebook a sinistra.
  3. Usare lo strumento Aggiungi file per creare o caricare lo script della shell di configurazione. Assicurarsi che il nome file dello script termini in "sh". Quando si crea un nuovo file, impostare anche Tipo di file su bash(.sh).

Creare o caricare lo script di installazione nel file Notebooks in Studio

Quando viene eseguito lo script, la directory di lavoro corrente dello script è la directory in cui è stato caricato. Ad esempio, se si carica lo script in Users>admin, la posizione dello script nell'istanza di ambiente di calcolo e nella directory di lavoro corrente quando lo script viene eseguito è /home/azureuser/cloudfiles/code/Users/admin. Questa posizione consente di usare percorsi relativi nello script.

Gli argomenti dello script possono essere indicati come $1, $2 e così via.

Se lo script esegue un'operazione specifica per azureuser, ad esempio l'installazione dell'ambiente Conda o del kernel Jupyter, inserirlo all'interno di un blocco sudo -u azureuser 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 
source /anaconda/etc/profile.d/conda.sh
conda activate "$ENVIRONMENT"
pip install "$PACKAGE"
conda deactivate
EOF

Il comando sudo -u azureuser consente di impostare la directory di lavoro corrente su /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 a azureuser

Usare uno script di installazione in combinazione con Criteri di Azure per applicare o impostare uno script di installazione predefinito per ogni creazione di istanza di ambiente di calcolo. Il valore predefinito per un timeout dello script di installazione è 15 minuti. Questo valore può essere cambiato in studio o tramite modelli di ARM usando il parametro DURATION. 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 ambiente di calcolo:

  1. Accedere allo studio e selezionare l'area di lavoro.
  2. A sinistra selezionare Calcolo.
  3. Selezionare +Nuovo per creare una nuova istanza di ambiente di calcolo.
  4. Compilare il modulo.
  5. 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).
  6. Passare allo script della shell salvato. In alternativa, caricare uno script dal computer.
  7. Aggiungere gli argomenti del comando necessari.

Screenshot del provisioning di un'istanza di calcolo con uno script di installazione in studio.

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 dall'interno della 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 ambiente di calcolo. Ad esempio:

"setupScripts":{
    "scripts":{
        "creationScript":{
        "scriptSource":"workspaceStorage",
        "scriptData":"[parameters('creationScript.location')]",
        "scriptArguments":"[parameters('creationScript.cmdArguments')]"
        }
    }
}

scriptData in questo codice specifica la posizione dello script di creazione nella condivisione file di notebook, ad esempio Users/admin/testscript.sh. scriptArguments è facoltativo e specifica gli argomenti per lo script di creazione.

Sarebbe in alternativa possibile specificare lo script inline per un modello di Resource Manager. Il comando della shell può fare riferimento a qualsiasi dipendenza caricata nella condivisione file di 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, dove .<ciname> è il nome dell'istanza di ambiente di calcolo.


For example, specify a base64 encoded command string for `scriptData`:

```json
"setupScripts":{
    "scripts":{
        "creationScript":{
        "scriptSource":"inline",
        "scriptData":"[base64(parameters('inlineCommand'))]",
        "scriptArguments":"[parameters('creationScript.cmdArguments')]"
        }
    }
}

Log dello 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 determinata istanza di ambiente di calcolo vengono visualizzati nella pagina dei dettagli.