Acceder a servidores HTTP que se ejecutan en una estación de trabajo

De forma predeterminada, puedes acceder a los puertos HTTP 80 y a los puertos 1024 a 65535 en tus estaciones de trabajo desde tu navegador. Puedes restringir los puertos a los que puedes acceder en tus estaciones de trabajo configurando allowedPorts en la configuración de la estación de trabajo.

Las estaciones de trabajo en ejecución tienen una propiedad host que puedes usar para conectarte mediante HTTP desde un navegador remoto. Puedes encontrar la propiedad host si obtienes los detalles de una estación de trabajo en ejecución a través de la API, la CLI de Google Cloud o la Google Cloud consola, o bien si imprimes la variable de entorno $WEB_HOST, que se define automáticamente en tu estación de trabajo. La URL se conecta al puerto 80 de forma predeterminada.

Formato de URL de la estación de trabajo predeterminada

La URL de la propiedad host tiene el siguiente formato de forma predeterminada:

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

Los marcadores de posición representan lo siguiente:

  • PORT: número de puerto, que es el puerto 80 de forma predeterminada.
  • WORKSTATION_NAME: el nombre de la estación de trabajo.
  • CLUSTER_ID: el identificador de clúster generado aleatoriamente
  • cloudworkstations.dev: nombre de dominio predeterminado de una estación de trabajo.

    Las URLs de los dominios personalizados usan un formato diferente. Para obtener más información sobre cómo configurar dominios personalizados en Cloud Workstations, consulta Configurar dominios personalizados para Cloud Workstations.

Conectarse a otro puerto cambiando la URL

Para conectarte a otro puerto, especifica un número de puerto diferente como prefijo. Por ejemplo, la siguiente URL se conecta al puerto 9900:

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

En este ejemplo, ten en cuenta lo siguiente:

  • 9900: representa el número de puerto.
  • myworkstation: representa el ID de la estación de trabajo.
  • cluster-12345abcde: representa el identificador del clúster.
  • cloudworkstations.dev: representa el nombre de dominio predeterminado de una estación de trabajo.

Estas URLs requieren la autenticación de usuario. Para acceder a estas URLs, debes haber iniciado sesión y tener el rol de usuario de Cloud Workstations de gestión de identidades y accesos, roles/workstations.user, o el permiso workstations.workstations.use.

Conectarse a una aplicación HTTP desde la Google Cloud consola

Puedes conectarte a una aplicación HTTP que se ejecute en una estación de trabajo desde la consolaGoogle Cloud .

En el caso de las estaciones de trabajo en ejecución para las que tengas permisos de uso, verás el botón Iniciar. De forma predeterminada, este botón se conecta al puerto 80. Puedes hacer clic en la arrow_drop_downflecha de expansión Iniciar para ver otras opciones de conexión. La opción Conectar a aplicación web en el puerto te permite especificar otro puerto al que conectarte.

Conectarse a una aplicación HTTP desde el editor base

Para conectarte a una aplicación que se esté ejecutando en tu estación de trabajo desde el editor base, sigue una de estas instrucciones:

  • Haz clic en los enlaces localhost de la terminal. El editor base redirige automáticamente los enlaces de localhost a las URLs correctas.

    1. Para abrir una ventana de terminal, haz clic en Menú Menú > Terminal > Nuevo terminal. También puedes pulsar Control + Mayús +` (o Comando + Mayús +` en macOS).

    2. En el símbolo del sistema, ejecuta el siguiente comando para mostrar el enlace localhost:

      echo http://localhost:PORT
      

      Sustituye PORT por un número de puerto, como 80 o 8080.

    3. Mantén pulsada la tecla Control (o Comando en macOS) y, a continuación, haz clic en el enlace localhost.
      Se abrirá PORT-WORKSTATION-HOSTNAME en tu navegador.

  • Usa la ventana del navegador: ve a https://PORT-WORKSTATION-HOSTNAME, donde PORT es el número de puerto y WORKSTATION-HOSTNAME es el nombre de host de tu estación de trabajo.

Restringir el acceso a los puertos de una estación de trabajo

Para restringir los puertos a los que se puede acceder en una estación de trabajo, define el valor de allowedPorts en las configuraciones de la estación de trabajo.

Para restringir un solo puerto, asigna el mismo número de puerto a los campos PortRange first y last.

De forma predeterminada, se permiten los puertos 22, 80 y 1024-65535.

Para crear una configuración de estación de trabajo con acceso a puertos restringido a 80 y 8080 a 8100, ejecuta el siguiente comando de la CLI de Google Cloud:

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

Solicitudes preparatorias de CORS

De forma predeterminada, el servicio de estaciones de trabajo se asegura de que todas las solicitudes a la estación de trabajo se autentiquen con una cookie o un encabezado de autenticación.

Las solicitudes de verificación previa de uso compartido de recursos entre orígenes (CORS) no incluyen cookies ni encabezados personalizados, por lo que se consideran no autenticadas y el servicio de estaciones de trabajo las bloquea. Los administradores pueden permitir opcionalmente que las solicitudes preparatorias de CORS no autenticadas lleguen a la estación de trabajo, donde el servidor de destino de la estación de trabajo será el responsable de validar la solicitud.

Para permitir las solicitudes preparatorias de CORS sin autenticar, ejecuta el siguiente comando de la CLI de Google Cloud:

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

Inhabilitar la sustitución de localhost en las respuestas HTTP

Para permitir que las aplicaciones en desarrollo se ejecuten correctamente en la estación de trabajo, Cloud Workstations sustituye las referencias a localhost, 127.0.0.1 y 0.0.0.0 por el nombre de host de la estación de trabajo en las respuestas HTTP de la estación de trabajo.

Esto puede interferir con algunas aplicaciones. Para inhabilitar este comportamiento, ejecuta el siguiente comando de la CLI de Google Cloud:

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