Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione di un’istanza locale Visual Studio Code
Dopo che gli amministratori hanno completato le istruzioni contenute inConnect il codice di Visual Studio locale agli SageMaker spazi con accesso remoto, puoi connettere il codice di Visual Studio locale agli spazi remoti. SageMaker
Configurazione dell’ambiente locale
Installa Visual Studio Code sul tuo computer locale. Per informazioni sui requisiti, consulta Connect il codice di Visual Studio locale agli SageMaker spazi con accesso remoto.
Connessione all’istanza locale VS Code
Prima di poter stabilire una connessione dal codice di Visual Studio locale agli SageMaker spazi remoti, l'amministratore deve Configurazione dell’accesso remoto farlo. L’amministratore configura un metodo specifico per stabilire una connessione. Scegli il metodo che è stato configurato per te.
Metodo 1: link diretto dall’interfaccia utente di Studio
Utilizza la procedura seguente per stabilire una connessione tramite link diretto.
-
Avvia Amazon SageMaker Studio.
-
Nell’interfaccia utente di Studio, accedi al tuo spazio.
-
Scegli Apri spazio con.
-
Scegli VS Code. Durante la selezione, potrebbe essere richiesto di aprire Visual Studio Code. Se accetti, l’istanza locale VS Code si apre con un’altra finestra pop-up di conferma. Al termine viene stabilita la connessione remota.
Utilizza la procedura seguente per stabilire una connessione con il AWS Toolkit for Visual Studio Code.
-
Apri VS Code.
-
Apri l'estensione AWS Toolkit.
-
Connettiti ad AWS.
-
In AWS Explorer, espandi l'SageMaker IA.
-
Trova il tuo spazio Studio.
-
Scegli l’icona Connetti accanto al tuo spazio per avviarlo.
-
Arresta e riavvia lo spazio nel Kit di strumenti per Visual Studio per abilitare l’accesso remoto, se non è già connesso.
-
Se lo spazio non utilizza una dimensione dell’istanza supportata, ti verrà chiesto di modificare l’istanza.
Metodo 3: connettersi dal terminale tramite la CLI SSH
Scegli una delle seguenti opzioni di piattaforma per visualizzare la procedura per stabilire una connessione utilizzando la CLI SSH.
- Linux/macOS
-
Crea uno script shell (ad esempio, /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"
-
Rendi eseguibile lo script:
chmod +x /home/user/sagemaker_connect.sh
-
Configura $HOME/.ssh/config per aggiungere la voce seguente:
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
Ad esempio, PARTITION può essere aws.
Se è necessario utilizzare un profilo di AWS credenziali denominato, modificare il comando proxy come segue:
ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
ssh space-name
scp file_abc space-name:/tmp/
- Windows
-
Prerequisiti per Windows:
Crea uno PowerShell script (ad esempio,): 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
}
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