Condividi tramite


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:

  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 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).

Create or upload your setup script to Notebooks file in studio

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 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 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:

  1. Accedere a Studio e selezionare l'area di lavoro.
  2. A sinistra selezionare Calcolo.
  3. Selezionare +Nuovo per creare una nuova istanza 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. Oppure caricare uno script dal computer.
  7. Aggiungere argomenti di comando in base alle esigenze.

Screenshot of provision a compute instance with a setup script in the 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 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.shad 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.