

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

# Suporte ao modo local no Amazon SageMaker Studio
<a name="studio-updated-local"></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.

Os aplicativos do Amazon SageMaker Studio oferecem suporte ao uso do modo local para criar estimadores, processadores e pipelines e, em seguida, implantá-los em um ambiente local. Com o modo local, você pode testar scripts de aprendizado de máquina antes de executá-los em ambientes gerenciados de treinamento ou hospedagem da Amazon SageMaker AI. O Studio comporta o modo local nas seguintes aplicações:
+ Amazon SageMaker Studio Clássico
+ JupyterLab
+ Editor de Código, baseado em Code-OSS, Visual Studio Code - código aberto

O modo local nos aplicativos do Studio é invocado usando o SDK do SageMaker Python. Nos aplicativos Studio, o modo local funciona de forma semelhante às instâncias de SageMaker notebooks da Amazon, com algumas diferenças. Com a [Configuração do Docker sem raiz](studio-updated-local-get-started.md#studio-updated-local-rootless) habilitada, você também pode acessar registros adicionais do Docker por meio de sua configuração de VPC, bem como repositórios on-premises e registros públicos. [Para obter mais informações sobre como usar o modo local com o SDK do SageMaker Python, consulte Modo local.](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode)

**nota**  
As aplicações do Studio não são compatíveis com trabalhos com vários contêineres no modo local. Os trabalhos no modo local são limitados a uma única instância para trabalhos de treinamento, inferência e processamento. Ao criar um trabalho no modo local, a configuração da contagem de instâncias deve ser `1`. 

## Ajuda do Docker
<a name="studio-updated-local-docker"></a>

Como parte da compatibilidade com o modo local, as aplicações do Studio oferecem comportam recursos de acesso limitado do Docker. Com esse suporte, os usuários podem interagir com a API do Docker por meio dos cadernos Jupyter ou do terminal de imagem da aplicação. Os clientes podem interagir com o Docker usando uma das seguintes opções:
+ [CLI do Docker](https://docs.docker.com/engine/reference/run/)
+ [CLI do Docker Compose ](https://docs.docker.com/compose/reference/)
+ SDKs do Docker para linguagem específica

O Studio também oferece apoio a recursos do acesso limitado ao Docker com as seguintes restrições:
+ O uso de redes do Docker não é compatível.
+ O uso do Dockervolume do [https://docs.docker.com/storage/volumes/](https://docs.docker.com/storage/volumes/) não é compatível durante a execução do contêiner. Somente entradas de montagem de vinculação de volume são permitidas durante a orquestração do contêiner. As entradas do volume de montagem vinculada devem estar localizadas no volume do Amazon Elastic File System (Amazon EFS) para o Studio Classic. Para JupyterLab aplicativos do Code Editor de Código, ele deve estar localizado no volume Amazon Elastic Block Store (Amazon EBS).
+ As operações de inspeção do contêiner são permitidas.
+ O mapeamento da porta do contêiner para o host não é permitido. Porém, você não pode especificar uma porta para hospedagem. O endpoint pode então ser acessado pelo Studio usando o seguinte URL:

  ```
  http://localhost:port
  ```

### Operações do Docker compatíveis
<a name="studio-updated-local-docker-supported"></a>

A tabela a seguir lista todos os endpoints da API do Docker que são compatíveis com o Studio, incluindo quaisquer limitações de compatibilidade. Se um endpoint da API estiver ausente da tabela, o Studio não será compatível.


|  Documentação de API  |  Limitações  | 
| --- | --- | 
|  [SystemAuth](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemAuth)  |   | 
|  [SystemEvents](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemEvents)  |   | 
|  [SystemVersion](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemVersion)  |   | 
|  [SystemPing](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemPing)  |   | 
|  [SystemPingHead](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemPingHead)  |   | 
|  [ContainerCreate](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerCreate)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-updated-local.html)  | 
|  [ContainerStart](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerStart)  |   | 
|  [ContainerStop](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerStop)  |   | 
|  [ContainerKill](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerKill)  |   | 
|  [ContainerDelete](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerDelete)  |   | 
|  [ContainerList](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerList)  |   | 
|  [ContainerLogs](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerLogs)  |   | 
|  [ContainerInspect](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerInspect)  |   | 
|  [ContainerWait](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerWait)  |   | 
|  [ContainerAttach](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerAttach)  |   | 
|  [ContainerPrune](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerPrune)  |   | 
|  [ContainerResize](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerResize)  |   | 
|  [ImageCreate](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageCreate)  |  A compatibilidade com o modo VPC-only é limitado às imagens do Amazon ECR nas contas permitidas. Com a [Configuração do Docker sem raiz](studio-updated-local-get-started.md#studio-updated-local-rootless) habilitada, você também pode acessar registros adicionais do Docker por meio de sua configuração de VPC, bem como repositórios on-premises e registros públicos. | 
|  [ImagePrune](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImagePrune)  |   | 
|  [ImagePush](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImagePush)  |  A compatibilidade com o modo VPC-only é limitado às imagens do Amazon ECR nas contas permitidas. Com a [Configuração do Docker sem raiz](studio-updated-local-get-started.md#studio-updated-local-rootless) habilitada, você também pode acessar registros adicionais do Docker por meio de sua configuração de VPC, bem como repositórios on-premises e registros públicos. | 
|  [ImageList](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageList)  |   | 
|  [ImageInspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect)  |   | 
|  [ImageGet](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageGet)  |   | 
|  [ImageDelete](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageDelete)  |   | 
|  [ImageBuild](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageBuild)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-updated-local.html)  | 

**Topics**
+ [Ajuda do Docker](#studio-updated-local-docker)
+ [Conceitos básicos do modo local](studio-updated-local-get-started.md)

# Conceitos básicos do modo local
<a name="studio-updated-local-get-started"></a>

As seções a seguir descrevem as etapas necessárias para começar a usar o modo local no Amazon SageMaker Studio, incluindo:
+ Como concluir os pré-requisitos
+ Configurar `EnableDockerAccess`
+ Instalação do Docker

## Pré-requisitos
<a name="studio-updated-local-prereq"></a>

Preencha os seguintes pré-requisitos para usar o modo local nas aplicações do Studio:
+ Para extrair imagens de um repositório do Amazon Elastic Container Registry, a conta que hospeda a imagem do Amazon ECR deve fornecer permissão de acesso para a função de execução do usuário. A função de execução do domínio também deve permitir o acesso ao Amazon ECR.
+ Verifique se você está usando a versão mais recente do SDK do Studio Python usando o seguinte comando: 

  ```
  pip install -U sagemaker
  ```
+ Para usar o modo e os recursos locais do Docker, defina o seguinte parâmetro do domínio `DockerSettings` usando a AWS Command Line Interface (AWS CLI): 

  ```
  EnableDockerAccess : ENABLED
  ```
+ Ao usar `EnableDockerAccess`, você também pode controlar se os usuários no domínio podem usar o modo local. Por padrão, o modo e os recursos locais do Docker não são permitidos nas aplicações do Studio. Para obter mais informações, consulte [Configurar `EnableDockerAccess`](#studio-updated-local-enable).
+ Instale a CLI do Docker na aplicação do Studio seguindo as etapas em [Instalação do Docker](#studio-updated-local-docker-installation).
+ Para a [Configuração do Docker sem raiz](#studio-updated-local-rootless), sua VPC deve ter endpoints e roteamento apropriados configurados para os registros do Docker desejados.

## Configurar `EnableDockerAccess`
<a name="studio-updated-local-enable"></a>

As seções a seguir mostram como definir `EnableDockerAccess` quando o domínio tem acesso público à internet ou está no modo `VPC-only`.

**nota**  
As alterações serão aplicadas ao `EnableDockerAccess` apenas nas aplicações criadas após a atualização do domínio. Crie uma aplicação depois de atualizar o domínio.

**Acesso público à internet**

Os seguintes comandos de exemplo mostram como configurar o `EnableDockerAccess` ao criar um novo domínio ou atualizar um domínio existente com acesso público à Internet:

```
# create new domain
aws --region region \
    sagemaker create-domain --domain-name domain-name \
    --vpc-id vpc-id \
    --subnet-ids subnet-ids \
    --auth-mode IAM \
    --default-user-settings "ExecutionRole=execution-role" \
    --domain-settings '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}' \
    --query DomainArn \
    --output text

# update domain
aws --region region \
    sagemaker update-domain --domain-id domain-id \
    --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'
```

**Modo `VPC-only`**

Ao usar um domínio no modo `VPC-only`, as solicitações push e pull de imagem do Docker são roteadas pelo serviço VPC em vez da VPC configurada pelo cliente. Devido a esta funcionalidade, os administradores podem configurar uma lista de Contas da AWS confiáveis para as quais os usuários podem solicitar operações pull e push do Docker do Amazon ECR.

Se uma solicitação push ou pull de Docker imagem for feita para uma Conta da AWS que não esteja na lista de confiáveis Contas da AWS, a solicitação falhará. DockerAs operações pull and push fora do Amazon Elastic Container Registry (Amazon ECR) não são suportadas `VPC-only` no modo.

Por padrão, os itens a seguir Contas da AWS são confiáveis:
+ A conta que hospeda o domínio SageMaker AI.
+ SageMaker Contas de IA que hospedam as seguintes SageMaker imagens:
  + Imagens da estrutura DLC
  + SklearnSpark, XGBoost processando imagens

Para configurar uma lista de outros confiáveis Contas da AWS, especifique o `VpcOnlyTrustedAccounts` valor da seguinte forma:

```
aws --region region \
    sagemaker update-domain --domain-id domain-id \
    --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED", "VpcOnlyTrustedAccounts": ["account-list"]}}'
```

**nota**  
Quando [Configuração do Docker sem raiz](#studio-updated-local-rootless) está habilitada, `VpcOnlyTrustedAccounts` é ignorado e o tráfego do Docker passa por sua configuração de VPC, permitindo acesso a qualquer registro que sua VPC possa acessar.

## Configuração do Docker sem raiz
<a name="studio-updated-local-rootless"></a>

Quando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DockerSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DockerSettings.html) está habilitado, o Studio usa um [daemon do Docker sem raiz](https://docs.docker.com/engine/security/rootless/) que roteia o tráfego pela sua VPC. Isso oferece segurança aprimorada e permite acesso a registros adicionais do Docker. As principais diferenças com o `RootlessDocker` são:
+ As portas de contêiner podem ser acessadas usando o IP do gateway do Docker (`172.17.0.1`) em vez do localhost.
+ Sua configuração de VPC determina quais registros são acessíveis para operações do Docker. `VpcOnlyTrustedAccounts` é ignorado e o tráfego do Docker passa por sua configuração de VPC.

Para usar o Docker sem raiz, você precisará definir `EnableDockerAccess` e `RootlessDocker` como `ENABLED` para suas `DockerSettings`. Por exemplo, nos exemplos de [Configurar `EnableDockerAccess`](#studio-updated-local-enable) acima, você pode modificar as configurações do seu domínio para incluir:

```
'{"DockerSettings": {"EnableDockerAccess": "ENABLED", "RootlessDocker": "ENABLED"}}'
```

## Instalação do Docker
<a name="studio-updated-local-docker-installation"></a>

Para usar o Docker, você deve instalar manualmente o Docker por meio do terminal da aplicação do Studio. As etapas de instalação do Docker são diferentes se o domínio tiver acesso à internet ou não.

### Acesso à Internet
<a name="studio-updated-local-docker-installation-internet"></a>

Se o domínio for criado com acesso público à internet ou no modo `VPC-only` com acesso limitado à internet, use as etapas a seguir para instalar o Docker.

1. (Opcional) Se seu domínio for criado no modo de `VPC-only` com acesso limitado à internet, crie um gateway NAT público com acesso ao site do Docker. Para ter instruções, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html).

1. Navegue até o terminal da aplicação do Studio em que deseja instalar o Docker.

1. Para retornar o sistema operacional da aplicação, execute o seguinte comando no terminal:

   ```
   cat /etc/os-release
   ```

1. Instale Docker seguindo as instruções para o sistema operacional do aplicativo no [repositório Amazon SageMaker AI Local Mode Examples](https://github.com/aws-samples/amazon-sagemaker-local-mode/tree/main/sagemaker_studio_docker_cli_install).

   Por exemplo, instale Docker Ubuntu seguindo o script em [https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker\$1studio\$1docker\$1cli\$1install/sagemaker- ubuntu-focal-docker-cli -install.sh](https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker_studio_docker_cli_install/sagemaker-ubuntu-focal-docker-cli-install.sh) com as seguintes considerações:
   + Se os comandos encadeados falharem, execute comandos individualmente.
   + O Studio é compatível apenas com o Docker versão `20.10.X.` e a API do Docker Engine versão `1.41`.
   + Os seguintes pacotes não precisam usar a CLI do Docker no Studio e sua instalação pode ser ignorada:
     + `containerd.io`
     + `docker-ce`
     + `docker-buildx-plugin`
**nota**  
Você não precisa iniciar o serviço do Docker em suas aplicações. A instância que hospeda a aplicação do Studio executa o serviço do Docker por padrão. Todas as chamadas de API do Docker são roteadas automaticamente pelo serviço do Docker.

1. Use o soquete do Docker exposto para interações do Docker nas aplicações do Studio. Por padrão, o seguinte soquete é exposto:

   ```
   unix:///docker/proxy.sock
   ```

   A seguinte variável de ambiente da aplicação do Studio para o `USER` padrão usa esse soquete exposto:

   ```
   DOCKER_HOST
   ```

### Sem acesso à internet
<a name="studio-updated-local-docker-installation-no-internet"></a>

Se o domínio for criado no modo `VPC-only` sem acesso à internet, use as etapas a seguir para instalar o Docker.

1. Navegue até o terminal da aplicação do Studio em que deseja instalar o Docker.

1. Execute o seguinte comando no terminal para retornar o sistema operacional da aplicação:

   ```
   cat /etc/os-release
   ```

1. Baixe os arquivos `.deb` do Docker necessários em sua máquina local. Para instruções sobre como baixar os arquivos necessários para o sistema operacional da aplicação do Studio, consulte [Instalar o Docker Engine](https://docs.docker.com/engine/install/).

   Por exemplo, instale o Docker a partir de um pacote no Ubuntu seguindo as etapas de 1 a 4 em [Instalar de um pacote](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) com as seguintes considerações:
   + Instale Docker a partir de um pacote. O uso de outros métodos para instalar o Docker não funcionará.
   + Instale os pacotes mais recentes correspondentes à versão`20.10.X` do Docker.
   + Os pacotes a seguir não são obrigatórios para usar a CLI do Docker no Studio. Não é necessário instalar:
     + `containerd.io`
     + `docker-ce`
     + `docker-buildx-plugin`
**nota**  
Você não precisa iniciar o serviço do Docker em suas aplicações. A instância que hospeda a aplicação do Studio executa o serviço do Docker por padrão. Todas as chamadas de API do Docker são roteadas automaticamente pelo serviço do Docker.

1. Carregue os arquivos `.deb` no sistema de arquivos do Amazon EFS ou no sistema de arquivos do Amazon EBS da aplicação.

1. Instale manualmente os pacotes `.deb` `docker-ce-cli` e `docker-compose-plugin` por meio do terminal da aplicação do Studio. Para mais informações e instruções, consulte a etapa 5 em [Instalar a partir de um pacote](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) no site da de docs do Docker.

1. Use o soquete do Docker exposto para interações do Docker nas aplicações do Studio. Por padrão, o seguinte soquete é exposto:

   ```
   unix:///docker/proxy.sock
   ```

   A seguinte variável de ambiente da aplicação do Studio para o `USER` padrão usa esse soquete exposto:

   ```
   DOCKER_HOST
   ```