

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

# Guia do administrador do Editor de Código
<a name="code-editor-admin"></a>

Você pode usar o Editor de Código com uma instância sob demanda para acelerar o tempo de inicialização e o armazenamento configurável. Você pode iniciar um aplicativo de editor de código por meio do Amazon SageMaker Studio ou do AWS CLI. Você também pode editar as configurações padrão do Editor de Código no console do domínio. Para obter mais informações, consulte [Editar configurações de domínio](domain-edit.md). Os tópicos a seguir descrevem como os administradores podem configurar o Editor de Código, com base no Code-OSS, Visual Studio Code - código aberto, alterando as opções de armazenamento, personalizando ambientes e gerenciando o acesso do usuário, além de fornecer informações sobre os pré-requisitos necessários para usar o Editor de Código.

**Topics**
+ [Concluir os pré-requisitos](code-editor-admin-prerequisites.md)
+ [Forneça acesso a espaços privados aos seus usuários](code-editor-admin-user-access.md)
+ [Alterar o tamanho de armazenamento padrão](code-editor-admin-storage-size.md)
+ [Configurações de ciclo de vida do Editor de Código](code-editor-use-lifecycle-configurations.md)
+ [Imagens personalizadas](code-editor-custom-images.md)

# Concluir os pré-requisitos
<a name="code-editor-admin-prerequisites"></a>

Para usar o Editor de Código, com base no Code-OSS, Visual Studio Code - código aberto, você deve preencher os seguintes pré-requisitos:

1. Primeiro, você deve se conectar ao domínio Amazon SageMaker AI e criar um perfil de usuário. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

1. Se você estiver interagindo com seu aplicativo Editor de código usando o AWS CLI, você também deverá preencher os seguintes pré-requisitos.

   1.  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). 

   1.  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). 

