Go 1.11 Runtime Environment

O tempo de execução do Go 1.11 é a pilha de software responsável por instalar o código do seu serviço Web e as respetivas dependências, bem como executar o seu serviço.

O tempo de execução do Go 1.11 para o App Engine no ambiente padrão é declarado no ficheiro app.yaml:

runtime: go111

Versão Go

O ambiente de execução do Go 1.11 usa a versão estável mais recente do Go 1.11. O App Engine é atualizado automaticamente para novas revisões secundárias, mas não atualiza automaticamente a versão principal.

Por exemplo, a sua aplicação pode ser implementada no Go 1.11.1 e atualizada automaticamente para a versão 1.11.2 numa implementação posterior, mas não é atualizada automaticamente para o Go 1.12.

Dependências

Para mais informações sobre como declarar e gerir dependências, consulte o artigo Especificar dependências.

Variáveis de ambiente

As seguintes variáveis de ambiente são definidas pelo tempo de execução:

Variável de ambiente Descrição
GAE_APPLICATION O ID da sua aplicação do App Engine. Este ID tem o prefixo "region code~", como "e~" para aplicações implementadas na Europa.
GAE_DEPLOYMENT_ID O ID da implementação atual.
GAE_ENV O ambiente do App Engine. Definido como standard.
GAE_INSTANCE O ID da instância na qual o seu serviço está atualmente em execução.
GAE_MEMORY_MB A quantidade de memória disponível para o processo da aplicação, em MB.
GAE_RUNTIME O tempo de execução especificado no ficheiro app.yaml.
GAE_SERVICE O nome do serviço especificado no ficheiro app.yaml. Se não for especificado nenhum nome de serviço, este é definido como default.
GAE_VERSION A etiqueta da versão atual do seu serviço.
GOOGLE_CLOUD_PROJECT O Google Cloud ID do projeto associado à sua aplicação.
PORT A porta que recebe pedidos HTTP.

Pode definir variáveis de ambiente adicionais no ficheiro app.yaml, mas os valores acima não podem ser substituídos.

HTTPS e proxies de encaminhamento

O App Engine termina as ligações HTTPS no equilibrador de carga e encaminha os pedidos para a sua aplicação. Algumas aplicações precisam de determinar o IP e o protocolo do pedido original. O endereço IP do utilizador está disponível no cabeçalho X-Forwarded-For padrão. As aplicações que requerem estas informações devem configurar a respetiva framework Web para confiar no proxy.

Sistema de ficheiros

O tempo de execução inclui um diretório /tmp gravável, com todos os outros diretórios a terem acesso só de leitura. A escrita para /tmp ocupa memória do sistema. Para mais informações, consulte a documentação TempDir e TempFile.

Servidor de metadados

Cada instância da sua aplicação pode usar o servidor de metadados do App Engine para consultar informações sobre a instância e o seu projeto.

Pode aceder ao servidor de metadados através dos seguintes pontos finais:

  • http://metadata
  • http://metadata.google.internal

Os pedidos enviados para o servidor de metadados têm de incluir o cabeçalho do pedido Metadata-Flavor: Google. Este cabeçalho indica que o pedido foi enviado com a intenção de obter valores de metadados.

A tabela seguinte lista os pontos finais onde pode fazer pedidos HTTP para metadados específicos:

Ponto final de metadados Descrição
/computeMetadata/v1/project/numeric-project-id O número do projeto atribuído ao seu projeto.
/computeMetadata/v1/project/project-id O ID do projeto atribuído ao seu projeto.
/computeMetadata/v1/instance/zone A zona na qual a instância está a ser executada.
/computeMetadata/v1/instance/service-accounts/default/aliases
/computeMetadata/v1/instance/service-accounts/default/email O email da conta de serviço predefinido atribuído ao seu projeto.
/computeMetadata/v1/instance/service-accounts/default/ Apresenta todas as contas de serviço predefinidas do seu projeto.
/computeMetadata/v1/instance/service-accounts/default/scopes Lista todos os âmbitos suportados para as contas de serviço predefinidas.
/computeMetadata/v1/instance/service-accounts/default/token Devolve o token de autorização que pode ser usado para autenticar a sua aplicação noutras APIs Google Cloud.

Por exemplo, para obter o ID do projeto, envie um pedido para http://metadata.google.internal/computeMetadata/v1/project/project-id.

Variáveis de ambiente

As seguintes variáveis de ambiente são definidas pelo tempo de execução:

Variável de ambiente Descrição
GAE_APPLICATION O ID da sua aplicação do App Engine. Este ID tem o prefixo "region code~", como "e~" para aplicações implementadas na Europa.
GAE_DEPLOYMENT_ID O ID da implementação atual.
GAE_ENV O ambiente do App Engine. Definido como standard.
GAE_INSTANCE O ID da instância na qual o seu serviço está atualmente em execução.
GAE_MEMORY_MB A quantidade de memória disponível para o processo da aplicação, em MB.
GAE_RUNTIME O tempo de execução especificado no ficheiro app.yaml.
GAE_SERVICE O nome do serviço especificado no ficheiro app.yaml. Se não for especificado nenhum nome de serviço, este é definido como default.
GAE_VERSION A etiqueta da versão atual do seu serviço.
GOOGLE_CLOUD_PROJECT O Google Cloud ID do projeto associado à sua aplicação.
PORT A porta que recebe pedidos HTTP.

Pode definir variáveis de ambiente adicionais no seu ficheiro app.yaml, mas os valores acima não podem ser substituídos.