Het rekenproces aanpassen met een script

Gebruik een installatiescript voor een geautomatiseerde manier om een rekenproces aan te passen en te configureren tijdens het inrichten.

Gebruik een rekenproces als uw volledig geconfigureerde en beheerde ontwikkelomgeving in de cloud. Voor ontwikkeling en testen kunt u het exemplaar ook gebruiken als trainingsrekendoel of voor een deductiedoel. Een rekenproces kan meerdere taken parallel uitvoeren en heeft een taakwachtrij. Als ontwikkelomgeving kan een rekenproces niet worden gedeeld met andere gebruikers in uw werkruimte.

Als beheerder kunt u een aanpassingsscript schrijven dat moet worden gebruikt voor het inrichten van alle rekenprocessen in de werkruimte op basis van uw vereisten. U kunt uw installatiescript configureren als een creatiescript, dat eenmaal wordt uitgevoerd wanneer het rekenproces wordt gemaakt. U kunt het ook configureren als een opstartscript, dat wordt uitgevoerd telkens wanneer het rekenproces wordt gestart (inclusief het eerste maken).

Enkele voorbeelden van wat u kunt doen in een installatiescript:

  • Pakketten, hulpprogramma's en software installeren
  • Gegevens koppelen
  • Aangepaste Conda-omgeving en Jupyter-kernels maken
  • Git-opslagplaatsen klonen en git-configuratie instellen
  • Netwerkproxy's instellen
  • Omgevingsvariabelen instellen
  • JupyterLab-extensies installeren

Het installatiescript maken

Het installatiescript is een shellscript, dat wordt uitgevoerd als rootuser. Maak of upload het script naar uw Notebooks-bestanden :

  1. Meld u aan bij de studio en selecteer uw werkruimte.
  2. Selecteer aan de linkerkant Notebooks.
  3. Gebruik het hulpprogramma Bestanden toevoegen om uw installatieshellscript te maken of te uploaden. Zorg ervoor dat de bestandsnaam van het script eindigt op '.sh'. Wanneer u een nieuw bestand maakt, wijzigt u ook het bestandstype in bash(.sh).

Create or upload your setup script to Notebooks file in studio

Wanneer het script wordt uitgevoerd, is de huidige werkmap van het script de map waarin het is geüpload. Als u bijvoorbeeld het script uploadt naar de beheerder van gebruikers>, is de locatie van het script op het rekenproces en de huidige werkmap wanneer het script wordt uitgevoerd /home/azureuser/cloudfiles/code/Users/admin. Op deze locatie kunt u relatieve paden in het script gebruiken.

Scriptargumenten kunnen in het script worden aangeduid als $1, $2, enzovoort.

Als uw script iets specifieks voor azureuser deed, zoals het installeren van een Conda-omgeving of Jupyter-kernel, plaatst u het in sudo -u azureuser een blok als volgt:

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

Met de opdracht sudo -u azureuser wordt de huidige werkmap gewijzigd in /home/azureuser. U hebt ook geen toegang tot de scriptargumenten in dit blok.

Zie azureml-examples voor andere voorbeeldscripts.

U kunt ook de volgende omgevingsvariabelen in uw script gebruiken:

  • CI_RESOURCE_GROUP
  • CI_WORKSPACE
  • CI_NAME
  • CI_LOCAL_UBUNTU_USER - verwijst naar azureuser

Gebruik een installatiescript in combinatie met Azure Policy om een installatiescript af te dwingen of standaard te gebruiken voor het maken van elk rekenproces. De standaardwaarde voor een time-out van een installatiescript is 15 minuten. De tijd kan worden gewijzigd in studio of via ARM-sjablonen met behulp van de DURATION parameter. DURATION is een drijvendekommagetal met een optioneel achtervoegsel: 's' voor seconden (de standaardinstelling), 'm' voor minuten, 'h' uren of 'd' dagen.

Het script gebruiken in studio

Nadat u het script hebt opgeslagen, geeft u het op tijdens het maken van uw rekenproces:

  1. Meld u aan bij Studio en selecteer uw werkruimte.
  2. Selecteer Aan de linkerkant Compute.
  3. Selecteer +Nieuw om een nieuw rekenproces te maken.
  4. Vul het formulier in.
  5. Schakel op de pagina Toepassingen van het formulier het type script in dat u wilt gebruiken, maak een script (wordt eenmaal uitgevoerd bij het maken van het rekenproces) of het opstartscript (wordt uitgevoerd telkens wanneer het rekenproces wordt gestart).
  6. Blader naar het shellscript dat u hebt opgeslagen. Of upload een script vanaf uw computer.
  7. Voeg indien nodig opdrachtargumenten toe.

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

Tip

Als werkruimteopslag is gekoppeld aan een virtueel netwerk, hebt u mogelijk geen toegang tot het installatiescriptbestand, tenzij u de studio vanuit het virtuele netwerk opent.

Het script gebruiken in een Resource Manager-sjabloon

Voeg in een Resource Manager-sjabloon setupScripts toe om het installatiescript aan te roepen wanneer het rekenproces is ingericht. Voorbeeld:

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

scriptData hierboven geeft u de locatie op van het script voor het maken in de bestandsshare van notebooks, zoals Users/admin/testscript.sh. scriptArguments is optioneel hierboven en geeft de argumenten voor het maken van het script op.

U kunt in plaats daarvan het script inline opgeven voor een Resource Manager-sjabloon. De shell-opdracht kan verwijzen naar eventuele afhankelijkheden die zijn geüpload naar de bestandsshare van notebooks. Wanneer u een inlinetekenreeks gebruikt, is /mnt/batch/tasks/shared/LS_root/mounts/clusters/**\<ciname\>**/code/Usersde werkmap voor het script.

Geef bijvoorbeeld een met Base64 gecodeerde opdrachtreeks op voor scriptData:

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

Scriptlogboeken instellen

Logboeken van de uitvoering van het installatiescript die worden weergegeven in de map met logboeken op de pagina met details van het rekenproces. Logboeken worden weer opgeslagen in de bestandsshare met notebooks onder de map Logs\<compute instance name>. Scriptbestand- en opdrachtargumenten voor een bepaald rekenproces worden weergegeven op de detailpagina.