Configurar o Visual Studio Code local - SageMaker IA da Amazon

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 Visual Studio Code local

Depois que os administradores concluírem as instruçõesConecte seu Visual Studio Code local a SageMaker espaços com acesso remoto, você poderá conectar seu Visual Studio Code local aos seus SageMaker espaços remotos.

Configurar o ambiente local

Instale o Visual Studio Code na máquina local. Para ter informações sobre os requisitos, consulte Conecte seu Visual Studio Code local a SageMaker espaços com acesso remoto.

Conectar-se ao VS Code local

Antes de estabelecer uma conexão do Visual Studio Code local com seus SageMaker espaços remotos, seu administrador deveConfigurar o acesso remoto. O administrador configura um método específico para você estabelecer uma conexão. Escolha o método que foi configurado para você.

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

  1. Inicie o Amazon SageMaker Studio.

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

  3. Escolha Abrir espaço com.

  4. Escolha VS Code. Ao fazer isso, você pode receber a solicitação para abrir o Visual Studio Code. Quando você opta por fazer isso, o VS Code local é aberto com outro pop-up para confirmar. Assim que concluído, a conexão remota é estabelecida.

Método 2: AWS Toolkit for Visual Studio Code

Use o procedimento a seguir para estabelecer uma conexão usando o AWS Toolkit for Visual Studio Code.

  1. Abra o VS Code.

  2. Abra a extensão AWS Toolkit.

  3. Conecte-se à AWS.

  4. No AWS Explorer, expanda a SageMaker IA.

  5. Encontre seu espaço do Studio.

  6. 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 compatível, você deverá alterar a instância.

Método 3: conectar-se pelo terminal via CLI do SSH

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

nota
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
  2. 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, 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 } # BuildAWS CLIcommand $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