Personalizar a instância de computação com um script
Use um script de instalação para obter uma forma automatizada de personalizar e configurar uma instância de computação no momento do provisionamento.
Use uma instância de computação como seu ambiente de desenvolvimento totalmente configurado e gerenciado na nuvem. Para desenvolvimento e teste, você também pode usar a instância como um destino de computação de treinamento ou para um destino de inferência. Uma instância de computação pode executar vários trabalhos em paralelo e tem uma fila de trabalhos. Como um ambiente de desenvolvimento, uma instância de computação não pode ser compartilhada com outros usuários no seu espaço de trabalho.
Como administrador, você pode escrever um script de personalização a ser usado para provisionar todas as instâncias de computação no workspace de acordo com os seus requisitos. Você pode configurar o script de configuração como um:
- Script de criação – é executado uma vez quando a instância de computação é criada.
- Script de inicialização – é executado sempre que a instância de computação é iniciada (incluindo a criação inicial).
Alguns exemplos do que você pode fazer em um script de instalação:
- Instalar pacotes, ferramentas e software
- Montar dados
- Criar um ambiente do Conda personalizado e kernels do Jupyter
- Clonar repositórios git e definir o git config
- Definir proxies de rede
- Definir variáveis de ambiente
- Instalar extensões do JupyterLab
Criar o script de instalação
O script de instalação é um script de shell, que é executado como rootuser
. Crie ou carregue o script nos seus arquivos de Notebooks:
- Entre no estúdio e selecione o seu workspace.
- À esquerda, selecione Notebooks.
- Use a ferramenta Adicionar arquivos para criar ou carregar o script do shell de instalação. Verifique se o nome de arquivo do script termina em ".sh". Ao criar um arquivo, altere também o Tipo de arquivo para bash(.sh) .
Quando o script é executado, o diretório de trabalho atual do script é o diretório em que ele foi carregado. Por exemplo, se você carregar o script em Usuários > administrador, a localização do script na instância de computação e no diretório de trabalho atual quando o script for executado será /home/azureuser/cloudfiles/code/Users/admin. Essa localização permite que você use caminhos relativos no script.
Os argumentos de script podem ser referenciados no script como $1, $2 etc.
Se o script executava algo específico para o azureuser, como instalar o ambiente do Conda ou o kernel do Jupyter, coloque-o em bloco sudo -u azureuser
como a seguir:
#!/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
O comando sudo -u azureuser
altera o diretório de trabalho atual para /home/azureuser
. Além disso, você não pode acessar os argumentos de script nesse bloco.
Para outros scripts de exemplo, confira azureml-examples.
Você também pode usar as seguintes variáveis de ambiente no seu script:
CI_RESOURCE_GROUP
CI_WORKSPACE
CI_NAME
CI_LOCAL_UBUNTU_USER
- aponta paraazureuser
Use um script de instalação em conjunto com a Azure Policy para aplicar ou definir como padrão um script de instalação para cada criação de instância de computação.
O valor padrão para um tempo limite do script de instalação é de 15 minutos. O tempo pode ser alterado no estúdio ou por meio de modelos do ARM usando o parâmetro DURATION
.
DURATION
é um número de ponto flutuante com um sufixo opcional: 's'
para segundos (o padrão), 'm'
para minutos, 'h'
para horas ou 'd'
para dias.
Usar o script no estúdio
Depois de armazenar o script, especifique-o durante a criação da sua instância de computação:
- Entre no estúdio e selecione o seu workspace.
- Selecione Computação à esquerda.
- Selecione +Novo para criar uma instância de computação.
- Preencha o formulário.
- Na página Aplicativos do formulário, alterne o tipo de script que você deseja usar, o script de criação (executado uma vez ao criar a instância de computação) ou o script de inicialização (executado sempre que a instância de computação é iniciada).
- Navegue até o script de shell que você salvou. Ou carregue um script do seu computador.
- Adicione argumentos de comando conforme necessário.
Dica
Se o armazenamento do workspace estiver anexado a uma rede virtual, talvez você não consiga acessar o arquivo de script de instalação, a menos que você esteja acessando o estúdio de dentro da rede virtual.
Use o script no modelo do Resource Manager
Em um modelo do Resource Manager, adicione setupScripts
para invocar o script de instalação quando a instância de computação for provisionada. Por exemplo:
"setupScripts":{
"scripts":{
"creationScript":{
"scriptSource":"workspaceStorage",
"scriptData":"[parameters('creationScript.location')]",
"scriptArguments":"[parameters('creationScript.cmdArguments')]"
}
}
}
scriptData
neste código especifica o local do script de criação no compartilhamento de arquivos de notebooks, como Users/admin/testscript.sh
.
scriptArguments
é opcional e especifica os argumentos para o script de criação.
Em vez disso, você pode fornecer o script embutido para um modelo do Resource Manager. O comando do shell pode se referir a todas as dependências carregadas no compartilhamento de arquivo dos notebooks. Quando você usa uma cadeia de caracteres embutida, o diretório de trabalho para o script é /mnt/batch/tasks/shared/LS_root/mounts/clusters/<ciname>/code/Users
, em que .<ciname>
é o nome da instância de computação.
For example, specify a base64 encoded command string for `scriptData`:
```json
"setupScripts":{
"scripts":{
"creationScript":{
"scriptSource":"inline",
"scriptData":"[base64(parameters('inlineCommand'))]",
"scriptArguments":"[parameters('creationScript.cmdArguments')]"
}
}
}
Logs de script de instalação
Os logs da execução do script de instalação aparecem na pasta de logs na página de detalhes da instância de computação. Os logs são armazenados novamente no compartilhamento de arquivo dos notebooks na pasta Logs\<compute instance name>
. Os argumentos de comando e o arquivo de script de uma instância de computação específica são mostrados na página de detalhes.