Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Personalización de una instancia de SageMaker bloc de notas mediante un LCC script
importante
IAMLas políticas personalizadas que permiten a Amazon SageMaker Studio o Amazon SageMaker Studio Classic crear SageMaker recursos de Amazon también deben conceder permisos para añadir etiquetas a esos recursos. El permiso para añadir etiquetas a los recursos es obligatorio porque Studio y Studio Classic etiquetan automáticamente los recursos que crean. Si una IAM política permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores AccessDenied «» al intentar crear recursos. Para obtener más información, consulte Proporciona permisos para etiquetar SageMaker los recursos.
AWS Políticas gestionadas para Amazon SageMakerque otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.
Una configuración de ciclo de vida (LCC) proporciona scripts de shell que solo se ejecutan al crear la instancia del bloc de notas o al iniciar una. Al crear una instancia de bloc de notas, puede crear una nueva LCC o adjuntar una LCC que ya tenga. Los scripts de configuración del ciclo de vida son útiles para los siguientes casos de uso:
-
Instalación de paquetes o cuadernos de muestra en una instancia de notebook
-
Configuración de la red y la seguridad de una instancia de notebook
-
Uso de un script de shell para personalizar una instancia de notebook
También puede usar un script de configuración del ciclo de vida para acceder a AWS los servicios desde su bloc de notas. Por ejemplo, puedes crear un script que te permita usar tu bloc de notas para controlar otros AWS recursos, como una EMR instancia de Amazon.
Mantenemos un repositorio público de scripts de configuración del ciclo de vida de los portátiles que abordan los casos de uso más comunes para personalizar las instancias de los portátiles en https://github.com/aws-samples/amazon-sagemaker-notebook-instance- lifecycle-config-samples
nota
Cada script tiene un límite de 16 384 caracteres.
El valor de la variable de entorno $PATH
que está disponible para ambos scripts es /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
. El directorio de trabajo, que es el valor de la variable de entorno $PWD
, es /
.
Vea CloudWatch los registros de las configuraciones del ciclo de vida de las instancias de portátiles en el grupo de registros del /aws/sagemaker/NotebookInstances
flujo [notebook-instance-name]/[LifecycleConfigHook]
de registros.
Los scripts no se pueden ejecutar durante más de 5 minutos. Si un script se ejecuta durante más de 5 minutos, se produce un error y no se crea o inicia la instancia de cuaderno. Para ayudar a reducir el tiempo de ejecución de los scripts, pruebe lo siguiente:
-
Reduzca el número de pasos necesarios. Por ejemplo, limitar los entornos de Conda donde se instalarán paquetes de gran tamaño.
-
Ejecute tareas en procesos paralelos.
-
Utilice el comando
nohup
en su script.
Para ver una lista de las configuraciones del ciclo de vida de las instancias de notebook que creó anteriormente, seleccione la configuración del ciclo de vida en la SageMaker consola. Puede adjuntar una instancia de bloc de notas LCC al crear una nueva instancia de bloc de notas. Para obtener más información acerca de la creación de una instancia de cuaderno, consulte Crear una instancia de Amazon SageMaker Notebook.
Prácticas recomendadas de configuración del ciclo de vida
A continuación se indican las prácticas recomendadas para utilizar configuraciones del ciclo de vida:
importante
No recomendamos almacenar información confidencial en el script de configuración del ciclo de vida.
-
Las configuraciones del ciclo de vida se ejecutan como usuario
root
. Si su script realiza cualquier cambio en el directorio/home/ec2-user/SageMaker
(por ejemplo, instalar un paquete conpip
), use el comandosudo -u ec2-user
que se va a ejecutar como usuarioec2-user
. Es el mismo usuario con el que SageMaker se ejecuta Amazon. -
SageMaker las instancias de notebook utilizan
conda
entornos para implementar diferentes kernels para las libretas Jupyter. Si desea instalar paquetes que están disponibles para uno o varios kernels de cuaderno, incluya los comandos para instalar los paquetes con comandos de entornoconda
que activen el entorno conda que contenga el kernel donde desee instalar los paquetes.Por ejemplo, si desea instalar un paquete solo para el entorno
python3
, use el siguiente 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 installmyPackage
# You can also perform "conda install" here as well. source deactivate EOFSi desea instalar un paquete en todos los entornos conda de la instancia con cuaderno, use el siguiente 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 --quietmyPackage
# You can also perform "conda install" here as well. source /home/ec2-user/anaconda3/bin/deactivate done EOF -
Debe almacenar todos los entornos conda en la carpeta de entornos predeterminados (/home/user/anaconda3/envs).
importante
Al crear o cambiar un script, recomendamos que utilice un editor de texto que proporcione saltos de línea de tipo Unix, como el editor de texto disponible en la consola al crear un cuaderno. Si copia texto desde un sistema operativo distinto de Linux, podría introducir saltos de línea incompatibles y dar lugar a un error inesperado.