设置本地 Visual Studio 代码 - 亚马逊 SageMaker AI

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

设置本地 Visual Studio 代码

管理员完成中的说明后将你的本地 Visual Studio 代码连接到 SageMaker 空间,您可以将本地 Visual Studio 代码连接到远程 SageMaker 空间。

为您的空间启用远程访问

注意

此设置只需要完成一次。

对于现有空间

激活 SageMaker 空间的远程访问权限:

  1. 打开 A SageMaker I 用户界面。

  2. 导航到您的空间。

  3. 在空间详细信息中,打开 “远程访问”。

  4. 开始你的空间。

设置本地环境

在本地计算机上安装 Visual Studio 代码。有关要求的信息,请参阅将你的本地 Visual Studio 代码连接到 SageMaker 空间

Connect 连接到你的本地 VS Code

在建立从本地 Visual Studio Code 到远程 SageMaker 空间的连接之前,必须由管理员进行连接设置远程访问。您的管理员为您设置了建立连接的特定方法。选择为您设置的方法。

  1. 在 SageMaker AI 用户界面中,导航到您的空间

  2. 选择 “开放空间

  3. 选择 VS 代码。当你这样做时,系统可能会提示你打开 Visual Studio 代码。当您选择这样做时,您的本地 VS Code 会打开另一个弹出窗口进行确认。完成后,远程连接即建立。

方法 2: AWS Toolkit for Visual Studio Code

使用适用于 VS Code 的 Toolkit 用户指南 AWS中连接中的信息和说明。

  1. 打开 VS Code。

  2. 打开 AWS 工具包扩展。

  3. 在 AWS 资源管理器中,展开 SageMaker AI

  4. 找到你的工作室空间。

  5. 选择空间旁边的 Connect 图标。

方法 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/