Configuración del Visual Studio Code local - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración del Visual Studio Code local

Una vez que los administradores hayan completado las instruccionesConecta tu código local de Visual Studio a SageMaker espacios con acceso remoto, podrá conectar su código de Visual Studio local a sus espacios remotos SageMaker .

Configuración del entorno local

Instale Visual Studio Code en su equipo local. Para obtener más información sobre los requisitos, consulte Conecta tu código local de Visual Studio a SageMaker espacios con acceso remoto.

Conexión al Visual Studio Code local

Antes de que pueda establecer una conexión desde su Visual Studio Code local a sus SageMaker espacios remotos, su administrador debe hacerloConfiguración del acceso remoto. El administrador configura un método específico para que usted pueda establecer una conexión. Elija el método que se ha configurado para usted.

Use el siguiente procedimiento para establecer una conexión mediante un enlace profundo.

  1. Abre Amazon SageMaker Studio.

  2. En la interfaz de usuario de Studio, vaya a su espacio.

  3. Elija Abrir espacio con.

  4. Elija VS Code. Cuando lo haga, es posible que se le pida que Abra Visual Studio Code. Si decide hacerlo, su Visual Studio Code local se abrirá con otra ventana emergente para confirmar la acción. A continuación, se establece la conexión remota.

Método 2: AWS Toolkit for Visual Studio Code

Use el siguiente procedimiento para establecer una conexión mediante el AWS Toolkit for Visual Studio Code.

  1. Abra VS Code.

  2. Abre la extensión AWS Toolkit.

  3. Conéctese a AWS.

  4. En el AWS Explorador, expande la SageMaker IA.

  5. Busque su espacio de Studio.

  6. Elija el icono Conectar situado junto a su espacio para iniciarlo.

    nota
    • Detenga y reinicie el espacio del Kit de herramientas para Visual Studio para habilitar el acceso remoto, si todavía no está conectado.

    • Si el espacio no utiliza un tamaño de instancia compatible, se le pedirá que cambie la instancia.

Método 3: conectarse desde el terminal a través de la CLI de SSH

Elija una de las siguientes opciones de plataforma para ver el procedimiento para establecer una conexión mediante la CLI de SSH.

nota
Linux/macOS

Cree un script de intérprete de comandos (por ejemplo, /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. Haga que el script sea ejecutable.

    chmod +x /home/user/sagemaker_connect.sh
  2. Configure $HOME/.ssh/config para agregar la siguiente 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 ejemplo, el valor PARTITION puede ser aws.

Si necesita usar un perfil de AWS credenciales con nombre, cambie el comando proxy de la siguiente manera:

ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
  • Conéctese a través de SSH o ejecute el comando SCP:

ssh space-name scp file_abc space-name:/tmp/
Windows

Requisitos previos para Windows:

  • PowerShell 5.1 o posterior

  • Cliente SSH (se recomienda OpenSSH)

Cree un PowerShell script (por ejemplo,): 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 agregar la siguiente 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