Anpassa beräkningsinstansen med ett skript

Använd ett installationsskript för ett automatiserat sätt att anpassa och konfigurera en beräkningsinstans vid etableringstillfället.

Använd en beräkningsinstans som din fullständigt konfigurerade och hanterade utvecklingsmiljö i molnet. För utveckling och testning kan du också använda instansen som ett träningsberäkningsmål eller för ett slutsatsdragningsmål. En beräkningsinstans kan köra flera jobb parallellt och har en jobbkö. Som utvecklingsmiljö kan en beräkningsinstans inte delas med andra användare på din arbetsyta.

Som administratör kan du skriva ett anpassningsskript som ska användas för att etablera alla beräkningsinstanser på arbetsytan enligt dina krav. Du kan konfigurera installationsskriptet som ett skapandeskript, som körs en gång när beräkningsinstansen skapas. Eller så kan du konfigurera det som ett startskript som körs varje gång beräkningsinstansen startas (inklusive inledande skapande).

Några exempel på vad du kan göra i ett installationsskript:

  • Installera paket, verktyg och programvara
  • Montera data
  • Skapa en anpassad Conda-miljö och Jupyter-kernels
  • Klona git-lagringsplatser och ange git-konfiguration
  • Ange nätverksproxies
  • Ange miljövariabler
  • Installera JupyterLab-tillägg

Skapa konfigurationsskriptet

Installationsskriptet är ett gränssnittsskript som körs som rootuser. Skapa eller ladda upp skriptet till notebook-filerna:

  1. Logga in i studion och välj din arbetsyta.
  2. Välj Notebooks till vänster.
  3. Använd verktyget Lägg till filer för att skapa eller ladda upp installationsgränssnittsskriptet. Kontrollera att skriptfilens namn slutar med ".sh". När du skapar en ny fil ändrar du även filtypen till bash(.sh).

Create or upload your setup script to Notebooks file in studio

När skriptet körs är den aktuella arbetskatalogen för skriptet den katalog där det laddades upp. Om du till exempel laddar upp skriptet till Administratör för användare> är platsen för skriptet på beräkningsinstansen och den aktuella arbetskatalogen när skriptet körs /home/azureuser/cloudfiles/code/Users/admin. Med den här platsen kan du använda relativa sökvägar i skriptet.

Skriptargument kan i skriptet kallas $1, $2 osv.

Om skriptet gjorde något specifikt för azureuser, till exempel att installera conda-miljön eller Jupyter-kerneln, placerar du det i sudo -u azureuser block så här:

#!/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

Kommandot sudo -u azureuser ändrar den aktuella arbetskatalogen till /home/azureuser. Du kan inte heller komma åt skriptargumenten i det här blocket.

Andra exempelskript finns i azureml-examples.

Du kan också använda följande miljövariabler i skriptet:

  • CI_RESOURCE_GROUP
  • CI_WORKSPACE
  • CI_NAME
  • CI_LOCAL_UBUNTU_USER - pekar på azureuser

Använd ett installationsskript tillsammans med Azure Policy för att antingen framtvinga eller standarda ett installationsskript för varje skapande av beräkningsinstanser. Standardvärdet för en timeout för installationsskript är 15 minuter. Tiden kan ändras i studio eller via ARM-mallar med hjälp av parametern DURATION . DURATION är ett flyttalsnummer med ett valfritt suffix: 's' för sekunder (standard), 'm' i minuter, 'h' i timmar eller 'd' i dagar.

Använda skriptet i studio

När du har lagrat skriptet anger du det när du skapar beräkningsinstansen:

  1. Logga in i studio och välj din arbetsyta.
  2. Välj Beräkning till vänster.
  3. Välj +Ny för att skapa en ny beräkningsinstans.
  4. Fyll i formuläret.
  5. På sidan Program i formuläret växlar du på vilken typ av skript du vill använda, skapar skript (körs en gång när du skapar beräkningsinstansen) eller startskriptet (körs varje gång beräkningsinstansen startas).
  6. Bläddra till det gränssnittsskript som du sparade. Eller ladda upp ett skript från datorn.
  7. Lägg till kommandoargument efter behov.

Screenshot of provision a compute instance with a setup script in the studio.

Dricks

Om arbetsytans lagring är ansluten till ett virtuellt nätverk kanske du inte kan komma åt installationsskriptfilen om du inte kommer åt studion från det virtuella nätverket.

Använda skriptet i en Resource Manager-mall

I en Resource Manager-mall lägger du till setupScripts för att anropa installationsskriptet när beräkningsinstansen etableras. Till exempel:

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

scriptData ovan anger platsen för skapandeskriptet i filresursen notebook-filer, till exempel Users/admin/testscript.sh. scriptArguments är valfritt ovan och anger argumenten för skapandeskriptet.

Du kan i stället ange skriptet infogat för en Resource Manager-mall. Kommandot shell kan referera till eventuella beroenden som laddats upp till filresursen notebook-filer. När du använder en infogad sträng är /mnt/batch/tasks/shared/LS_root/mounts/clusters/**\<ciname\>**/code/Usersarbetskatalogen för skriptet .

Ange till exempel en base64-kodad kommandosträng för scriptData:

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

Konfigurera skriptloggar

Loggar från körningen av installationsskript visas i mappen logs på informationssidan för beräkningsinstansen. Loggarna lagras tillbaka till filresursen för notebook-filer under mappen Logs\<compute instance name>. Skriptfil- och kommandoargument för en viss beräkningsinstans visas på informationssidan.