O ambiente de execução do Go é a pilha de software responsável por instalar o código e as dependências do aplicativo e executá-lo no ambiente flexível.
Versões do Go
O Go 1.22 usa buildpacks. Para ver a lista completa de versões do Go com suporte e a versão correspondente do Ubuntu, consulte a Programação de suporte ao ambiente de execução.
Para usar um versão compatível do Go:
Instale o
gcloud CLI
versão 420.0.0 ou posterior. É possível atualizar as ferramentas da CLI executando o comandogcloud components update
. Para conferir a versão instalada, execute o comandogcloud version
.O Go recomenda o uso de um arquivo
go.mod
para gerenciar dependências. Para instalar dependências durante a implantação, inclua um arquivogo.mod
na mesma pasta que o arquivoapp.yaml
.Por exemplo, a estrutura de pastas do aplicativo com
go.mod
precisa representar:<application-root>/ --> app.yaml --> go.mod --> Other source files used in your application.
Inclua as configurações
runtime_config
eoperating_system
no arquivoapp.yaml
para especificar um sistema operacional.Como alternativa, é possível especificar uma versão de ambiente de execução incluindo a configuração
runtime_version
emapp.yaml
. Por padrão, a versão mais recente do Go será usada se a configuraçãoruntime_version
não for especificada.
Exemplos
Para especificar o Go 1.22 no Ubuntu 22, siga as etapas a seguir:
runtime: go env: flex runtime_config: operating_system: "ubuntu22" runtime_version: "1.22"
Para especificar a versão mais recente compatível do Go no Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22"
O app usa a versão estável
mais recente especificada no arquivo app.yaml
. O App Engine é atualizado automaticamente para novas revisões de patch, mas não atualiza automaticamente a versão principal.
Por exemplo, seu aplicativo pode ser implantado no Go 1.18.10 e, posteriormente, pode ser atualizado automaticamente para o Go 1.18.11, mas não será atualizado automaticamente para a versão principal do Go 1.19.
Selecionar Go 1.22 no arquivo app.yaml
resulta na
versão patch
mais recente do Go 1.22 disponível.
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu22"
runtime_version: "1.22"
Consulte a referência app.yaml
para mais informações.
Versões anteriores do ambiente de execução
Para usar a versão 1.15 e anterior do Go, especifique uma versão em
runtime
usando o formato go1.x
no arquivo app.yaml
. Exemplo:
runtime: go1.14 env: flex
Se nenhuma versão for especificada, a versão padrão do go1.11
será selecionada
automaticamente.
O app usa a versão estável
mais recente especificada no arquivo app.yaml
. O App Engine é atualizado automaticamente para novas revisões de patch, mas não atualiza automaticamente a versão principal.
Por exemplo, seu aplicativo pode ser implantado no Go 1.14.10 e, posteriormente, pode ser atualizado automaticamente para o Go 1.14.11, mas não será atualizado automaticamente para a versão principal do Go 1.15.
Escolher a versão go1.15
do ambiente de execução Go no arquivo app.yaml
resulta
na versão mais recente disponível da 1.15, por exemplo, 1.15.15.
runtime: go1.15 env: flex
Suporte para outros ambientes de execução Go
Se você precisa usar uma versão do Go que não é compatível, crie um ambiente de execução personalizado e selecione uma imagem de base válida com a versão Go necessária.
Para imagens de base fornecidas pelo Google ou imagens de base do Docker Go, consulte Como criar ambientes de execução personalizados.
Importar pacotes
O código é compilado quando você implanta o aplicativo no App Engine. Quando você executa o comando de implantação, as dependências do app são coletadas primeiro do GOPATH
local e, em seguida, todas elas são enviadas para o servidor do build. Todas as dependências
não encontradas, como bibliotecas de terceiros, resultam em falhas da versão.
Para evitar falhas na versão e garantir que todas as dependências do app sejam implantadas com o código, você precisa testar localmente o app antes de implantá-lo.
Como ampliar o tempo de execução
Para instruções sobre como estender e personalizar o ambiente de execução do Go, leia o construtor do ambiente de execução do Go no GitHub (em inglês).
Servidor de metadados
Cada instância do aplicativo pode usar o servidor de metadados do Compute Engine para consultar informações sobre a instância, inclusive o nome do host, o endereço IP externo, o código da instância, os metadados personalizados e as informações da conta de serviço. Não é possível definir metadados personalizados para cada instância no App Engine. Em vez disso, defina metadados personalizados para o projeto e leia esses metadados a partir das instâncias do Engine e do Compute Engine.
Use o pacote
cloud.google.com/go/compute/metadata
para acessar o servidor de metadados.