

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.

# Guía del administrador del editor de código
<a name="code-editor-admin"></a>

Puede utilizar el editor de código con una instancia bajo demanda para acelerar el tiempo de inicio y disponer de un almacenamiento configurable. Puede lanzar una aplicación de editor de código a través de Amazon SageMaker Studio o a través del AWS CLI. También puede editar la configuración predeterminada del editor de código en la consola de dominio. Para obtener más información, consulte [Edición de la configuración del dominio](domain-edit.md). En los siguientes temas se describe cómo los administradores pueden configurar el editor de código, basado en Code-OSS, Visual Studio Code: Open Source cambiando las opciones de almacenamiento, personalizando los entornos y administrando el acceso de los usuarios, además de proporcionar información sobre los requisitos previos necesarios para utilizar el editor de código.

**Topics**
+ [Cómo completar los requisitos previos de](code-editor-admin-prerequisites.md)
+ [Concesión de acceso a los usuarios a espacios privados](code-editor-admin-user-access.md)
+ [Cambio del tamaño de almacenamiento predeterminado](code-editor-admin-storage-size.md)
+ [Configuraciones del ciclo de vida del editor de código](code-editor-use-lifecycle-configurations.md)
+ [Imágenes personalizadas](code-editor-custom-images.md)

# Cómo completar los requisitos previos de
<a name="code-editor-admin-prerequisites"></a>

Para utilizar el editor de código, basado en Code-OSS, Visual Studio Code: Open Source, debe cumplir los siguientes requisitos previos.

1. Primero debes incorporarte al dominio Amazon SageMaker AI y crear un perfil de usuario. Para obtener más información, consulte [Descripción general del dominio Amazon SageMaker AI](gs-studio-onboard.md).