1. (Opcional) Para obter mais armazenamento e computação para seu aplicativo, você pode solicitar um aumento nas suas AWS cotas. Para obter mais informações sobre como solicitar um aumento de cota, consulte os [endpoints e cotas do Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Forneça acesso a espaços privados aos seus usuários
<a name="code-editor-admin-user-access"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Esta seção fornece uma política que concede acesso a espaços privados ao usuário. Você pode usar a política também para restringir espaços privados bem como as aplicações associados com eles do proprietário associado ao perfil do usuário. 

Para fornecer permissões aos seus usuários, siga os seguintes passos:
+ Espaços privados
+ O perfil de usuário necessário para acessar os espaços privados

Para dar permissões, adicione a seguinte política nos perfis do IAM dos seus usuários:

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

------

# Alterar o tamanho de armazenamento padrão
<a name="code-editor-admin-storage-size"></a>

Você pode alterar as configurações padrão de armazenamento dos seus usuários. Você pode alterar também as configurações de armazenamento padrão com base nos requisitos organizacionais e nas necessidades dos seus usuários.

Para alterar o tamanho de armazenamento de seus usuários, faça o seguinte:

1. Atualização das configurações de armazenamento do Amazon EBS no domínio. 

1. Crie um perfil de usuário e especifique as configurações de armazenamento dentro dele.

Use o comando a seguir AWS Command Line Interface (AWS CLI) para atualizar o domínio.

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

Use o AWS CLI comando a seguir para criar o perfil do usuário e especificar as configurações de armazenamento padrão.

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

Use os AWS CLI comandos a seguir para atualizar as configurações de armazenamento padrão no perfil do usuário.

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

# Configurações de ciclo de vida do Editor de Código
<a name="code-editor-use-lifecycle-configurations"></a>

Você pode usar configurações de ciclo de vida do Editor de Código para automatizar a personalização do ambiente Studio. Essa personalização inclui a instalação de pacotes personalizados, a configuração de extensões, o pré-carregamento de conjuntos de dados e a configuração de repositórios de código fonte.

As instruções a seguir usam o AWS Command Line Interface (AWS CLI) para criar, anexar, depurar e desanexar configurações de ciclo de vida para o tipo de aplicativo: `CodeEditor`
+ [Crie e anexe as configurações de ciclo de vida no Studio](code-editor-use-lifecycle-configurations-studio-create.md)
+ [Configurações de ciclo de vida de depuração no Studio](code-editor-use-lifecycle-configurations-studio-debug.md)
+ [Desassociação das configurações de ciclo de vida no Studio](code-editor-use-lifecycle-configurations-studio-detach.md)

# Crie e anexe as configurações de ciclo de vida no Studio
<a name="code-editor-use-lifecycle-configurations-studio-create"></a>

A seção a seguir fornece AWS CLI comandos para criar uma configuração de ciclo de vida, anexar uma configuração de ciclo de vida ao criar um novo perfil de usuário e anexar uma configuração de ciclo de vida ao atualizar um perfil de usuário. Para pré-requisitos e etapas gerais sobre como criar e anexar configurações de ciclo de vida no Studio, consulte [Criação de configuração do ciclo de vida](jl-lcc-create.md). 

Ao criar a sua configuração de ciclo de vida do Studio com o comando `create-studio-lifecycle-config`, certifique-se de especificar que `studio-lifecycle-config-app-type` é `CodeEditor`. O exemplo a seguir mostra como criar uma configuração nova do ciclo de vida para a sua aplicação no 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
```

Anote o ARN da configuração de ciclo de vida recém-criada que é retornada. Ao anexar uma configuração de ciclo de vida, forneça esse ARN na lista `LifecycleConfigArns` de `CodeEditorAppSettings`. 

Você pode anexar uma configuração de ciclo de vida ao criar um perfil de usuário ou domínio. O exemplo a seguir mostra como criar um novo perfil de usuário com a configuração de ciclo de vida anexada. Você também pode criar um novo domínio com uma configuração de ciclo de vida anexada com o 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, você pode anexar uma configuração de ciclo de vida ao atualizar um perfil de usuário ou domínio. O exemplo a seguir mostra como atualizar um perfil de usuário com a configuração de ciclo de vida anexada. Você também pode atualizar um domínio novo com uma configuração de ciclo de vida anexada com o 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]
  }
}'
```

# Configurações de ciclo de vida de depuração no Studio
<a name="code-editor-use-lifecycle-configurations-studio-debug"></a>

Para depurar scripts de configuração do ciclo de vida do Editor de Código, você deve usar o Studio. Para obter instruções sobre como depurar as configurações de ciclo de vida no Studio, consulte [Configuração de depuração do ciclo de vida](jl-lcc-debug.md). Para encontrar os logs de uma aplicação específico, pesquise os fluxos de logs usando o seguinte formato:

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

# Desassociação das configurações de ciclo de vida no Studio
<a name="code-editor-use-lifecycle-configurations-studio-detach"></a>

Para desassociar as configurações de ciclo de vida do Editor de Código, você pode usar o console ou a AWS CLI. Para ver as etapas sobre como desassociar as configurações de ciclo de vida do console do Studio, consulte [Desassociar as configurações de ciclo de vida](jl-lcc-delete.md).

Para separar uma configuração de ciclo de vida usando o 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)

Por exemplo, o comando a seguir remove todas as configurações de ciclo de vida da aplicação Editor de Código anexadas ao domínio.

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

# Crie uma configuração de ciclo de vida para clonar repositórios em uma aplicação de Editor de Código
<a name="code-editor-use-lifecycle-configurations-repositories"></a>

Esta seção mostra como clonar um repositório e criar uma aplicação de Editor de Código com a configuração de ciclo de vida anexada.

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

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

