本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定遠端 IDE
管理員完成 中的指示後使用遠端存取將您的遠端 IDE 連接到 SageMaker 空間,您可以將遠端 IDE 連接到遠端 SageMaker 空間。
設定您的本機環境
在本機電腦上安裝您偏好的遠端 IDE:
如需版本需求的資訊,請參閱 IDE 版本需求。
連線至遠端 IDE
在建立從遠端 IDE 到遠端 SageMaker 空間的連線之前,您的管理員必須 設定遠端存取。您的管理員會為您設定特定方法來建立連線。選擇為您設定的方法。
方法 1:來自 Studio UI 的深層連結
使用下列程序,使用深層連結建立連線。
-
啟動 Amazon SageMaker Studio。
-
在 Studio UI 中,導覽至您的空間。
-
針對您偏好的 IDE,選擇在 VS 程式碼中開啟、在 Kiro 中開啟或在游標中開啟按鈕。確保本機電腦上已安裝您偏好的 IDE。
-
出現提示時,請確認 開啟您的 IDE。您的 IDE 會開啟另一個快顯視窗進行確認。完成後,即會建立遠端連線。
使用下列程序,使用 AWS Toolkit for Visual Studio Code建立連線。此方法適用於 VS Code、Kiro 和 Cursor。
-
開啟遠端 IDE (VS 程式碼、Kiro 或游標)。
-
開啟 AWS Toolkit 擴充功能。
-
連線到 AWS。
-
在 AWS Explorer 中,展開 SageMaker AI,然後展開 Studio。
-
尋找您的 Studio 空間。
-
選擇空間旁邊的連線圖示來將其啟動。
方法 3:透過 SSH CLI 從終端連線
選擇下列其中一個平台選項,以檢視使用 SSH CLI 建立連線的程序。
- Linux/macOS
-
建立 shell 指令碼 (例如 /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"
-
讓指令碼可執行:
chmod +x /home/user/sagemaker_connect.sh
-
設定 $HOME/.ssh/config 以新增下列項目:
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
例如,PARTITION 可以是 aws。
如果您需要使用具名 AWS 憑證描述檔,請變更代理命令,如下所示:
ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
ssh space-name
scp file_abc space-name:/tmp/
- Windows
-
Windows 的先決條件:
-
PowerShell 5.1 或更新版本
-
SSH 用戶端 (建議使用 OpenSSH)
建立 PowerShell 指令碼 (例如 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
}
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