设置本地 Visual Studio 代码 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

设置本地 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: Amazon Toolkit for Visual Studio Code

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

  1. 打开 VS Code。

  2. 打开 Amazon 工具包扩展。

  3. 在 Amazon 资源管理器中,展开 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

如果您需要使用已命名的 Amazon 凭据配置文件,请按如下方式更改代理命令:

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/