Conectar-se a servidores HTTP em execução em uma estação de trabalho

Por padrão, é possível se conectar às portas HTTP 80 e 1024 a 65535 nas estações de trabalho pelo navegador. Para restringir as portas a que você pode se conectar nas estações de trabalho, defina allowedPorts na configuração da estação de trabalho.

As estações de trabalho em execução têm uma propriedade host que pode ser usada para se conectar usando HTTP de um navegador remoto. Para encontrar a propriedade host, acesse os detalhes de uma estação de trabalho em execução pela API, pela Google Cloud CLI, pelo Google Cloud console ou imprimindo a variável de ambiente $WEB_HOST, que é definida automaticamente na estação de trabalho. O URL se conecta à porta 80 por padrão.

Formato de URL da estação de trabalho padrão

O URL da propriedade host usa o seguinte formato por padrão:

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

Os marcadores representam o seguinte:

  • PORT: o número da porta, que é 80 por padrão.
  • WORKSTATION_NAME: o nome da estação de trabalho.
  • CLUSTER_ID: o identificador do cluster gerado aleatoriamente
  • cloudworkstations.dev: o nome de domínio padrão de uma estação de trabalho.

    Os URLs de domínios personalizados usam um formato diferente. Para mais informações sobre como configurar domínios personalizados no Cloud Workstations, consulte Configurar domínios personalizados para o Cloud Workstations.

Conectar-se a uma porta diferente mudando o URL

Para se conectar a uma porta diferente, especifique um número de porta diferente como prefixo. Por exemplo, o URL a seguir se conecta à porta 9900:

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

Neste exemplo, observe o seguinte:

  • 9900: representa o número da porta.
  • myworkstation: representa o ID da estação de trabalho.
  • cluster-12345abcde: representa o identificador do cluster.
  • cloudworkstations.dev: representa o nome de domínio padrão de uma estação de trabalho.

Esses URLs exigem autenticação do usuário. Para abrir esses URLs, você precisa fazer login e ter o papel do IAM de usuário do Cloud Workstations, roles/workstations.user, ou a permissão workstations.workstations.use.

Conectar-se a um app HTTP pelo Google Cloud console

É possível se conectar a um app HTTP em execução em uma estação de trabalho pelo Google Cloud console.

Para qualquer estação de trabalho em execução que você tenha permissões para usar, um botão Iniciar será exibido. Por padrão, esse botão se conecta à porta 80. Você pode clicar na seta arrow_drop_downexpander ao lado de Iniciar para conferir opções de conexão alternativas. A opção Conectar ao app da Web na porta permite especificar uma porta diferente para se conectar.

Conectar-se a um app HTTP pelo editor de base

Para se conectar a um app em execução na estação de trabalho pelo editor de base do Cloud Workstations, siga uma destas instruções:

  • Clique nos links localhost no terminal. O editor de base redireciona automaticamente os links localhost para os URLs certos.

    1. Para abrir uma janela de terminal, clique em menu Menu > Terminal > Novo terminal. Como alternativa, pressione Control+Shift+` (ou Command+Shift+` no macOS).

    2. No prompt de comando, execute o seguinte comando para mostrar o link localhost:

      echo http://localhost:PORT
      

      Substitua PORT por um número de porta, como 80 ou 8080.

    3. Mantenha Control (ou Command no macOS) pressionado e clique no link localhost.
      Isso abre PORT-WORKSTATION-HOSTNAME no navegador.

  • Use a janela do navegador: navegue até https://PORT-WORKSTATION-HOSTNAME, em que PORT é o número da porta e WORKSTATION-HOSTNAME é o nome do host da estação de trabalho.

Restringir o acesso à porta de uma estação de trabalho

Para restringir as portas que podem ser conectadas a uma estação de trabalho, defina allowedPorts nas configurações da estação de trabalho.

Para restringir uma única porta, defina os PortRange first e last campos com o mesmo número de porta.

Por padrão, as portas 22, 80 e 1024 a 65535 são permitidas.

Para criar uma configuração de estação de trabalho com acesso restrito à porta 80 e 8080 a 8100, execute o seguinte comando da 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

Solicitações de simulação do CORS

Por padrão, o Cloud Workstations garante que todas as solicitações HTTP/HTTPS para a estação de trabalho sejam autenticadas usando um cookie ou cabeçalho de autenticação.

As solicitações de simulação do CORS (Compartilhamento de recursos de origem cruzada) não incluem cookies ou cabeçalhos personalizados e, portanto, são consideradas não autenticadas e bloqueadas pelo Cloud Workstations. Os administradores podem permitir solicitações de simulação do CORS não autenticadas na estação de trabalho, em que se torna responsabilidade do servidor de destino na estação de trabalho validar a solicitação.

Para permitir solicitações de simulação do CORS não autenticadas, execute o seguinte comando da Google Cloud CLI:

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

Desativar a substituição de localhost em respostas HTTP

Para permitir que os apps em desenvolvimento sejam executados corretamente na estação de trabalho, o Cloud Workstations substitui as referências a localhost, 127.0.0.1 e 0.0.0.0 pelo nome do host da estação de trabalho em respostas HTTP da estação de trabalho.

Isso pode interferir em alguns aplicativos. Para desativar esse comportamento, execute o seguinte comando da Google Cloud CLI:

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