

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configura IDE remoto
<a name="remote-access-local-ide-setup"></a>

Dopo che gli amministratori hanno completato le istruzioni riportate in[Connect il tuo IDE remoto a SageMaker spazi con accesso remoto](remote-access.md), puoi connettere l'IDE remoto agli SageMaker spazi remoti.

**Topics**
+ [Configurazione dell’ambiente locale](#remote-access-local-ide-setup-local-environment)
+ [Connect al tuo IDE remoto](#remote-access-local-ide-setup-local-vs-code)
+ [Connessione a VPC con sottoreti senza accesso a Internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filtraggio degli spazi Studio](remote-access-local-ide-setup-filter.md)

## Configurazione dell’ambiente locale
<a name="remote-access-local-ide-setup-local-environment"></a>

Installa il tuo IDE remoto preferito sul tuo computer locale:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursore](https://cursor.com/home)

Per informazioni sui requisiti di versione, vedere[Requisiti della versione IDE](remote-access.md#remote-access-ide-version-requirements).

## Connect al tuo IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Prima di poter stabilire una connessione dall'IDE remoto agli SageMaker spazi remoti, l'amministratore deve farlo[Configurazione dell’accesso remoto](remote-access-remote-setup.md). L’amministratore configura un metodo specifico per stabilire una connessione. Scegli il metodo che è stato configurato per te.

**Topics**
+ [Metodo 1: link diretto dall’interfaccia utente di Studio](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Metodo 2: AWS Toolkit nell'IDE remoto](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Metodo 3: connettersi dal terminale tramite la CLI SSH](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Metodo 1: link diretto dall’interfaccia utente di Studio
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Utilizza la procedura seguente per stabilire una connessione tramite link diretto.

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

1. Nell’interfaccia utente di Studio, accedi al tuo spazio.

1. Scegli **il pulsante Apri in VS Code**, **Apri in Kiro o** **Apri in cursore** per il tuo IDE preferito. Assicurati che il tuo IDE preferito sia già installato sul tuo computer locale.

1. Quando richiesto, conferma l'apertura dell'IDE. L'IDE si apre con un altro pop-up di conferma. Una volta completata, viene stabilita la connessione remota.

### Metodo 2: AWS Toolkit nell'IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Utilizza la procedura seguente per stabilire una connessione con il AWS Toolkit for Visual Studio Code. Questo metodo è disponibile per VS Code, Kiro e Cursor.

1. Apri il tuo IDE remoto (VS Code, Kiro o Cursor).

1. Apri l'estensione AWS Toolkit.

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

1. In AWS Explorer, espandi **SageMaker AI**, quindi espandi **Studio**.

1. Trova il tuo spazio Studio.

1. Scegli l’icona **Connetti** accanto al tuo spazio per avviarlo.
**Nota**  
Arresta e riavvia lo spazio nel Kit di strumenti per Visual Studio per abilitare l’accesso remoto, se non è già connesso.
Se lo spazio non utilizza una [dimensione dell’istanza](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) supportata, ti verrà chiesto di modificare l’istanza.

### Metodo 3: connettersi dal terminale tramite la CLI SSH
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Scegli una delle seguenti opzioni di piattaforma per visualizzare la procedura per stabilire una connessione utilizzando la CLI SSH.

**Nota**  
Assicurati di avere [Prerequisiti del computer locale](remote-access.md#remote-access-local-prerequisites) installato le versioni più recenti prima di seguire le istruzioni riportate di seguito.
In caso [Bring Your Own Image (BYOI)](studio-updated-byoi.md) affermativo, assicuratevi di aver installato le dipendenze richieste elencate in [Requisiti delle immagini](remote-access.md#remote-access-image-requirements) prima di procedere

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

Crea uno script shell (ad esempio, `/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. Rendi eseguibile lo script:

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

1. Configura `$HOME/.ssh/config` per aggiungere la voce seguente:

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

Ad esempio, `{{PARTITION}}` può essere `aws`.

Se è necessario utilizzare un [profilo di AWS credenziali denominato](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), modificare il comando proxy come segue:

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' {{YOUR_CREDENTIAL_PROFILE_NAME}}
```
+ Connettiti tramite SSH o esegui il comando SCP:

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

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

**Prerequisiti per Windows:**
+ PowerShell 5.1 o versione successiva
+ Client SSH (OpenSSH consigliato)

Crea uno PowerShell script (ad esempio,): `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
}
```
+ Configura `C:\Users\{{user-name}}\.ssh\config` per aggiungere la voce seguente:

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

------