

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á.

# Configurações de ciclo de vida com JupyterLab
<a name="jl-lcc"></a>

As configurações do ciclo de vida são scripts de shell que são acionados por eventos JupyterLab do ciclo de vida, como iniciar um novo notebook. JupyterLab Você pode usar configurações de ciclo de vida para automatizar a personalização do seu ambiente. JupyterLab Essa personalização inclui a instalação de pacotes personalizados, a configuração de extensões do caderno, o pré-carregamento de conjuntos de dados e a configuração de repositórios de código-fonte.

O uso de configurações de ciclo de vida oferece flexibilidade e controle de configuração para atender JupyterLab às suas necessidades específicas. Por exemplo, você pode criar um conjunto mínimo de imagens básicas de contêiner com os pacotes e bibliotecas mais usados. Em seguida, use a configuração de ciclo de vida para instalar pacotes adicionais para casos de uso específicos em suas equipes de ciência de dados e machine learning.

**nota**  
Cada script tem um limite de **16.384 caracteres**.

**Topics**
+ [Criação de configuração do ciclo de vida](jl-lcc-create.md)
+ [Configuração de depuração do ciclo de vida](jl-lcc-debug.md)
+ [Desassociar as configurações de ciclo de vida](jl-lcc-delete.md)

# Criação de configuração do ciclo de vida
<a name="jl-lcc-create"></a>

Este tópico inclui instruções para criar e associar uma configuração de ciclo de vida com. JupyterLab Você usa o AWS Command Line Interface (AWS CLI) ou o Console de gerenciamento da AWS para automatizar a personalização do seu JupyterLab ambiente.

As configurações do ciclo de vida são scripts de shell acionados por eventos JupyterLab do ciclo de vida, como iniciar um novo notebook. JupyterLab Para obter mais informações sobre a configuração de ciclo de vida, consulte [Configurações de ciclo de vida com JupyterLab](jl-lcc.md).

## Criar uma configuração de ciclo de vida (AWS CLI)
<a name="jl-lcc-create-cli"></a>

Saiba como criar uma configuração de ciclo de vida usando o AWS Command Line Interface (AWS CLI) para automatizar a personalização do seu ambiente Studio.

### Pré-requisitos
<a name="jl-lcc-create-cli-prerequisites"></a>

Antes de começar, conclua os seguintes pré-requisitos: 
+ Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ Em sua máquina local, execute `aws configure` e forneça suas credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Integre-se ao domínio Amazon SageMaker AI. Para obter informações conceituais, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). Para obter um guia de início rápido, consulte [Use a configuração rápida para Amazon SageMaker AI](onboard-quick-start.md).

### Etapa 1: criar uma configuração de ciclo de vida
<a name="jl-lcc-create-cli-step1"></a>

O procedimento a seguir mostra como criar um script de configuração do ciclo de vida que imprime `Hello World`.

**nota**  
Cada script pode ter até **16.384 caracteres**.

1. De sua máquina local, crie um arquivo denominado `my-script.sh` com o seguinte conteúdo:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Use o seguinte para converter seu arquivo `my-script.sh` no formato base64: Esse requisito evita erros que ocorram devido à codificação de espaçamento e quebra de linha.

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Crie uma configuração de ciclo de vida para uso com o Studio. O comando a seguir cria uma configuração de ciclo de vida que é executada quando você inicia uma aplicação associada `JupyterLab`.

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-jl-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type JupyterLab
   ```

   Anote o ARN da configuração de ciclo de vida recém-criada que é retornada. Esse ARN é necessário para anexar a configuração do ciclo de vida ao seu aplicativo.

### Etapa 2: anexar a configuração do ciclo de vida ao seu domínio (domínio) e perfil de usuário do Amazon SageMaker AI
<a name="jl-lcc-create-cli-step2"></a>

Para anexar a configuração do ciclo de vida, é necessário atualizar as `UserSettings` do seu domínio ou perfil de usuário. Os scripts de configuração do ciclo de vida associados no nível do domínio são herdados por todos os usuários. No entanto, os scripts associados no nível do perfil do usuário têm como escopo um usuário específico. 

Você pode criar um novo perfil de usuário, domínio ou espaço com uma configuração de ciclo de vida anexada usando os seguintes comandos:
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

O comando a seguir cria um perfil de usuário com uma configuração de ciclo de vida. Adicione o ARN da configuração do ciclo de vida da etapa anterior às `JupyterLabAppSettings` do usuário. É possível adicionar várias configurações de ciclo de vida ao mesmo tempo usando uma lista de configurações de ciclo de vida. Quando um usuário inicia um JupyterLab aplicativo com o AWS CLI, ele pode especificar uma configuração de ciclo de vida em vez de usar a configuração padrão. A configuração de ciclo de vida que o usuário passa deve pertencer à lista de configurações de ciclo de vida em `JupyterLabAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

## Criar uma configuração de ciclo de vida (console)
<a name="jl-lcc-create-console"></a>

Aprenda a criar uma configuração de ciclo de vida usando o Console de gerenciamento da AWS para automatizar a personalização do seu ambiente Studio.

### Etapa 1: criar uma configuração de ciclo de vida
<a name="jl-lcc-create-console-step1"></a>

O procedimento a seguir mostra como criar um script de configuração do ciclo de vida que imprime `Hello World`.

**Para criar uma configuração de ciclo de vida**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações administrativas**, escolha **Configurações de ciclo de vida**. 

1. Escolha a guia **JupyterLab**.

1. Escolha **Criar configuração**.

1. Para **Nome**, especifique o nome da configuração do ciclo de vida.

