Configuration d’un environnement Visual Studio Code local - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d’un environnement Visual Studio Code local

Une fois que les administrateurs ont terminé les instructionsConnectez votre code Visual Studio local à des SageMaker espaces avec accès à distance, vous pouvez connecter votre code Visual Studio local à vos SageMaker espaces distants.

Configuration de votre environnement local

Installez Visual Studio Code sur votre ordinateur local. Pour obtenir des informations sur les exigences à respecter, consultez Connectez votre code Visual Studio local à des SageMaker espaces avec accès à distance.

Connexion à votre environnement VS Code local

Avant de pouvoir établir une connexion entre votre code Visual Studio local et vos SageMaker espaces distants, votre administrateur doit le faireConfiguration de l’accès à distance. Votre administrateur configure une méthode spécifique pour vous permettre d’établir une connexion. Choisissez la méthode qui a été configurée pour vous.

Utilisez la procédure suivante pour établir une connexion à l’aide d’un lien profond.

  1. Lancez Amazon SageMaker Studio.

  2. Dans l’interface utilisateur de Studio, accédez à votre espace.

  3. Choisissez Ouvrir l’espace avec.

  4. Choisissez VS Code. Lorsque vous procédez ainsi, vous pouvez être invité à Ouvrir Visual Studio Code. Lorsque vous choisissez de le faire, votre environnement VS Code local s’ouvre avec une autre fenêtre contextuelle pour confirmer. Après cela, la connexion à distance est établie.

Méthode 2 : AWS Toolkit for Visual Studio Code

Utilisez la procédure suivante pour établir une connexion à l’aide d’AWS Toolkit for Visual Studio Code.

  1. Ouvrez VS Code.

  2. Ouvrez l'extension AWS Toolkit.

  3. Connectez-vous à AWS.

  4. Dans l'AWSexplorateur, développez SageMaker l'IA.

  5. Recherchez votre espace Studio.

  6. Choisissez l’icône Connexion à côté de votre espace pour le démarrer.

    Note
    • Arrêtez et redémarrez l’espace dans Toolkit for Visual Studio pour permettre l’accès à distance, si vous n’êtes pas déjà connecté.

    • Si l’espace n’utilise pas une taille d’instance prise en charge, il vous sera demandé de changer l’instance.

Méthode 3 : Connexion depuis le terminal via la CLI SSH

Choisissez l'une des options de plate-forme suivantes pour afficher la procédure d'établissement d'une connexion à l'aide de la CLI SSH.

Note
Linux/macOS

Créez un script shell (par exemple, /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. Rendez le script exécutable :

    chmod +x /home/user/sagemaker_connect.sh
  2. Configurez $HOME/.ssh/config pour ajouter l’entrée suivante :

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

Par exemple, le paramètre PARTITION peut avoir la valeur aws.

Si vous devez utiliser un profil AWS d'identification nommé, modifiez la commande proxy comme suit :

ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
  • Connectez-vous via SSH ou exécutez la commande SCP :

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

Prérequis pour Windows :

  • PowerShell 5.1 ou version ultérieure

  • Client SSH (OpenSSH recommandé)

Créez un PowerShell script (par exemple,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 }
  • Configurez C:\Users\user-name\.ssh\config pour ajouter l’entrée suivante :

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