

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Guide de l’administrateur de l’éditeur de code
<a name="code-editor-admin"></a>

Vous pouvez utiliser l’éditeur de code avec une instance à la demande pour accélérer le démarrage et configurer le stockage. Vous pouvez lancer une application d'éditeur de code via Amazon SageMaker Studio ou via le AWS CLI. Vous pouvez également modifier les paramètres par défaut de l’éditeur de code dans la console de domaine. Pour de plus amples informations, veuillez consulter [Modification des paramètres du domaine](domain-edit.md). Les rubriques suivantes décrivent comment les administrateurs peuvent configurer l’éditeur de code, basé sur Code-OSS, Visual Studio Code – Open Source, en modifiant les options de stockage, en personnalisant les environnements et en gérant l’accès des utilisateurs, ainsi qu’en fournissant des informations sur les conditions préalables requises pour utiliser l’éditeur de code.

**Topics**
+ [Exécuter les opérations prérequises](code-editor-admin-prerequisites.md)
+ [Octroi à vos utilisateurs d’un accès à des espaces privés](code-editor-admin-user-access.md)
+ [Modification de la taille de stockage par défaut](code-editor-admin-storage-size.md)
+ [Configurations du cycle de vie de l’éditeur de code](code-editor-use-lifecycle-configurations.md)
+ [Images personnalisées](code-editor-custom-images.md)

# Exécuter les opérations prérequises
<a name="code-editor-admin-prerequisites"></a>

Pour utiliser l’éditeur de code, basé sur Code-OSS, Visual Studio Code – Open Source, vous devez remplir les conditions préalables requises suivantes.

1. Vous devez d'abord vous connecter au domaine Amazon SageMaker AI et créer un profil utilisateur. Pour de plus amples informations, veuillez consulter [Présentation du domaine Amazon SageMaker AI](gs-studio-onboard.md).

1. Si vous interagissez avec votre application d'éditeur de code à l'aide du AWS CLI, vous devez également remplir les conditions préalables suivantes.

   1.  Mettez à jour le AWS CLI en suivant les étapes de [la section Installation de la AWS CLI version actuelle](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled). 

   1.  À partir de votre ordinateur local, exécutez `aws configure` et fournissez vos informations d’identification AWS . Pour plus d'informations sur les AWS informations d'identification, voir [Comprendre et obtenir vos AWS informations d'identification](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 

1. (Facultatif) Pour obtenir davantage de stockage et de calcul pour votre application, vous pouvez demander une augmentation de vos AWS quotas. Pour plus d'informations sur la demande d'augmentation de quota, consultez [Amazon SageMaker AI Endpoints and Quotas](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Octroi à vos utilisateurs d’un accès à des espaces privés
<a name="code-editor-admin-user-access"></a>

**Important**  
Les politiques IAM personnalisées qui permettent à Amazon SageMaker Studio ou Amazon SageMaker Studio Classic de créer des SageMaker ressources Amazon doivent également accorder des autorisations pour ajouter des balises à ces ressources. L’autorisation d’ajouter des balises aux ressources est requise, car Studio et Studio Classic balisent automatiquement toutes les ressources qu’ils créent. Si une politique IAM autorise Studio et Studio Classic à créer des ressources mais n'autorise pas le balisage, des erreurs « AccessDenied » peuvent se produire lors de la tentative de création de ressources. Pour de plus amples informations, veuillez consulter [Fournir des autorisations pour le balisage des ressources d' SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiques gérées pour Amazon SageMaker AI](security-iam-awsmanpol.md)qui donnent des autorisations pour créer des SageMaker ressources incluent déjà des autorisations pour ajouter des balises lors de la création de ces ressources.

Cette section fournit une politique qui accorde aux utilisateurs l’accès à des espaces privés. Vous pouvez également utiliser cette politique pour restreindre les espaces privés et les applications qui y sont associés au propriétaire associé au profil utilisateur. 

Vous devez fournir des autorisations à vos utilisateurs aux éléments suivants :
+ Espaces privés
+ Profil utilisateur requis pour accéder aux espaces privés

Pour fournir des autorisations, attachez la politique suivante aux rôles IAM de vos utilisateurs.

------
#### [ 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"
          ]
        }
      }
    }
  ]
}
```

------

# Modification de la taille de stockage par défaut
<a name="code-editor-admin-storage-size"></a>

Vous pouvez modifier les paramètres de stockage par défaut de vos utilisateurs. Vous pouvez également modifier les paramètres de stockage par défaut en fonction des exigences de votre organisation et des besoins de vos utilisateurs.

Pour modifier la taille de stockage de vos utilisateurs, procédez comme suit :

1. Mettez à jour les paramètres de stockage Amazon EBS dans le domaine. 

1. Créez un profil utilisateur et spécifiez les paramètres de stockage qu’il contient.

Utilisez la commande suivante AWS Command Line Interface (AWS CLI) pour mettre à jour le domaine.

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

Utilisez la AWS CLI commande suivante pour créer le profil utilisateur et définir les paramètres de stockage par défaut.

```
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
        }
    }
}'
```

Utilisez les AWS CLI commandes suivantes pour mettre à jour les paramètres de stockage par défaut dans le profil utilisateur.

```
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
        }
    }
}'
```

# Configurations du cycle de vie de l’éditeur de code
<a name="code-editor-use-lifecycle-configurations"></a>

Vous pouvez utiliser les configurations de cycle de vie de l’éditeur de code pour automatiser la personnalisation de votre environnement Studio. Cette personnalisation comprend l’installation de packages personnalisés, la configuration d’extensions, le préchargement de jeux de données et la configuration de référentiels de code source.

Les instructions suivantes utilisent le AWS Command Line Interface (AWS CLI) pour créer, attacher, déboguer et détacher des configurations de cycle de vie pour le type `CodeEditor` d'application :
+ [Création et attachement de configurations de cycle de vie dans Studio](code-editor-use-lifecycle-configurations-studio-create.md)
+ [Débogage des configurations de cycle de vie dans Studio](code-editor-use-lifecycle-configurations-studio-debug.md)
+ [Détachement des configurations de cycle de vie dans Studio](code-editor-use-lifecycle-configurations-studio-detach.md)

# Création et attachement de configurations de cycle de vie dans Studio
<a name="code-editor-use-lifecycle-configurations-studio-create"></a>

La section suivante fournit des AWS CLI commandes permettant de créer une configuration de cycle de vie, d'associer une configuration de cycle de vie lors de la création d'un nouveau profil utilisateur et d'associer une configuration de cycle de vie lors de la mise à jour d'un profil utilisateur. Pour connaître les conditions préalables et les étapes générales relatives à la création et à l’attachement de configurations de cycle de vie dans Studio, consultez [Création d’une configuration de cycle de vie](jl-lcc-create.md). 

Lorsque vous créez votre configuration de cycle de vie Studio à l’aide de la commande `create-studio-lifecycle-config`, assurez-vous de spécifier que `studio-lifecycle-config-app-type` est `CodeEditor`. L’exemple suivant montre comment créer une nouvelle configuration de cycle de vie Studio pour votre application d’éditeur de code.

```
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
```

Notez l’ARN de la configuration de cycle de vie nouvellement créée qui est renvoyée. Lorsque vous attachez une configuration de cycle de vie, fournissez cet ARN dans la liste `LifecycleConfigArns` de `CodeEditorAppSettings`. 

Vous pouvez attacher une configuration de cycle de vie lors de la création d’un profil utilisateur ou d’un domaine. L’exemple suivant montre comment créer un profil utilisateur auquel la configuration du cycle de vie est attachée. Vous pouvez également créer un nouveau domaine avec une configuration de cycle de vie attachée à l’aide de la commande [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]
  }
}'
```

