

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Personalizzazione di un'istanza del SageMaker notebook utilizzando uno script LCC
<a name="notebook-lifecycle-config"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon devono inoltre concedere le autorizzazioni per aggiungere tag a tali risorse. L’autorizzazione per aggiungere tag alle risorse è necessaria perché Studio e Studio Classic applicano automaticamente tag a tutte le risorse che creano. Se una policy IAM consente a Studio e Studio Classic di creare risorse ma non consente il tagging, possono verificarsi errori durante il tentativo di creare risorse. AccessDenied Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon AI SageMaker](security-iam-awsmanpol.md)che forniscono le autorizzazioni per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Una *configurazione del ciclo di vita* (LCC) fornisce gli script shell che vengono eseguiti solo quando crei o avvii l’istanza del notebook. Quando crei un’istanza del notebook, puoi creare una nuova LCC o collegare una LCC già disponibile. Gli script di configurazione del ciclo di vita sono utili per i seguenti casi d’uso:
+ Installazione di pacchetti o notebook di esempio su un’istanza del notebook
+ Configurazione della rete e della sicurezza per un’istanza del notebook
+ Utilizzo di uno script shell per personalizzare un’istanza del notebook

È inoltre possibile utilizzare uno script di configurazione del ciclo di vita per accedere ai AWS servizi dal notebook. Ad esempio, puoi creare uno script che ti consenta di utilizzare il notebook per controllare altre AWS risorse, come un'istanza Amazon EMR.

Gestiamo un archivio pubblico di script di configurazione del ciclo di vita dei notebook che risolvono i casi d'uso più comuni per la personalizzazione delle istanze dei notebook su. [ https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples ](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples)

**Nota**  
Ogni script ha un limite di 16.384 caratteri.  
Il valore della variabile di ambiente `$PATH` disponibile per entrambi gli script è `/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin`. La directory di lavoro, che è il valore della variabile di ambiente `$PWD`, è `/`.  
Visualizza CloudWatch i log per le configurazioni del ciclo di vita delle istanze del notebook nel gruppo di log in log stream. `/aws/sagemaker/NotebookInstances` `[notebook-instance-name]/[LifecycleConfigHook]`  
Gli script non possono essere eseguiti per più di 5 minuti. Se uno script viene eseguito per più di 5 minuti, ha esito negativo e l'istanza del notebook non viene creata né avviata. Per ridurre il tempo di esecuzione degli script, prova a:  
Eliminare le fasi non necessarie. Ad esempio, limita gli ambienti conda in cui installare pacchetti di grandi dimensioni.
Esegui le attività in processi paralleli.
Utilizzare il comando `nohup` nello script.

Puoi visualizzare un elenco delle configurazioni del ciclo di vita delle istanze del notebook create in precedenza scegliendo Configurazione del ciclo di ** vita nella console AI. ** SageMaker Puoi collegare una LCC di un’istanza del notebook quando crei una nuova istanza del notebook. Per ulteriori informazioni sulla creazione di un'istanza del notebook, consulta [Crea un'istanza di Amazon SageMaker Notebook](howitworks-create-ws.md).

## Best practice per la configurazione del ciclo di vita
<a name="nbi-lifecycle-config-bp"></a>

Di seguito sono indicate le best practice per l'utilizzo delle configurazioni del ciclo di vita:

**Importante**  
Non è consigliabile archiviare informazioni sensibili nello script di configurazione del ciclo di vita.

**Importante**  
Gli script di configurazione del ciclo di vita vengono eseguiti con l'accesso root e i privilegi del ruolo di esecuzione IAM dell'istanza del notebook, indipendentemente dall'impostazione di accesso root per gli utenti del notebook. Gli amministratori con le autorizzazioni per creare o modificare le configurazioni del ciclo di vita e aggiornare le istanze del notebook possono eseguire codice con le credenziali del ruolo di esecuzione. Per ulteriori informazioni, consulta [Controlla l'accesso root a un'istanza del notebook SageMaker](nbi-root-access.md).
+ Le configurazioni del ciclo di vita vengono eseguite dall'utente `root`. Se lo script apporta modifiche all'interno della directory `/home/ec2-user/SageMaker`, ad esempio installando un pacchetto con `pip`, utilizza il comando `sudo -u ec2-user` per l'esecuzione come utente `ec2-user`. Si tratta dello stesso utente con cui viene eseguito Amazon AI. SageMaker 
+ SageMaker Le istanze di notebook AI utilizzano `conda` ambienti per implementare kernel diversi per i notebook Jupyter. Per installare pacchetti disponibili per uno o più kernel del notebook, racchiudi i comandi per installare i pacchetti con i comandi di ambiente `conda` che attivano l'ambiente conda che contiene il kernel in cui desideri installare i pacchetti.

  Ad esempio, per installare un pacchetto solo per l'ambiente `python3`, utilizza il codice seguente:

  ```
  #!/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
  ```

  Per installare un pacchetto in tutti gli ambienti conda nell'istanza del notebook, utilizza il codice seguente:

  ```
  #!/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
  ```
+ È necessario archiviare tutti gli ambienti conda nella cartella degli ambienti di default (//). home/user anaconda3/envs

**Importante**  
Quando crei o modifichi uno script, ti consigliamo di utilizzare un editor di testo che fornisca interruzioni di Unix-style riga, come l'editor di testo disponibile nella console quando crei un taccuino. La copia di testo da un sistema operativo non Linux potrebbe includere interruzioni di riga incompatibili e causare un errore imprevisto.