Einrichten des lokalen Visual Studio Code - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einrichten des lokalen Visual Studio Code

Nachdem die Administratoren die Anweisungen unter abgeschlossen habenConnect Sie Ihren lokalen Visual Studio-Code mit SageMaker Räumen mit Fernzugriff, können Sie Ihren lokalen Visual Studio-Code mit Ihren SageMaker Remote-Spaces verbinden.

Einrichten Ihrer lokalen Umgebung

Installieren Sie Visual Studio Code auf Ihrem lokalen Computer. Weitere Informationen zu den Anforderungen finden Sie unter Connect Sie Ihren lokalen Visual Studio-Code mit SageMaker Räumen mit Fernzugriff.

Herstellen einer Verbindung zu Ihrem lokalen VS Code

Bevor Sie eine Verbindung von Ihrem lokalen Visual Studio Code zu Ihren SageMaker Remote-Spaces herstellen können, muss Ihr Administrator dies tunEinrichten des Remotezugriffs. Ihr Administrator richtet eine bestimmte Methode ein, mit der Sie eine Verbindung herstellen können. Wählen Sie die Methode aus, die für Sie eingerichtet wurde.

Gehen Sie wie folgt vor, um per Deep-Link eine Verbindung herzustellen.

  1. Starten Sie Amazon SageMaker Studio.

  2. Navigieren Sie in der Studio-Benutzeroberfläche zu Ihrem Bereich.

  3. Wählen Sie Bereich öffnen mit aus.

  4. Wählen Sie VS Code aus. Wenn Sie dies tun, werden Sie möglicherweise aufgefordert, Visual Studio Code zu öffnen. Wenn Sie sich dafür entscheiden, wird Ihr lokaler VS Code mit einem weiteren Pop-up zur Bestätigung geöffnet. Sobald der Vorgang abgeschlossen ist, wurde die Remoteverbindung hergestellt.

Methode 2: AWS Toolkit for Visual Studio Code

Gehen Sie wie folgt vor, um eine Verbindung mithilfe des AWS Toolkit for Visual Studio Code herzustellen.

  1. Öffnen Sie VS Code.

  2. Öffnen Sie die AWS Toolkit-Erweiterung.

  3. Verbinden mit AWS.

  4. Erweitern Sie im AWS Explorer SageMaker AI.

  5. Suchen Sie Ihren Studio-Bereich.

  6. Wählen Sie das Symbol Verbinden neben Ihrem Bereich aus, um ihn zu starten.

    Anmerkung
    • Beenden Sie den Service und starten Sie ihn erneut im Toolkit für Visual Studio, um den Remotezugriff zu aktivieren, falls noch keine Verbindung besteht.

    • Wenn der Bereich keine unterstützte Instance-Größe verwendet, werden Sie aufgefordert, die Instance zu ändern.

Methode 3: Herstellen einer Verbindung vom Terminal über SSH-CLI

Wählen Sie eine der folgenden Plattformoptionen, um das Verfahren zum Herstellen einer Verbindung mithilfe der SSH-CLI anzuzeigen.

Anmerkung
Linux/macOS

Erstellen Sie ein Shell-Skript (zum Beispiel /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. Machen Sie das Skript ausführbar:

    chmod +x /home/user/sagemaker_connect.sh
  2. Konfigurieren Sie $HOME/.ssh/config, um den folgenden Eintrag hinzuzufügen:

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

Die PARTITION kann beispielsweise aws sein.

Wenn Sie ein benanntes AWS Anmeldeinformationsprofil verwenden müssen, ändern Sie den Proxybefehl wie folgt:

ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
  • Verbinden Sie sich über SSH oder führen Sie den SCP-Befehl aus:

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

Voraussetzungen für Windows:

  • PowerShell 5.1 oder höher

  • SSH-Client (OpenSSH empfohlen)

Erstellen Sie ein PowerShell Skript (zum Beispiel): 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 }
  • Konfigurieren Sie C:\Users\user-name\.ssh\config, um den folgenden Eintrag hinzuzufügen:

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