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:
- Script maken: wordt eenmaal uitgevoerd wanneer het rekenproces wordt gemaakt.
- Opstartscript: 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 :
- Meld u aan bij de studio en selecteer uw werkruimte.
- Selecteer aan de linkerkant Notebooks.
- 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).
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
source /anaconda/etc/profile.d/conda.sh
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 naarazureuser
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:
- Meld u aan bij Studio en selecteer uw werkruimte.
- Selecteer Aan de linkerkant Compute.
- Selecteer +Nieuw om een nieuw rekenproces te maken.
- Vul het formulier in.
- 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).
- Blader naar het shellscript dat u hebt opgeslagen. Of upload een script vanaf uw computer.
- Voeg indien nodig opdrachtargumenten toe.
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
in deze code geeft u de locatie op van het script voor het maken in de bestandsshare van notebooks, zoals Users/admin/testscript.sh
.
scriptArguments
is optioneel 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/Users
de werkmap voor het script , waar .<ciname>
is de naam van het rekenproces.
For example, specify a base64 encoded command string for `scriptData`:
```json
"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.