Vous pouvez également attacher une configuration de cycle de vie lors de la mise à jour d’un profil utilisateur ou d’un domaine. L’exemple suivant montre comment mettre à jour un profil utilisateur auquel la configuration de cycle de vie est attachée. Vous pouvez également mettre à jour un nouveau domaine avec une configuration de cycle de vie attachée à l’aide de la commande [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]
  }
}'
```

# Débogage des configurations de cycle de vie dans Studio
<a name="code-editor-use-lifecycle-configurations-studio-debug"></a>

Pour déboguer des scripts de configuration de cycle de vie pour l’éditeur de code, vous devez utiliser Studio. Pour des instructions sur le débogage des configurations de cycle de vie dans Studio, consultez [Débogage des configurations de cycle de vie](jl-lcc-debug.md). Pour trouver les journaux d’une application spécifique, recherchez les flux de journaux en utilisant le format suivant :

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

# Détachement des configurations de cycle de vie dans Studio
<a name="code-editor-use-lifecycle-configurations-studio-detach"></a>

Pour détacher des configurations de cycle de vie pour l’éditeur de code, vous pouvez utiliser la console ou l’ AWS CLI. Pour connaître les étapes à suivre pour détacher les configurations de cycle de vie de la console Studio, consultez [Détachement des configurations de cycle de vie](jl-lcc-delete.md).

Pour détacher une configuration de cycle de vie à l'aide de AWS CLI, supprimez la configuration de cycle de vie souhaitée de la liste des configurations de cycle de vie associées à la ressource. Transmettez ensuite la liste dans le cadre de la commande respective :
+ [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)

Par exemple, la commande suivante supprime toutes les configurations de cycle de vie pour l’application d’éditeur de code attachée au domaine.

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

# Création d’une configuration de cycle de vie pour cloner des référentiels dans une application d’éditeur de code
<a name="code-editor-use-lifecycle-configurations-repositories"></a>

Cette section montre comment cloner un référentiel et créer une application d’éditeur de code avec la configuration de cycle de vie attachée.

1. À partir de votre ordinateur local, créez un fichier nommé `my-script.sh` avec le contenu suivant :

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

1. Clonez le référentiel de votre choix dans votre script de configuration de cycle de vie. 

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

1. Après avoir finalisé votre script, créez et attachez votre configuration de cycle de vie. Pour de plus amples informations, veuillez consulter [Création et attachement de configurations de cycle de vie dans Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Créez votre application d’éditeur de code avec la configuration de cycle de vie attachée.

   ```
   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"
   ```

   Pour plus d'informations sur l'image de l'éditeur de code disponible ARNs, consultez[Instances et images de l’application d’éditeur de code](code-editor-use-instances.md).

# Création d’une configuration de cycle de vie pour installer les extensions de l’éditeur de code
<a name="code-editor-use-lifecycle-configurations-extensions"></a>

Cette section explique comment créer une configuration de cycle de vie pour installer des extensions à partir du [registre Open VSX](https://open-vsx.org/) dans votre environnement d’éditeur de code.

1. À partir de votre ordinateur local, créez un fichier nommé `my-script.sh` avec le contenu suivant :

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

1. Dans le script, installez l’extension [Registre Open VSX](https://open-vsx.org/) de votre choix :

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

   Vous pouvez extraire le nom de l’extension à partir de l’URL de l’extension dans le [registre Open VSX](https://open-vsx.org/). Le nom de l’extension à utiliser dans la commande `sagemaker-code-editor` doit contenir tout le texte qui suit `https://open-vsx.org/extension/` dans l’URL. Remplacez toutes les instances d’une barre oblique (`/`) par un point (`.`). Par exemple, `AmazonEMR/emr-tools` sera `AmazonEMR.emr-tools`.  
