O ambiente de execução do Go é a pilha de software responsável por instalar o código de serviço da Web e respectivas dependências, além de executar o serviço.
O ambiente de execução do Go para App Engine no ambiente padrão é
declarado no
arquivo app.yaml
:
runtime: goVERSION
Em que VERSION são os números de versão MAJOR
e MINOR
do Go. Por
exemplo, para usar a versão mais recente do Go, Go 1.23 (pré-lançamento), especifique
123
.
Para outras versões compatíveis do Go e a versão do Ubuntu correspondente à sua versão do Go, consulte a Programação de suporte do ambiente de execução.
Versão do Go
O ambiente de execução Go usa a versão estável mais recente
da versão especificada em seu arquivo app.yaml
. O App Engine é atualizado automaticamente com novas revisões de patch, mas isso não acontece com a versão principal.
Por exemplo, o aplicativo pode ser implantado na versão secundária Go 1.13.1 e atualizado automaticamente para a versão 1.13.2 em uma implantação posterior, mas não será atualizado automaticamente para a versão principal Go 1.14.
Dependências
Para ver mais informações sobre como declarar e gerenciar dependências, consulte Como especificar dependências.
Variáveis de ambiente
As seguintes variáveis de ambiente são definidas pelo ambiente de execução:
Variável de ambiente | Descrição |
---|---|
GAE_APPLICATION
|
O ID do aplicativo do App Engine. Esse ID tem o prefixo "region code~", como "e~" para aplicativos implantados na Europa. |
GAE_DEPLOYMENT_ID |
O ID da implantação atual. |
GAE_ENV |
O ambiente do App Engine. Defina como standard . |
GAE_INSTANCE |
O ID da instância em que o serviço é executado no momento. |
GAE_MEMORY_MB |
A quantidade de memória disponível para o processo do aplicativo em MB. |
GAE_RUNTIME |
O ambiente de execução especificado no seu arquivo app.yaml . |
GAE_SERVICE |
O nome do serviço especificado no seu arquivo app.yaml . Se nenhum nome de serviço for especificado, ele será definido como default . |
GAE_VERSION |
O rótulo da versão atual do serviço. |
GOOGLE_CLOUD_PROJECT |
O ID do projeto do Google Cloud associado ao aplicativo. |
PORT |
A porta que recebe solicitações HTTP. |
NODE_ENV (disponível apenas no ambiente de execução do Node.js) |
Definido como production quando o serviço for implantado. |
É possível definir outras variáveis de ambiente no arquivo app.yaml
, mas os valores acima não podem ser modificados, exceto para NODE_ENV
.
HTTPS e proxies de encaminhamento
O App Engine encerra as conexões HTTPS no balanceador de carga e encaminha as solicitações para o aplicativo. Em alguns aplicativos, é necessário determinar o protocolo e o IP de solicitação originais. O endereço IP do usuário está disponível no
cabeçalho X-Forwarded-For
padrão. Os aplicativos que necessitam dessa informação precisam configurar a biblioteca da Web para confiar no proxy.
Sistema de arquivos
O ambiente de execução inclui um diretório /tmp
gravável, e todos os outros diretórios
têm acesso somente de leitura. A gravação em /tmp
ocupa a memória do sistema. Para obter mais
informações, consulte as documentações
TempDir
e TempFile
.
Servidor de metadados
Cada instância do aplicativo pode usar o servidor de metadados do App Engine para consultar informações sobre a instância e o projeto.
É possível acessar o servidor de metadados por meio dos endpoints a seguir:
http://metadata
http://metadata.google.internal
As solicitações enviadas ao servidor de metadados precisam incluir o cabeçalho da solicitação
Metadata-Flavor: Google
. Esse cabeçalho indica que a solicitação foi enviada
para recuperar valores de metadados.
A tabela a seguir lista os endpoints em que é possível fazer solicitações HTTP para metadados específicos.
Endpoint de metadados | Descrição |
---|---|
/computeMetadata/v1/project/numeric-project-id |
Número do projeto atribuído ao seu projeto. |
/computeMetadata/v1/project/project-id |
ID do projeto atribuído ao seu projeto. |
/computeMetadata/v1/instance/region |
A região em que a instância está em execução. |
/computeMetadata/v1/instance/service-accounts/default/aliases |
|
/computeMetadata/v1/instance/service-accounts/default/email |
E-mail da conta de serviço padrão atribuído ao seu projeto. |
/computeMetadata/v1/instance/service-accounts/default/ |
Lista todas as contas de serviço padrão do seu projeto. |
/computeMetadata/v1/instance/service-accounts/default/scopes |
Lista todos os escopos compatíveis com as contas de serviço padrão. |
/computeMetadata/v1/instance/service-accounts/default/token |
Retorna o token de autenticação que pode ser usado para autenticar o aplicativo em outras Google Cloud APIs. |
Por exemplo, para recuperar o ID do projeto, envie uma solicitação para
http://metadata.google.internal/computeMetadata/v1/project/project-id
.