Aceder a servidores HTTP em execução numa estação de trabalho

Por predefinição, pode aceder às portas HTTP 80 e às portas 1024 a 65535 nas suas estações de trabalho a partir do navegador. Pode restringir as portas às quais pode aceder nas suas estações de trabalho definindo allowedPorts na configuração da estação de trabalho.

As estações de trabalho em execução têm uma propriedade host que pode usar para estabelecer ligação através de HTTP a partir de um navegador remoto. Pode encontrar a propriedade host ao obter detalhes de uma estação de trabalho em execução através da API, da CLI Google Cloud, da Google Cloud consola ou ao imprimir a variável de ambiente $WEB_HOST, que é definida automaticamente na estação de trabalho. O URL estabelece ligação na porta 80 por predefinição.

Formato de URL da estação de trabalho predefinido

Por predefinição, o URL da propriedade host usa o seguinte formato:

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

Os marcadores de posição representam o seguinte:

  • PORT: o número da porta, que é a porta 80 por predefiniçã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 predefinido de uma estação de trabalho.

    Os URLs de domínios personalizados usam um formato diferente. Para mais informações sobre a configuração de domínios personalizados no Cloud Workstations, consulte o artigo Configure domínios personalizados para o Cloud Workstations.

Ligue-se a uma porta diferente alterando o URL

Para estabelecer ligação numa porta diferente, especifique um número de porta diferente como um prefixo. Por exemplo, o seguinte URL estabelece ligação à porta 9900:

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

Neste exemplo, tenha em atenção 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 predefinido de uma estação de trabalho.

Estes URLs requerem a autenticação do utilizador. Para aceder a estes URLs, tem de ter sessão iniciada e ter a função IAM de utilizador do Cloud Workstations , roles/workstations.user ou a autorização workstations.workstations.use.

Estabelecer ligação a uma app HTTP a partir da consola Google Cloud

Pode estabelecer ligação a uma app HTTP executada numa estação de trabalho a partir da Google Cloud consola.

Para qualquer estação de trabalho em execução para a qual tenha autorizações de utilização, é apresentado um botão Iniciar. Por predefinição, este botão estabelece ligação na porta 80. Pode clicar na seta de expansão arrow_drop_downjunto a Iniciar para ver opções de ligação alternativas. A opção Ligar à app Web na porta permite-lhe especificar uma porta diferente à qual se ligar.

Estabelecer ligação a uma app HTTP a partir do editor base

Para se ligar a uma app em execução na sua estação de trabalho a partir do editor base, siga uma destas instruções:

  • Clicar em links localhost no terminal. O editor base redireciona automaticamente os links localhost para os URLs corretos.

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

    2. Na linha de comandos, execute o seguinte comando para apresentar o link de localhost:

      echo http://localhost:PORT
      

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

    3. Mantenha premida a tecla Control (ou Command no macOS) e, de seguida, clique no link localhost.
      Esta ação abre PORT-WORKSTATION-HOSTNAME no seu navegador.

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

Restringir o acesso a portas para uma estação de trabalho

Para restringir as portas que podem ser acedidas numa estação de trabalho, defina o elemento allowedPorts nas configurações da estação de trabalho.

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

Por predefinição, são permitidas as portas 22, 80 e 1024-65535.

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

Pedidos de verificação prévia da CORS

Por predefinição, o serviço de estações de trabalho garante que todos os pedidos à estação de trabalho são autenticados com um cookie ou um cabeçalho de autenticação.

Os pedidos de verificação prévia da partilha de recursos de origem cruzada (CORS) não incluem cookies nem cabeçalhos personalizados e, por isso, são considerados não autenticados e bloqueados pelo serviço de estações de trabalho. Os administradores podem, opcionalmente, permitir que os pedidos de verificação prévia de CORS não autenticados passem para a estação de trabalho, onde a validação do pedido passa a ser da responsabilidade do servidor de destino na estação de trabalho.

Para permitir pedidos de verificação prévia de CORS não autenticados, execute o seguinte comando da CLI gcloud:

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

Desative a substituição de localhost em respostas HTTP

Para permitir que as aplicações em desenvolvimento sejam executadas 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 anfitrião da estação de trabalho nas respostas HTTP da estação de trabalho.

Isto pode interferir com algumas aplicações. Para desativar este comportamento, execute o seguinte comando da CLI gcloud:

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