1. Clonar o repositório de sua escolha no script de configuração do 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. Depois de finalizar seu script, crie e anexe sua configuração de ciclo de vida. Para obter mais informações, consulte [Crie e anexe as configurações de ciclo de vida no Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Crie sua aplicação de Editor de Código com a configuração de ciclo de vida anexada.

   ```
   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 obter mais informações sobre a imagem disponível do Editor de Código ARNs, consulte[Instâncias e imagens da aplicação Editor de Código](code-editor-use-instances.md).

# Crie uma configuração de ciclo de vida para instalar extensões do Editor de Código
<a name="code-editor-use-lifecycle-configurations-extensions"></a>

Esta seção mostra como criar uma configuração de ciclo de vida para instalar extensões do [Open VSX Registry](https://open-vsx.org/) em seu ambiente de Editor de Código.

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

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

1. Dentro do script, instale a extensão [Open VSX Registry](https://open-vsx.org/) de sua escolha:

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

   Você pode recuperar o nome da extensão a partir da URL da extensão no [Open VSX Registry](https://open-vsx.org/). O nome da extensão a ser usado no comando `sagemaker-code-editor` deve conter todo o texto a seguir `https://open-vsx.org/extension/` na URL. Substitua todas as instâncias de uma barra (`/`) por um ponto (`.`). Por exemplo, `AmazonEMR/emr-tools` deveria ser `AmazonEMR.emr-tools`.  
![\[A página de extensão do Amazon EMR no Open VSX Registry.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-emr-extension.png)

1. Depois de finalizar seu script, crie e anexe sua configuração de ciclo de vida. Para obter mais informações, consulte [Crie e anexe as configurações de ciclo de vida no Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Crie sua aplicação de Editor de Código com a configuração de ciclo de vida anexada:

   ```
   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 obter mais informações sobre a imagem disponível do Editor de Código ARNs, consulte[Instâncias e imagens da aplicação Editor de Código](code-editor-use-instances.md). Para ver mais informações sobre conexões e extensões, consulte [Conexões e extensões do Editor de Código](code-editor-use-connections-and-extensions.md).

# Imagens personalizadas
<a name="code-editor-custom-images"></a>

Se precisar de uma funcionalidade diferente da fornecida pela SageMaker distribuição, você pode trazer sua própria imagem com suas extensões e pacotes personalizados. Você também pode personalizar a interface de usuário do Editor de Código de acordo com sua própria marca ou necessidades de conformidade.

A página a seguir fornecerá informações e modelos específicos do Code Editor para criar suas próprias imagens personalizadas de SageMaker IA. Isso serve para complementar as informações e instruções do Amazon SageMaker Studio sobre como criar sua própria imagem de SageMaker IA e trazer sua própria imagem para o Studio. Para saber mais sobre imagens personalizadas de SageMaker IA da Amazon e como trazer sua própria imagem para o Studio, consulte[Traga sua própria imagem (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Verificação de integridade e URL de aplicações](#code-editor-custom-images-app-healthcheck)
+ [Exemplos de Dockerfile](#code-editor-custom-images-dockerfile-templates)

## Verificação de integridade e URL de aplicações
<a name="code-editor-custom-images-app-healthcheck"></a>
+ `Base URL`: O URL base para a aplicação BYOI deve ser `CodeEditor/default`. Você só pode ter uma aplicação e ele deve sempre ter um nome `default`.
+ Endpoint de verificação de integridade — Você deve hospedar seu servidor do Editor de Código na porta 0.0.0.0 8888 para que a SageMaker IA o detecte.
+  Autenticação — Você deve passar `--without-connection-token` ao abrir `sagemaker-code-editor` para permitir que a SageMaker IA autentique seus usuários.

**nota**  
Se você estiver usando a Amazon SageMaker Distribution como imagem base, esses requisitos já foram atendidos como parte do `entrypoint-code-editor` script incluído.

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

Os exemplos a seguir são arquivos `Dockerfile` que atendem às informações e [Especificações de imagem personalizadas](studio-updated-byoi-specs.md) acima.

**nota**  
Se você estiver trazendo sua própria imagem para o SageMaker Unified Studio, precisará seguir as [especificações do Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) no Guia do *usuário do Amazon SageMaker Unified Studio*.  
`Dockerfile`exemplos do SageMaker Unified Studio podem ser encontrados no [exemplo do Dockerfile no Guia do](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) *usuário do Amazon SageMaker Unified Studio*.

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

Veja o seguinte exemplo de Dockerfile para criar uma imagem do zero usando um ambiente [https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html) básico: 

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

Veja a seguir um exemplo de Dockerfile para criar uma imagem com base na [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"]
```

------