![\[Page d’extension Amazon EMR dans le registre Open VSX.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/code-editor/code-editor-emr-extension.png)

1. Après avoir finalisé votre script, créez et attachez votre configuration de cycle de vie. Pour de plus amples informations, veuillez consulter [Création et attachement de configurations de cycle de vie dans Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Créez votre application d’éditeur de code avec la configuration de cycle de vie attachée :

   ```
   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"
   ```

   Pour plus d'informations sur l'image de l'éditeur de code disponible ARNs, consultez[Instances et images de l’application d’éditeur de code](code-editor-use-instances.md). Pour plus d’informations sur les connexions et les extensions, consultez [Connexions et extensions de l’éditeur de code](code-editor-use-connections-and-extensions.md).

# Images personnalisées
<a name="code-editor-custom-images"></a>

Si vous avez besoin de fonctionnalités différentes de celles fournies par SageMaker la distribution, vous pouvez apporter votre propre image avec vos extensions et packages personnalisés. Vous pouvez également l’utiliser pour personnaliser l’interface utilisateur de l’éditeur de code en fonction de vos propres besoins en matière de marque ou de conformité.

La page suivante fournit des informations et des modèles spécifiques à l'éditeur de code pour créer vos propres images d' SageMaker IA personnalisées. Ceci est destiné à compléter les informations et les instructions d'Amazon SageMaker Studio sur la création de votre propre image SageMaker AI et l'intégration de votre propre image dans Studio. Pour en savoir plus sur les images Amazon SageMaker AI personnalisées et sur la manière d'intégrer votre propre image dans Studio, consultez[Apporter votre propre image (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Surveillance de l’état et URL des applications](#code-editor-custom-images-app-healthcheck)
+ [Exemples de fichiers Docker](#code-editor-custom-images-dockerfile-templates)

## Surveillance de l’état et URL des applications
<a name="code-editor-custom-images-app-healthcheck"></a>
+ `Base URL` : l’URL de base de l’application BYOI doit être `CodeEditor/default`. Vous ne pouvez avoir qu’une seule application et elle doit toujours être nommée `default`.
+ Health check endpoint — Vous devez héberger votre serveur Code Editor sur le port 0.0.0.0 8888 pour que l' SageMaker IA le détecte.
+  Authentification — Vous devez réussir `sagemaker-code-editor` à l'`--without-connection-token`ouverture pour permettre à l' SageMaker IA d'authentifier vos utilisateurs.

**Note**  
Si vous utilisez Amazon SageMaker Distribution comme image de base, ces exigences sont déjà prises en compte dans le `entrypoint-code-editor` script inclus.

## Exemples de fichiers Docker
<a name="code-editor-custom-images-dockerfile-templates"></a>

Les exemples suivants sont des fichiers `Dockerfile` qui répondent aux informations ci-dessus et aux [Spécifications d’images personnalisées](studio-updated-byoi-specs.md).

**Note**  
Si vous apportez votre propre image à SageMaker Unified Studio, vous devez suivre les [spécifications Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) du guide de l'*utilisateur d'Amazon SageMaker Unified Studio*.  
`Dockerfile`vous trouverez des exemples d' SageMaker Unified Studio dans l'[exemple Dockerfile du guide](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) de l'*utilisateur d'Amazon SageMaker Unified Studio*.

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

Voici un exemple de fichier Docker permettant de créer une image à partir de zéro à l’aide d’un environnement de 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 ]

Voici un exemple de Dockerfile permettant de créer une image basée sur [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution/tree/main) :

```
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"]
```

------