Connettersi a server HTTP in esecuzione su una workstation

Per impostazione predefinita, puoi connetterti alle porte HTTP 80 e alle porte da 1024 a 65535 sulle tue workstation dal browser. Puoi limitare le porte a cui puoi connetterti su le tue workstation impostando allowedPorts nella configurazione della workstation.

Le workstation in esecuzione hanno una proprietà host che puoi utilizzare per connetterti tramite HTTP da un browser remoto. Puoi trovare la proprietà host recuperando i dettagli di una workstation in esecuzione tramite l'API, Google Cloud CLI, la Google Cloud console, o stampando la variabile di ambiente $WEB_HOST, che viene impostata automaticamente all'interno della workstation. Per impostazione predefinita, l'URL si connette alla porta 80.

Formato URL workstation predefinito

Per impostazione predefinita, l'URL della proprietà host utilizza il seguente formato:

https://PORT-WORKSTATION_NAME.CLUSTER_ID.cloudworkstations.dev

I segnaposto rappresentano quanto segue:

  • PORT: il numero di porta, che per impostazione predefinita è la porta 80.
  • WORKSTATION_NAME: il nome della workstation.
  • CLUSTER_ID: l'identificatore del cluster generato in modo casuale.
  • cloudworkstations.dev: il nome di dominio predefinito per una workstation.

    Gli URL per i domini personalizzati utilizzano un formato diverso. Per saperne di più sulla configurazione dei domini personalizzati in Cloud Workstations, consulta Configurare domini personalizzati per Cloud Workstations.

Connettersi a una porta diversa modificando l'URL

Per connetterti a una porta diversa, specifica un numero di porta diverso come prefisso. Ad esempio, il seguente URL si connette alla porta 9900:

https://9900-myworkstation.cluster-12345abcde.cloudworkstations.dev

In questo esempio, tieni presente quanto segue:

  • 9900: rappresenta il numero di porta.
  • myworkstation: rappresenta l'ID della workstation.
  • cluster-12345abcde: rappresenta l'identificatore del cluster.
  • cloudworkstations.dev: rappresenta il nome di dominio predefinito per una workstation.

Questi URL richiedono l'autenticazione dell'utente. Per aprire questi URL, devi aver eseguito l'accesso e disporre del ruolo IAM Utente Cloud Workstations, roles/workstations.user, o dell'autorizzazione workstations.workstations.use.

Connettersi a un'app HTTP dalla Google Cloud console

Puoi connetterti a un'app HTTP in esecuzione su una workstation dalla Google Cloud console.

Per qualsiasi workstation in esecuzione per cui hai le autorizzazioni di utilizzo, viene visualizzato un pulsante Avvia. Per impostazione predefinita, questo pulsante si connette alla porta 80. Puoi fare clic sulla arrow_drop_downfreccia di espansione accanto ad Avvia per visualizzare le opzioni di connessione alternative. L'opzione Connetti all'app web sulla porta ti consente di specificare una porta diversa a cui connetterti.

Connettersi a un'app HTTP dall'editor di base

Per connetterti a un'app in esecuzione sulla workstation dall'editor di base di Cloud Workstations, segui una di queste istruzioni:

  • Fai clic sui link localhost nel terminale. L'editor di base reindirizza automaticamente i link localhost agli URL corretti.

    1. Per aprire una finestra del terminale, fai clic su menu Menu > Terminale > Nuovo terminale. In alternativa, premi Control+Shift+` (o Command+Shift+` su macOS).

    2. Al prompt dei comandi, esegui il comando seguente per visualizzare il link localhost:

      echo http://localhost:PORT
      

      Sostituisci PORT con un numero di porta, ad esempio 80 o 8080.

    3. Tieni premuto Control (o Command su macOS) e poi fai clic sul link localhost.
      In questo modo, nel browser si apre PORT-WORKSTATION-HOSTNAME.

  • Utilizza la finestra del browser: vai a https://PORT-WORKSTATION-HOSTNAME, dove PORT è il numero di porta e WORKSTATION-HOSTNAME è il nome host della workstation.

Limitare l'accesso alle porte per una workstation

Per limitare le porte a cui è possibile connettersi su una workstation, imposta allowedPorts nelle configurazioni della workstation.

Per limitare una singola porta, imposta i campi PortRange first e last sullo stesso numero di porta.

Per impostazione predefinita, sono consentite le porte 22, 80 e da 1024 a 65535.

Per creare una configurazione della workstation con accesso alle porte limitato a 80 e 8080 a 8100, esegui il seguente comando Google Cloud CLI:

    gcloud workstations configs create CONFIG \
        --cluster=CLUSTER_ID \
        --region=REGION \
        --project=PROJECT \
        --allowed-ports=first=80,last=80 \
        --allowed-ports=first=8080,last=8100

Richieste di preflight CORS

Per impostazione predefinita, Cloud Workstations si assicura che tutte le richieste HTTP/HTTPS alla workstation siano autenticate utilizzando un cookie o un'intestazione di autenticazione.

Le richieste di preflight CORS (Cross-Origin Resource Sharing) non includono cookie o intestazioni personalizzate, pertanto vengono considerate non autenticate e bloccate da Cloud Workstations. Facoltativamente, gli amministratori possono consentire alle richieste di preflight CORS non autenticate di raggiungere la workstation, dove diventa responsabilità del server di destinazione nella workstation convalidare la richiesta.

Per consentire le richieste di preflight CORS non autenticate, esegui il seguente comando Google Cloud CLI:

    gcloud beta workstations configs update CONFIG \
        --cluster=CLUSTER_ID \
        --region=REGION \
        --project=PROJECT \
        --allow-unauthenticated-cors-preflight-requests

Disattivare la sostituzione di localhost nelle risposte HTTP

Per consentire alle app in fase di sviluppo di essere eseguite correttamente sulla workstation, Cloud Workstations sostituisce i riferimenti a localhost, 127.0.0.1 e 0.0.0.0 con il nome host della workstation nelle risposte HTTP della workstation.

Questa operazione potrebbe interferire con alcune applicazioni. Per disattivare questo comportamento, esegui il seguente comando Google Cloud CLI:

    gcloud beta workstations configs update CONFIG \
        --cluster=CLUSTER_ID \
        --region=REGION \
        --project=PROJECT \
        --disable-localhost-replacement