Personalização de uma instância de SageMaker notebook usando um script LCC - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Personalização de uma instância de SageMaker notebook usando um script LCC

Importante

IAMPolíticas personalizadas que permitem que o Amazon SageMaker Studio ou o Amazon SageMaker Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma IAM política permitir que o Studio e o Studio Classic criem recursos, mas não permita a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte Forneça permissões para marcar recursos SageMaker.

AWS Políticas gerenciadas para a Amazon SageMakerque dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Uma configuração de ciclo de vida (LCC) fornece scripts de shell que são executados somente quando você cria a instância do notebook ou sempre que você inicia uma. Ao criar uma instância de notebook, você pode criar uma nova LCC ou anexar uma LCC que você já tem. Os scripts de configuração do ciclo de vida são úteis para os seguintes casos de uso:

  • Instalando pacotes ou notebooks de amostra em uma instância de notebook

  • Configurando rede e segurança para uma instância de notebook

  • Usando um script de shell para personalizar uma instância de notebook

Você também pode usar um script de configuração do ciclo de vida para acessar os AWS serviços do seu notebook. Por exemplo, você pode criar um script que permite usar seu notebook para controlar outros AWS recursos, como uma EMR instância da Amazon.

Mantemos um repositório público de scripts de configuração do ciclo de vida do notebook que abordam casos de uso comuns para personalizar instâncias do notebook em -. https://github.com/aws-samples/ amazon-sagemaker-notebook-instance lifecycle-config-samples

nota

Cada script tem um limite de 16.384 caracteres.

O valor da variável de ambiente $PATH que está disponível para ambos os scripts é /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin. O diretório de trabalho, que é o valor da variável de ambiente $PWD é /.

Visualize CloudWatch os registros das configurações do ciclo de vida da instância do notebook no grupo /aws/sagemaker/NotebookInstances de registros no fluxo de registros. [notebook-instance-name]/[LifecycleConfigHook]

Scripts não podem ser executados por mais de 5 minutos. Se um script for executado por mais de 5 minutos, haverá falha e a instância de caderno não será criada nem iniciada. Para ajudar a diminuir o tempo de execução de scripts, tente o seguinte:

  • Reduza as etapas necessárias. Por exemplo, limite os ambientes conda nos quais instalar pacotes grandes.

  • Execute tarefas em processos paralelos.

  • Use o comando nohup no seu script.

Você pode ver uma lista das configurações do ciclo de vida da instância do notebook que você criou anteriormente escolhendo a configuração do ciclo de vida no console. SageMaker Você pode anexar uma instância do notebook LCC ao criar uma nova instância do notebook. Para ter mais informações sobre como criar uma instância de caderno, consulte Crie uma instância de SageMaker notebook da Amazon.

Práticas recomendadas para configuração do ciclo de vida

Veja a seguir as melhores práticas para usar configurações de ciclo de vida:

Importante

Não recomendamos armazenar informações confidenciais em seu script de configuração do ciclo de vida.

  • As configurações de ciclo de vida são executadas como o usuário root. Se o seu script fizer alguma alteração no diretório /home/ec2-user/SageMaker (por exemplo, instalar um pacote com pip), use o comando sudo -u ec2-user para executar como o usuário ec2-user. Esse é o mesmo usuário com o qual a Amazon SageMaker opera.

  • SageMaker instâncias de notebook usam conda ambientes para implementar diferentes kernels para notebooks Jupyter. Se quiser instalar pacotes disponíveis para um ou mais kernels de caderno, coloque os comandos para instalar os pacotes com comandos de ambiente conda que ativam o ambiente conda que contém o kernel no qual você deseja instalar os pacotes.

    Por exemplo, para instalar um pacote somente para o ambiente do python3, use o seguinte código:

    #!/bin/bash sudo -u ec2-user -i <<EOF # This will affect only the Jupyter kernel called "conda_python3". source activate python3 # Replace myPackage with the name of the package you want to install. pip install myPackage # You can also perform "conda install" here as well. source deactivate EOF

    Se você deseja instalar um pacote em todos os ambientes conda na instâncias de caderno, use o seguinte código:

    #!/bin/bash sudo -u ec2-user -i <<EOF # Note that "base" is special environment name, include it there as well. for env in base /home/ec2-user/anaconda3/envs/*; do source /home/ec2-user/anaconda3/bin/activate $(basename "$env") # Installing packages in the Jupyter system environment can affect stability of your SageMaker # Notebook Instance. You can remove this check if you'd like to install Jupyter extensions, etc. if [ $env = 'JupyterSystemEnv' ]; then continue fi # Replace myPackage with the name of the package you want to install. pip install --upgrade --quiet myPackage # You can also perform "conda install" here as well. source /home/ec2-user/anaconda3/bin/deactivate done EOF
  • Armazene todos os ambientes conda na pasta de ambientes padrão (/home/user/anaconda3/envs).

Importante

Ao criar ou alterar um script, recomendamos usar um editor de texto que forneça quebras de linha de estilo UNIX, como o editor de texto disponível no console quando um caderno é criado. Copiar texto de um sistema operacional que não seja Linux pode incluir quebras de linha incompatíveis e resultar em um erro inesperado.