1. Si interactúa con su aplicación de edición de código mediante el AWS CLI, también debe cumplir los siguientes requisitos previos.

   1.  AWS CLI Actualícela siguiendo los pasos que se indican en [Instalación de la AWS CLI versión actual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled). 

   1.  En el equipo local, ejecute `aws configure` y proporcione sus credenciales de AWS . Para obtener información sobre AWS las credenciales, consulte [Descripción y obtención de AWS las credenciales](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 

1. (Opcional) Para obtener más almacenamiento y procesamiento para su aplicación, puede solicitar un aumento de sus AWS cuotas. Para obtener más información sobre cómo solicitar un aumento de cuota, consulta los [puntos de conexión y las cuotas de Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Concesión de acceso a los usuarios a espacios privados
<a name="code-editor-admin-user-access"></a>

**importante**  
Las políticas de IAM 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 necesario porque Studio y Studio Classic etiquetan automáticamente todos los recursos que crean. Si una política de IAM permite a Studio y Studio Classic crear recursos, pero no permite el etiquetado, se pueden producir errores de tipo AccessDenied «» al intentar crear recursos. Para obtener más información, consulte [Proporcione permisos para etiquetar los recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gestionadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que otorgan permisos para crear SageMaker recursos ya incluyen permisos para añadir etiquetas al crear esos recursos.

En esta sección se proporciona una política que concede a los usuarios acceso a los espacios privados. También puede usar la política para restringir los espacios privados y las aplicaciones asociadas a ellos al propietario asociado al perfil de usuario. 

Para proporcionar permisos a los usuarios, haga lo siguiente:
+ Espacios privados
+ El perfil de usuario necesario para acceder a los espacios privados

Para proporcionar permisos, asocie la siguiente política a los roles de IAM de sus usuarios.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {

      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
    },
    {
      "Sid": "SMStudioAppPermissionsListAndDescribe",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListApps",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles",
        "sagemaker:ListSpaces",
        "sagemaker:DescribeApp",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SMStudioAppPermissionsTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:*/*",
      "Condition": {
        "Null": {
          "sagemaker:TaggingAction": "false"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private",
            "Shared"
          ]
        }
      }
    },
    {
      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/domain-id/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private"
          ]
        }
      }
    }
  ]
}
```

------

# Cambio del tamaño de almacenamiento predeterminado
<a name="code-editor-admin-storage-size"></a>

Puede cambiar la configuración de almacenamiento predeterminada de sus usuarios. También puede cambiar la configuración de almacenamiento predeterminada en función de los requisitos de la organización y las necesidades de los usuarios.

Para cambiar el tamaño de almacenamiento de los usuarios, realice lo siguiente:

1. Actualice la configuración de almacenamiento de Amazon EBS en el dominio. 

1. Cree un perfil de usuario y especifique la configuración de almacenamiento que contiene.

Usa el siguiente comando AWS Command Line Interface (AWS CLI) para actualizar el dominio.

```
aws --region $REGION sagemaker update-domain \
--domain-id $DOMAIN_ID \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilice el siguiente AWS CLI comando para crear el perfil de usuario y especificar la configuración de almacenamiento predeterminada.

```
aws --region $REGION sagemaker create-user-profile \
--domain-id $DOMAIN_ID \
--user-profile-name $USER_PROFILE_NAME \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilice los siguientes AWS CLI comandos para actualizar la configuración de almacenamiento predeterminada en el perfil de usuario.

```
aws --region $REGION sagemaker update-user-profile \
--domain-id $DOMAIN_ID \
--user-profile-name $USER_PROFILE_NAME \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":25,
            "MaximumEbsVolumeSizeInGb":200
        }
    }
}'
```

# Configuraciones del ciclo de vida del editor de código
<a name="code-editor-use-lifecycle-configurations"></a>

Puede utilizar las configuraciones del ciclo de vida del editor de código para automatizar la personalización del entorno de Studio. Esta personalización incluye la instalación de paquetes personalizados, la configuración de extensiones, la precarga de conjuntos de datos y la configuración de repositorios de código fuente.

En las siguientes instrucciones, se utiliza AWS Command Line Interface (AWS CLI) para crear, adjuntar, depurar y separar las configuraciones del ciclo de vida del tipo de `CodeEditor` aplicación:
+ [Creación y asociación de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-create.md)
+ [Depuración de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-debug.md)
+ [Desasociación de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-detach.md)

# Creación y asociación de configuraciones de ciclo de vida en Studio
<a name="code-editor-use-lifecycle-configurations-studio-create"></a>

La siguiente sección proporciona AWS CLI comandos para crear una configuración de ciclo de vida, adjuntar una configuración de ciclo de vida al crear un nuevo perfil de usuario y adjuntar una configuración de ciclo de vida al actualizar un perfil de usuario. Para ver los requisitos previos y los pasos generales para crear y asociar configuraciones del ciclo de vida en Studio, consulte [Creación de una configuración de ciclo de vida](jl-lcc-create.md). 

Al crear la configuración del ciclo de vida de Studio con el comando de `create-studio-lifecycle-config`, asegúrese de especificar que el `studio-lifecycle-config-app-type` es `CodeEditor`. En el siguiente ejemplo se muestra cómo crear una nueva configuración de ciclo de vida de Studio para la aplicación del editor de código.

```
aws sagemaker create-studio-lifecycle-config \
--studio-lifecycle-config-name my-code-editor-lcc \
--studio-lifecycle-config-content $LCC_CONTENT \
--studio-lifecycle-config-app-type CodeEditor
```

Tenga en cuenta el ARN de la configuración del ciclo de vida recién creada que se devuelve. Al asociar una configuración de ciclo de vida, proporcione este ARN en la lista `LifecycleConfigArns` de `CodeEditorAppSettings`. 

Puede asociar una configuración de ciclo de vida al crear un perfil de usuario o un dominio. En el siguiente ejemplo se muestra cómo crear un perfil de usuario con la configuración del ciclo de vida asociada. También puede crear un nuevo dominio con una configuración del ciclo de vida asociada mediante el comando [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/opensearch/create-domain.html).

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

Como alternativa, puede asociar una configuración de ciclo de vida al actualizar un perfil de usuario o un dominio. En el siguiente ejemplo se muestra cómo actualizar un perfil de usuario con la configuración del ciclo de vida asociada. También puede actualizar un nuevo dominio con una configuración de ciclo de vida asociada mediante el comando [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html).

```
# Update a UserProfile
aws sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

# Depuración de configuraciones de ciclo de vida en Studio
<a name="code-editor-use-lifecycle-configurations-studio-debug"></a>

Para depurar scripts de configuración del ciclo de vida del editor de código, debe usar Studio. Para obtener instrucciones sobre la depuración de configuraciones de ciclo de vida en Studio, consulte[Depuración de configuraciones del ciclo de vida](jl-lcc-debug.md). Para buscar los registros de una aplicación específica, busque en los flujos de registro utilizando el siguiente formato:

```
domain-id/space-name/CodeEditor/default/LifecycleConfigOnStart
```

# Desasociación de configuraciones de ciclo de vida en Studio
<a name="code-editor-use-lifecycle-configurations-studio-detach"></a>

Para desasociar configuraciones de ciclo de vida del editor de código, puede utilizar la consola o la AWS CLI. Para conocer los pasos para desasociar configuraciones de ciclo de vida de la consola de Studio, consulte [Desasociación de configuraciones de ciclo de vida](jl-lcc-delete.md).

Para separar una configuración de ciclo de vida mediante el AWS CLI, elimine la configuración de ciclo de vida deseada de la lista de configuraciones de ciclo de vida adjunta al recurso. A continuación, pase la lista como parte del comando correspondiente:
+ [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)

Por ejemplo, el siguiente comando elimina todas las configuraciones de ciclo de vida de la aplicación de editor de código asociadas al dominio.

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

# Creación de una configuración de ciclo de vida para clonar repositorios en una aplicación de editor de código
<a name="code-editor-use-lifecycle-configurations-repositories"></a>

En esta sección se muestra cómo clonar un repositorio y crear una aplicación de editor de código con la configuración de ciclo de vida asociada.

1. En su equipo local, cree un archivo con el nombre `my-script.sh` que contenga lo siguiente:

   ```
   #!/bin/bash
   set -eux
   ```

1. Clone el repositorio que elija en el script de configuración de ciclo de vida. 

   ```
   export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git"
   git -C /home/sagemaker-user clone $REPOSITORY_URL
   ```

1. Tras finalizar el script, cree y asocie la configuración de ciclo de vida. Para obtener más información, consulte [Creación y asociación de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Cree su aplicación de editor de código con la configuración de ciclo de vida asociada.

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:image-account-id:image/sagemaker-distribution-cpu,LifecycleConfigArn=arn:aws:sagemaker:region:user-account-id:studio-lifecycle-config/my-code-editor-lcc,InstanceType=ml.t3.large"
   ```

   Para obtener más información sobre la imagen del editor de código disponible ARNs, consulte[Instancias e imágenes de la aplicación del editor de código](code-editor-use-instances.md).

# Creación de una configuración de ciclo de vida para instalar extensiones del editor de código
<a name="code-editor-use-lifecycle-configurations-extensions"></a>

En esta sección se muestra cómo crear una configuración de ciclo de vida para instalar extensiones del [Open VSX Registry](https://open-vsx.org/) en su entorno de editor de código.

1. En su equipo local, cree un archivo con el nombre `my-script.sh` que contenga lo siguiente:

   ```
   #!/bin/bash
   set -eux
   ```

1. En el script, instale la extensión [Open VSX Registry](https://open-vsx.org/) que prefiera:

   ```
   sagemaker-code-editor --install-extension AmazonEMR.emr-tools --extensions-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions
   ```

   Puede recuperar el nombre de la extensión desde la URL de la extensión en el [Open VSX Registry](https://open-vsx.org/). El nombre de la extensión que se utilizará en el comando `sagemaker-code-editor` debe contener todo el texto que sigue a `https://open-vsx.org/extension/` la URL. Sustituya todas las instancias de una barra (`/`) por un punto (`.`). Por ejemplo, `AmazonEMR/emr-tools` debería ser `AmazonEMR.emr-tools`.  
![\[La página de la extensión Amazon EMR en Open VSX Registry.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/code-editor/code-editor-emr-extension.png)

1. Tras finalizar el script, cree y asocie la configuración de ciclo de vida. Para obtener más información, consulte [Creación y asociación de configuraciones de ciclo de vida en Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Cree su aplicación de editor de código con la configuración de ciclo de vida asociada:

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:image-account-id:image/sagemaker-distribution-cpu,LifecycleConfigArn=arn:aws:sagemaker:region:user-account-id:studio-lifecycle-config/my-code-editor-lcc,InstanceType=ml.t3.large"
   ```

   Para obtener más información sobre la imagen del editor de código disponible ARNs, consulte[Instancias e imágenes de la aplicación del editor de código](code-editor-use-instances.md). Para obtener más información sobre las conexiones y las extensiones, consulte [Conexiones y extensiones del editor de código](code-editor-use-connections-and-extensions.md).

# Imágenes personalizadas
<a name="code-editor-custom-images"></a>

Si necesita una funcionalidad diferente a la que proporciona la SageMaker distribución, puede incorporar su propia imagen con sus extensiones y paquetes personalizados. También puede utilizarla para personalizar la interfaz de usuario del editor de código para adaptarla a sus propias necesidades de marca o de conformidad.

La siguiente página proporcionará información y plantillas específicas del editor de código para crear tus propias imágenes de IA personalizadas SageMaker . El objetivo es complementar la información y las instrucciones de Amazon SageMaker Studio sobre cómo crear tu propia imagen de SageMaker IA y llevar tu propia imagen a Studio. Para obtener más información sobre las imágenes personalizadas de Amazon SageMaker AI y cómo llevar tu propia imagen a Studio, consulta[Bring your own image (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Comprobación de estado y URL de las aplicaciones](#code-editor-custom-images-app-healthcheck)
+ [Ejemplos de Dockerfile](#code-editor-custom-images-dockerfile-templates)

## Comprobación de estado y URL de las aplicaciones
<a name="code-editor-custom-images-app-healthcheck"></a>
+ `Base URL`: la URL base de la aplicación BYOI debe ser `CodeEditor/default`. Solo puede tener una aplicación y siempre debe denominarse `default`.
+ Health Check Endpoint: debe alojar el servidor del editor de código en el puerto 0.0.0.0 8888 para que la SageMaker IA lo detecte.
+  Autenticación: debes pasarlo `--without-connection-token` al abrirlo `sagemaker-code-editor` para que SageMaker AI pueda autenticar a tus usuarios.

**nota**  
Si utilizas Amazon SageMaker Distribution como imagen base, estos requisitos ya están incluidos en el `entrypoint-code-editor` guion incluido.

## Ejemplos de Dockerfile
<a name="code-editor-custom-images-dockerfile-templates"></a>

Los siguientes ejemplos son `Dockerfile` que cumplen con la información y [Especificaciones de imágenes personalizadas](studio-updated-byoi-specs.md) anteriores.

**nota**  
Si va a traer su propia imagen a SageMaker Unified Studio, tendrá que seguir las [especificaciones de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) de la Guía del *usuario de Amazon SageMaker Unified Studio*.  
`Dockerfile`Puedes encontrar ejemplos de SageMaker Unified Studio en el [ejemplo de Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) de la Guía del *usuario de Amazon SageMaker Unified Studio*.

------
#### [ Example micromamba Dockerfile ]

El siguiente es un ejemplo de Dockerfile para crear una imagen desde cero utilizando un entorno base: [https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html). 

```
FROM mambaorg/micromamba:latest
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

USER root

RUN micromamba install -y --name base -c conda-forge sagemaker-code-editor

USER $NB_UID

CMD eval "$(micromamba shell hook --shell=bash)"; \
    micromamba activate base; \
    sagemaker-code-editor --host 0.0.0.0 --port 8888 \
        --without-connection-token \
        --base-path "/CodeEditor/default"
```

------
#### [ Example SageMaker AI Distribution Dockerfile ]

El siguiente es un ejemplo de Dockerfile para crear una imagen basada en [Amazon SageMaker AI](https://github.com/aws/sagemaker-distribution/tree/main) Distribution:

```
FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100
ENV MAMBA_USER=$NB_USER

USER root

 # install scrapy in the base environment
RUN micromamba install -y --name base -c conda-forge scrapy

 # download VSCodeVim
RUN \
  wget https://github.com/VSCodeVim/Vim/releases/download/v1.27.2/vim-1.27.2.vsix \
  -P /tmp/exts/ --no-check-certificate

 # Install the extension
RUN \
  extensionloc=/opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions \
  && sagemaker-code-editor \
    --install-extension "/tmp/exts/vim-1.27.2.vsix" \
    --extensions-dir "${extensionloc}"

USER $MAMBA_USER
ENTRYPOINT ["entrypoint-code-editor"]
```

------