Personalizar a instância de computação com um script
Use um script de configuração para uma maneira 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 em seu espaço de trabalho.
Como administrador, pode escrever um script de personalização para ser utilizado para aprovisionar todas as instâncias de computação na área de trabalho de acordo com os seus requisitos. Você pode configurar seu script de instalação como:
- 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 pode fazer num script de configuração:
- Instalar pacotes, ferramentas e software
- Montar dados
- Criar um ambiente conda personalizado e kernels do Jupyter
- Clonar repositórios Git e definir a configuração do Git
- Definir proxies de rede
- Definir variáveis de ambiente
- Instalar extensões do JupyterLab
Criar o script de configuração
O script de instalação é um shell script, que é executado como rootuser
. Crie ou carregue o script em seus arquivos do Notebooks :
- Entre no estúdio e selecione seu espaço de trabalho.
- À esquerda, selecione Blocos de Notas.
- Use a ferramenta Adicionar arquivos para criar ou carregar seu shell script de instalação. Verifique se o nome do arquivo do script termina em ".sh". Ao criar um novo 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 onde ele foi carregado. Por exemplo, se você carregar o script para Users>admin, o local 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. Esse local permite que você use caminhos relativos no script.
Os argumentos de script podem ser referidos no script como $1, $2, etc.
Se o seu script estava fazendo algo específico para azureuser, como instalar o ambiente conda ou o kernel Jupyter, coloque-o dentro sudo -u azureuser
do bloco assim:
#!/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
. Também não é possível acessar os argumentos de script neste bloco.
Para outros scripts de exemplo, consulte azureml-examples.
Você também pode usar as seguintes variáveis de ambiente em 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 Política do Azure para impor ou padronizar um script de instalação para cada criação de instância de computação.
O valor padrão para um tempo limite de script de instalação é 15 minutos. O tempo pode ser alterado em estúdio, ou através de modelos ARM usando o DURATION
parâmetro.
DURATION
é um número de ponto flutuante com um sufixo opcional: 's'
por segundos (o padrão), 'm'
por minutos, 'h'
por horas ou 'd'
por dias.
Use o script em estúdio
Depois de armazenar o script, especifique-o durante a criação da instância de computação:
- Entre no estúdio e selecione seu espaço de trabalho.
- À esquerda, selecione Computar.
- Selecione +Novo para criar uma nova 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, script de criação (executado uma vez ao criar a instância de computação) ou script de inicialização (executado sempre que a instância de computação for iniciada).
- Navegue até o shell script que você salvou. Ou carregue um script do seu computador.
- Adicione argumentos de comando conforme necessário.
Gorjeta
Se o armazenamento do espaço de trabalho estiver conectado a uma rede virtual, talvez não seja possível acessar o arquivo de script de instalação, a menos que esteja acessando o estúdio de dentro da rede virtual.
Usar o script em um modelo do Gerenciador de Recursos
Em um modelo do Gerenciador de Recursos, 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 blocos de anotações, 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 Gerenciador de Recursos. O comando shell pode referir-se a quaisquer dependências carregadas no compartilhamento de arquivos de blocos de anotações. 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
, onde .<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
Registos da execução do script de configuração que aparecem na pasta de registos na página de detalhes da instância de computação. Os registos são novamente armazenados na partilha de ficheiros dos blocos de notas, na pasta Logs\<compute instance name>
. Os argumentos de arquivo de script e comando para uma instância de computação específica são mostrados na página de detalhes.