1. Para a caixa de texto em **Scripts**, especifique a seguinte configuração de ciclo de vida:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Escolha **Criar configuração**.

### Etapa 2: anexar a configuração do ciclo de vida ao seu domínio (domínio) e perfil de usuário do Amazon SageMaker AI
<a name="jl-lcc-create-console-step2"></a>

Os scripts de configuração do ciclo de vida associados no nível do domínio são herdados por todos os usuários. No entanto, os scripts associados no nível do perfil do usuário têm como escopo um usuário específico.

Você pode anexar várias configurações de ciclo de vida a um domínio ou perfil de usuário para. JupyterLab

Use o procedimento a seguir para anexar uma configuração de ciclo de vida a um domínio.

**Para anexar uma configuração de ciclo de vida a um domínio**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na lista de domínios, selecione o domínio ao qual anexar a configuração do ciclo de vida.

1. Em **Detalhes do domínio**, escolha a guia de **Ambiente**.

1. Em **Configurações de duração para aplicações pessoais do Studio**, escolha **Anexar**.

1. Em **Origem**, escolha **Configuração existente**.

1. Em **Configurações de ciclo de vida do Studio**, selecione a configuração de ciclo de vida que você criou na etapa anterior.

1. Selecione **Anexar a domínio**.

Use o seguinte procedimento para anexar uma configuração de ciclo de vida para um perfil de usuário:

**Para anexar a configuração do ciclo de vida a um perfil de usuário**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na lista de domínios, selecione o domínio que contém o perfil do usuário para anexar a configuração do ciclo de vida.

1. Em **Perfis de usuário**, selecione o perfil do usuário.

1. Na página **Detalhes do usuário**, escolha **Editar**.

1. No painel de navegação à esquerda, escolha **Configurações do Studio**.

1. Em **Configurações de ciclo de vida anexadas ao usuário**, escolha **Anexar**.

1. Em **Origem**, escolha **Configuração existente**.

1. Em **Configurações de ciclo de vida do Studio**, selecione a configuração de ciclo de vida que você criou na etapa anterior.

1. Escolha **Anexar ao perfil do usuário**.

# Configuração de depuração do ciclo de vida
<a name="jl-lcc-debug"></a>

Os tópicos a seguir mostram como obter informações e depurar as configurações de ciclo de vida.

**Topics**
+ [Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch](#jl-lcc-debug-logs)
+ [Tempo limite de configuração do ciclo de vida](#jl-lcc-debug-timeout)

## Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch
<a name="jl-lcc-debug-logs"></a>

Somente as configurações de ciclo de vida registram `STDOUT` e `STDERR`.

`STDOUT` é a saída padrão para scripts bash. Você pode escrever em `STDERR` anexando `>&2` ao final de um comando bash. Por exemplo, .`echo 'hello'>&2` 

Os registros de suas configurações de ciclo de vida são publicados para você usando Conta da AWS a Amazon. CloudWatch Esses registros podem ser encontrados no fluxo de `/aws/sagemaker/studio` registros no CloudWatch console.

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Selecione **Logs** no painel de navegação esquerdo. No menu suspenso, selecione **Grupo de logs**.

1. Na página **Grupos de logs**, pesquise por `aws/sagemaker/studio`. 

1. Selecione o grupo de logs .

1. Na página **Detalhes do grupo de logs**, escolha a guia **Fluxo de logs**.

1. Para encontrar os logs de um espaço específico, pesquise os fluxos de logs usando o seguinte formato:

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   Por exemplo, para encontrar os logs de configuração de ciclo de vida para o ID de domínio `d-m85lcu8vbqmz`, o nome de espaço `i-sonic-js` e o tipo de aplicação `JupyterLab`, use a seguinte string de pesquisa:

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

## Tempo limite de configuração do ciclo de vida
<a name="jl-lcc-debug-timeout"></a>

Há um limite de tempo limite de configuração do ciclo de vida de 5 minutos. Se um script de configuração do ciclo de vida demorar mais de 5 minutos para ser executado, será gerado um erro.

Para resolver esse erro, certifique-se de que seu script de configuração do ciclo de vida seja concluído em menos de 5 minutos. 

Para ajudar a diminuir o runtime de scripts, tente o seguinte:
+ Reduza as etapas desnecessárias. Por exemplo, limite os ambientes conda nos quais instalar pacotes grandes.
+ Execute tarefas em processos paralelos.
+ Use o comando nohup em seu script para garantir que os sinais de desligamento sejam ignorados para que o script seja executado sem interrupção.

# Desassociar as configurações de ciclo de vida
<a name="jl-lcc-delete"></a>

Para atualizar seu script, você deve criar um novo script de configuração do ciclo de vida e anexá-lo ao respectivo domínio (domínio), perfil de usuário ou espaço compartilhado da Amazon SageMaker AI. Não é possível alterar um script de configuração de ciclo de vida depois de criado. Para obter mais informações sobre criar e gerenciar a configuração de ciclo de vida, consulte [Criação de configuração do ciclo de vida](jl-lcc-create.md).

A seção a seguir mostra como desassociar uma configuração de ciclo de vida usando a AWS Command Line Interface (AWS CLI).

## Desconecte usando o AWS CLI
<a name="jl-lcc-delete-cli"></a>

Para desassociar uma configuração de ciclo de vida usando a (AWS CLI), remova a configuração de ciclo de vida desejada da lista de configurações de ciclo de vida anexada ao recurso. Em seguida, passe a lista como parte do respectivo comando:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

Por exemplo, o comando a seguir remove todas as configurações do ciclo de vida do JupyterLab aplicativo que está anexado ao domínio.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```