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.
Método 1: enlace profundo desde la interfaz de usuario de Studio
Use el siguiente procedimiento para establecer una conexión mediante un enlace profundo.
-
Abre Amazon SageMaker Studio.
-
En la interfaz de usuario de Studio, vaya a su espacio.
-
Elija Abrir espacio con.
-
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.
Use el siguiente procedimiento para establecer una conexión mediante el AWS Toolkit for Visual Studio Code.
-
Abra VS Code.
-
Abre la extensión AWS Toolkit.
-
Conéctese a AWS.
-
En el AWS Explorador, expande la SageMaker IA.
-
Busque su espacio de Studio.
-
Elija el icono Conectar situado junto a su espacio para iniciarlo.
-
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.
- 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"
-
Haga que el script sea ejecutable.
chmod +x /home/user/sagemaker_connect.sh
-
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
ssh space-name
scp file_abc space-name:/tmp/
- Windows
-
Requisitos previos para Windows:
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
}
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