設定本機 Visual Studio 程式碼 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定本機 Visual Studio 程式碼

管理員完成 中的指示後將本機 Visual Studio 程式碼連線至 SageMaker 空間,您可以將本機 Visual Studio Code 連線到遠端 SageMaker 空間。

為您的空間啟用遠端存取

注意

此設定只需要完成一次。

對於現有空間

為您的 SageMaker 空間啟用遠端存取:

  1. 開啟 SageMaker AI UI。

  2. 導覽至您的空間。

  3. 在空間詳細資訊中,開啟遠端存取

  4. 啟動您的空間。

設定您的本機環境

在本機電腦上安裝 Visual Studio Code。如需需求的資訊,請參閱 將本機 Visual Studio 程式碼連線至 SageMaker 空間

連線至您的本機 VS 程式碼

在建立從本機 Visual Studio 程式碼到遠端 SageMaker 空間的連線之前,您的管理員必須 設定遠端存取。您的管理員會為您設定特定方法來建立連線。選擇為您設定的方法。

  1. 在 SageMaker AI UI 中,導覽至您的空間

  2. 選擇使用 開啟空間

  3. 選擇 VS 程式碼。當您這麼做時,系統可能會提示您開啟 Visual Studio 程式碼。當您選擇這麼做時,您的本機 VS 程式碼會開啟,並顯示另一個快顯視窗來確認。完成後,即會建立遠端連線。

方法 2: AWS Toolkit for Visual Studio Code

使用 Toolkit for VS Code 使用者指南中連線至 AWS 的資訊和指示。

  1. 開啟 VS 程式碼。

  2. 開啟 AWS Toolkit 擴充功能。

  3. 在 AWS Explorer 中,展開 SageMaker AI

  4. 尋找您的 Studio 空間。

  5. 選擇空間旁的連線圖示。

方法 3:透過 SSH CLI 從終端機連線

建立 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"
  1. 讓指令碼可執行檔:

    chmod +x /home/user/sagemaker_connect.sh
  2. 設定 $HOME/.ssh/config以新增下列項目:

Host my_space_name_abc HostName 'arn:PARTITION:sagemaker:REGION:ACCOUNT:space/DOMAIN_ID/space_name_abc' 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 連線或執行 SCP 命令:

ssh my_space_name_abc scp file_abc my_space_name_abc:/tmp/