

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

# Configurar o IDE remoto
<a name="remote-access-local-ide-setup"></a>

Depois que os administradores concluírem as instruções[Conecte seu IDE remoto a SageMaker espaços com acesso remoto](remote-access.md), você poderá conectar seu IDE remoto aos seus SageMaker espaços remotos.

**Topics**
+ [Configurar o ambiente local](#remote-access-local-ide-setup-local-environment)
+ [Conecte-se ao seu IDE remoto](#remote-access-local-ide-setup-local-vs-code)
+ [Conectar-se à VPC com sub-redes sem acesso à internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filtrar espaços do Studio](remote-access-local-ide-setup-filter.md)

## Configurar o ambiente local
<a name="remote-access-local-ide-setup-local-environment"></a>

Instale seu IDE remoto preferido em sua máquina local:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursor](https://cursor.com/home)

Para obter informações sobre os requisitos da versão, consulte[Requisitos da versão do IDE](remote-access.md#remote-access-ide-version-requirements).

## Conecte-se ao seu IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Antes que você possa estabelecer uma conexão do seu IDE remoto com seus SageMaker espaços remotos, seu administrador deve[Configurar o acesso remoto](remote-access-remote-setup.md). O administrador configura um método específico para você estabelecer uma conexão. Escolha o método que foi configurado para você.

**Topics**
+ [Método 1: link direto da interface de usuário do Studio](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Método 2: AWS Kit de ferramentas no IDE remoto](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Método 3: conectar-se pelo terminal via CLI do SSH](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Método 1: link direto da interface de usuário do Studio
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Use o procedimento a seguir para estabelecer uma conexão usando o link direto.

1. [Inicie o Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html#studio-updated-launch-console).

1. Na interface do usuário do Studio, navegue até o seu espaço.

1. Escolha **o botão Abrir no VS Code**, **Abrir no Kiro** ou **Abrir no Cursor** para seu IDE preferido. Certifique-se de que seu IDE preferido já esteja instalado em seu computador local.

1. Quando solicitado, confirme para abrir seu IDE. Seu IDE abre com outro pop-up para confirmar. Depois de concluída, a conexão remota é estabelecida.

### Método 2: AWS Kit de ferramentas no IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Use o procedimento a seguir para estabelecer uma conexão usando o AWS Toolkit for Visual Studio Code. Esse método está disponível para VS Code, Kiro e Cursor.

1. Abra seu IDE remoto (VS Code, Kiro ou Cursor).

1. Abra a extensão AWS Toolkit.

1. [Conecte-se à AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html).

1. No AWS Explorer, expanda a **SageMaker IA** e, em seguida, expanda o **Studio**.

1. Encontre seu espaço do Studio.

1. Escolha o ícone de **conexão** ao lado do seu espaço para iniciá-lo.
**nota**  
Pare e reinicie o espaço no kit de ferramentas para Visual Studio para habilitar o acesso remoto, se ainda não conectado.
Se o espaço não estiver usando um [tamanho de instância](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) compatível, você deverá alterar a instância.

### Método 3: conectar-se pelo terminal via CLI do SSH
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Escolha uma das opções de plataforma a seguir para visualizar o procedimento para estabelecer uma conexão usando a CLI SSH.

**nota**  
Verifique se você tem as versões mais recentes do [Pré-requisitos da máquina local](remote-access.md#remote-access-local-prerequisites) instalado antes de seguir as instruções abaixo.
Se você[Traga sua própria imagem (BYOI)](studio-updated-byoi.md), certifique-se de ter instalado as dependências necessárias listadas [Requisitos de imagens](remote-access.md#remote-access-image-requirements) antes de continuar

------
#### [ Linux/macOS ]

Crie um script de shell (por exemplo, `/home/user/sagemaker_connect.sh`):

```
#!/bin/bash
# Disable the -x option if printing each command is not needed.
set -exuo pipefail

SPACE_ARN="$1"
AWS_PROFILE="${2:-}"

# Validate ARN and extract region
if [[ "$SPACE_ARN" =~ ^arn:aws[-a-z]*:sagemaker:([a-z0-9-]+):[0-9]{12}:space\/[^\/]+\/[^\/]+$ ]]; then
    AWS_REGION="${BASH_REMATCH[1]}"
else
    echo "Error: Invalid SageMaker Studio Space ARN format."
    exit 1
fi

# Optional profile flag
PROFILE_ARG=()
if [[ -n "$AWS_PROFILE" ]]; then
    PROFILE_ARG=(--profile "$AWS_PROFILE")
fi

# Start session
START_SESSION_JSON=$(aws sagemaker start-session \
    --resource-identifier "$SPACE_ARN" \
    --region "${AWS_REGION}" \
    "${PROFILE_ARG[@]}")

# Extract fields using grep and sed
SESSION_ID=$(echo "$START_SESSION_JSON" | grep -o '"SessionId": "[^"]*"' | sed 's/.*: "//;s/"$//')
STREAM_URL=$(echo "$START_SESSION_JSON" | grep -o '"StreamUrl": "[^"]*"' | sed 's/.*: "//;s/"$//')
TOKEN=$(echo "$START_SESSION_JSON" | grep -o '"TokenValue": "[^"]*"' | sed 's/.*: "//;s/"$//')

# Validate extracted values
if [[ -z "$SESSION_ID" || -z "$STREAM_URL" || -z "$TOKEN" ]]; then
    echo "Error: Failed to extract session information from sagemaker start session response."
    exit 1
fi

# Call session-manager-plugin
session-manager-plugin \
    "{\"streamUrl\":\"$STREAM_URL\",\"tokenValue\":\"$TOKEN\",\"sessionId\":\"$SESSION_ID\"}" \
    "$AWS_REGION" "StartSession"
```

1. Torne o script executável:

   ```
   chmod +x /home/user/sagemaker_connect.sh
   ```

1. Configure `$HOME/.ssh/config` para adicionar a seguinte entrada:

```
Host {{space-name}}
  HostName 'arn:{{PARTITION}}:sagemaker:{{us-east-1}}:{{111122223333}}:space/{{domain-id}}/{{space-name}}'
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h'
  ForwardAgent yes
  AddKeysToAgent yes
  StrictHostKeyChecking accept-new
```

Por exemplo, `{{PARTITION}}` pode ser `aws`.

Se você precisar usar um [perfil de AWS credencial nomeado](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), altere o comando proxy da seguinte forma:

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' {{YOUR_CREDENTIAL_PROFILE_NAME}}
```
+ Conecte-se via SSH ou execute o comando SCP:

```
ssh {{space-name}}
scp file_abc {{space-name}}:/tmp/
```

------
#### [ Windows ]

**Pré-requisitos para Windows:**
+ PowerShell 5.1 ou posterior
+ Cliente SSH (OpenSSH recomendado)

Crie um PowerShell script (por exemplo,`C:\Users\{{user-name}}\sagemaker_connect.ps1`):

```
# sagemaker_connect.ps1
param(
    [Parameter(Mandatory=$true)]
    [string]$SpaceArn,

    [Parameter(Mandatory=$false)]
    [string]$AwsProfile = ""
)

# Enable error handling
$ErrorActionPreference = "Stop"

# Validate ARN and extract region
if ($SpaceArn -match "^arn:aws[-a-z]*:sagemaker:([a-z0-9-]+):[0-9]{12}:space\/[^\/]+\/[^\/]+$") {
    $AwsRegion = $Matches[1]
} else {
    Write-Error "Error: Invalid SageMaker Studio Space ARN format."
    exit 1
}

# Build AWS CLI command
$awsCommand = @("sagemaker", "start-session", "--resource-identifier", $SpaceArn, "--region", $AwsRegion)

if ($AwsProfile) {
    $awsCommand += @("--profile", $AwsProfile)
}

try {
    # Start session and capture output
    Write-Host "Starting SageMaker session..." -ForegroundColor Green
    $startSessionOutput = & aws @awsCommand

    # Try to parse JSON response
    try {
        $sessionData = $startSessionOutput | ConvertFrom-Json
    } catch {
        Write-Error "Failed to parse JSON response: $_"
        Write-Host "Raw response was:" -ForegroundColor Yellow
        Write-Host $startSessionOutput
        exit 1
    }

    $sessionId = $sessionData.SessionId
    $streamUrl = $sessionData.StreamUrl
    $token = $sessionData.TokenValue

    # Validate extracted values
    if (-not $sessionId -or -not $streamUrl -or -not $token) {
        Write-Error "Error: Failed to extract session information from sagemaker start session response."
        Write-Host "Parsed response was:" -ForegroundColor Yellow
        Write-Host ($sessionData | ConvertTo-Json)
        exit 1
    }

    Write-Host "Session started successfully. Connecting..." -ForegroundColor Green

    # Create session manager plugin command
    $sessionJson = @{
        streamUrl = $streamUrl
        tokenValue = $token
        sessionId = $sessionId
    } | ConvertTo-Json -Compress

    # Escape the JSON string
    $escapedJson = $sessionJson -replace '"', '\"'

    # Call session-manager-plugin
    & session-manager-plugin "$escapedJson" $AwsRegion "StartSession"

} catch {
    Write-Error "Failed to start session: $_"
    exit 1
}
```
+ Configure `C:\Users\{{user-name}}\.ssh\config` para adicionar a seguinte entrada:

```
Host {{space-name}}                            
  HostName "arn:aws:sagemaker:{{us-east-1}}:{{111122223333}}:space/{{domain-id}}/{{space-name}}"
  ProxyCommand "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy RemoteSigned -File "C:\\Users\\{{user-name}}\\sagemaker_connect.ps1" "%h"
  ForwardAgent yes
  AddKeysToAgent yes
  User sagemaker-user
  StrictHostKeyChecking accept-new
```

------