

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengatur Remote IDE
<a name="remote-access-local-ide-setup"></a>

Setelah administrator menyelesaikan instruksi[Connect Remote IDE Anda ke SageMaker spasi dengan akses jarak jauh](remote-access.md), Anda dapat menghubungkan IDE Jarak Jauh Anda ke SageMaker ruang jarak jauh Anda.

**Topics**
+ [Siapkan lingkungan lokal Anda](#remote-access-local-ide-setup-local-environment)
+ [Connect ke Remote IDE](#remote-access-local-ide-setup-local-vs-code)
+ [Connect ke VPC dengan subnet tanpa akses internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filter ruang Studio Anda](remote-access-local-ide-setup-filter.md)

## Siapkan lingkungan lokal Anda
<a name="remote-access-local-ide-setup-local-environment"></a>

Instal Remote IDE pilihan Anda di mesin lokal Anda:
+ [Kode Visual Studio](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Kursor](https://cursor.com/home)

Untuk informasi tentang persyaratan versi, lihat[Persyaratan versi IDE](remote-access.md#remote-access-ide-version-requirements).

## Connect ke Remote IDE
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Sebelum Anda dapat membuat koneksi dari Remote IDE Anda ke SageMaker ruang jarak jauh Anda, administrator Anda harus[Siapkan akses jarak jauh](remote-access-remote-setup.md). Administrator Anda menyiapkan metode khusus bagi Anda untuk membuat koneksi. Pilih metode yang disiapkan untuk Anda.

**Topics**
+ [Metode 1: Tautan dalam dari Studio UI](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Metode 2: AWS Toolkit di Remote IDE](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Metode 3: Connect dari terminal melalui SSH CLI](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Metode 1: Tautan dalam dari Studio UI
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Gunakan prosedur berikut untuk membuat koneksi menggunakan deep link.

1. [Luncurkan Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html#studio-updated-launch-console).

1. Di UI Studio, navigasikan ke ruang Anda.

1. Pilih **Buka di Kode VS**, **Buka di Kiro**, atau **Buka di tombol Kursor** untuk IDE pilihan Anda. Pastikan bahwa IDE pilihan Anda sudah diinstal pada komputer lokal Anda.

1. Saat diminta, konfirmasikan untuk membuka IDE Anda. IDE Anda terbuka dengan pop-up lain untuk mengonfirmasi. Setelah selesai, koneksi jarak jauh dibuat.

### Metode 2: AWS Toolkit di Remote IDE
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Gunakan prosedur berikut untuk membuat koneksi menggunakan AWS Toolkit for Visual Studio Code. Metode ini tersedia untuk VS Code, Kiro, dan Cursor.

1. Buka IDE Jarak Jauh Anda (Kode VS, Kiro, atau Kursor).

1. Buka ekstensi AWS Toolkit.

1. [Connect ke AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html).

1. Di AWS Explorer, perluas **SageMaker AI**, lalu perluas **Studio**.

1. Temukan ruang Studio Anda.

1. Pilih ikon **Connect** di sebelah ruang Anda untuk memulainya.
**catatan**  
Hentikan dan restart ruang di Toolkit for Visual Studio untuk mengaktifkan akses jarak jauh, jika belum terhubung.
Jika ruang tidak menggunakan [ukuran instans](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) yang didukung, Anda akan diminta untuk mengubah instance.

### Metode 3: Connect dari terminal melalui SSH CLI
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Pilih salah satu opsi platform berikut untuk melihat prosedur untuk membuat koneksi menggunakan SSH CLI.

**catatan**  
Pastikan Anda memiliki versi terbaru dari yang [Prasyarat mesin lokal](remote-access.md#remote-access-local-prerequisites) diinstal sebelum mengikuti petunjuk di bawah ini.
Jika Anda[Bawa gambar Anda sendiri (BYOI)](studio-updated-byoi.md), pastikan Anda telah menginstal dependensi yang diperlukan yang tercantum sebelum melanjutkan [Persyaratan gambar](remote-access.md#remote-access-image-requirements)

------
#### [ Linux/macOS ]

Buat skrip shell (misalnya,`/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. Jadikan skrip dapat dieksekusi:

   ```
   chmod +x /home/user/sagemaker_connect.sh
   ```

1. Konfigurasikan `$HOME/.ssh/config` untuk menambahkan entri berikut:

```
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
```

Misalnya, `{{PARTITION}}` bisa`aws`.

Jika Anda perlu menggunakan [profil AWS kredensi bernama](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), ubah perintah proxy sebagai berikut:

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' {{YOUR_CREDENTIAL_PROFILE_NAME}}
```
+ Connect melalui SSH atau jalankan perintah SCP:

```
ssh {{space-name}}
scp file_abc {{space-name}}:/tmp/
```

------
#### [ Windows ]

**Prasyarat untuk Windows:**
+ PowerShell 5.1 atau yang lebih baru
+ Klien SSH (OpenSSH direkomendasikan)

Buat PowerShell skrip (misalnya,`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
}
```
+ Konfigurasikan `C:\Users\{{user-name}}\.ssh\config` untuk menambahkan entri berikut:

```
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
```

------