Skip to main content
Três endpoints, para três situações diferentes, e cada um requer sua própria ação do IAM — ler um log de inicialização, tirar uma foto da tela e segurar um teclado dentro do convidado não são deliberadamente a mesma concessão.
Connect no cabeçalho da instância oferece três rotas: SSH — Do seu terminal, que monta o comando para você — Serial — Console de texto no navegador — e Screenshot — Console gráfico.
A transcrição de inicialização não tem controle de console. Nada no console da web lê a saída do console; Serial anexa uma sessão ao vivo, e isso precisa da instância em execução. Para um convidado que falhou no caminho para cima — o caso para o qual a transcrição existe — lê-lo é apenas API.
GET /v1/instances/{instance_id}/console/output retorna o que o convidado escreveu para o console serial durante o atual boot: um fstab ruim, um kernel errado, uma falha do cloud-init.Nada precisa ser instalado no guest, e ele funciona em uma instância parada — que é exatamente quando você precisa dele.max_bytes é um limite que você pode diminuir, não aumentar: o máximo é 65536 e valores maiores são fixados a ele. Quando a transcrição é mais longa do que o que você pediu, seu início é descartado e truncated é true. O fim é sempre mantido.A transcrição é redefinida a cada inicialização, então a última transcrição de um convidado que falhou desaparece quando ele reinicia — leia-a antes de reiniciar. Uma instância que nunca foi inicializada retorna uma saída vazia, não um erro.Requer compute:GetConsoleOutput.
GET /v1/instances/{instance_id}/console/screenshot retorna uma imagem fixa, normalmente image/png.Esta é a contraparte para tudo o que uma transcrição serial não pode alcançar: um convidado sentado em seu gerenciador de inicialização, em um prompt do GRUB, em pânico antes da inicialização serial, ou inicializado a partir de uma imagem cujo kernel nunca foi instruído a fazer login na porta serial. Nesses casos, a transcrição está vazia e a tela contém a resposta completa.Uma imagem, não uma sessão — não há área de trabalho remota. A instância deve estar em execução; uma parada não tem exibição para capturar e responde 409 em vez de um quadro em branco.Requer compute:GetConsoleScreenshot.
GET /v1/instances/{instance_id}/console/serial atualiza para um WebSocket que carrega uma sessão interativa na porta serial da instância. Este é o caminho quando a rede está quebrada: um kernel errado, um disco cheio, um grupo de segurança que bloqueou você.Bytes brutos em quadros binários, em ambas as direções. É um terminal, não um protocolo — aponte um emulador de terminal para ele. A autenticação é feita na solicitação de atualização, assinada como qualquer outra chamada, portanto, não há uma etapa de token separada. Uma solicitação não-WebSocket responde 426.backlog_bytes reproduz a saída já escrita antes que a saída ao vivo comece, então anexar a um convidado silencioso mostra por que ele está silencioso em vez de uma tela vazia. Padrão 32768, máximo 65536, 0 desativa. O replay é a cauda da mesma gravação que /console/output serve, e a sessão ao vivo é a porta serial do convidado, então o join é marcado com uma linha \r\n--- live ---\r\n: history acima, o console ao vivo abaixo. Um guest que imprime no instante em que você se conecta pode perder alguns bytes nessa linha; um guest silencioso — para o qual existe o case replay — é reproduzido exatamente.Uma sessão por instância: abrir uma segunda desconecta a primeira, em vez de intercalar as teclas de duas pessoas. Uma sessão termina após 15 minutos de inatividade, ou 4 horas, independentemente, e o close frame diz qual.Requer compute:StartSerialConsole, e a instância a ser executada.
Isso o leva ao prompt de login do convidado. Não é um backdoor — as credenciais do convidado ainda são necessárias, e nada aqui concede acesso além do que o próprio convidado permite.