O tempo de execução do Go é a pilha de software responsável por instalar o código e as dependências da sua aplicação e, em seguida, executar essa aplicação no ambiente flexível.
Versões do Go
O Go 1.25 usa buildpacks. Para ver a lista completa das versões do Go suportadas e a respetiva versão do Ubuntu, consulte o cronograma de suporte de tempo de execução.
Para usar uma versão do Go suportada, tem de:
Instale a versão
gcloud CLI
420.0.0 ou posterior. Pode atualizar as ferramentas da CLI executando o comandogcloud components update
. Para ver a versão instalada, pode executar o comandogcloud version
.O Go recomenda que use um ficheiro
go.mod
para gerir dependências. Para instalar dependências durante a implementação, inclua um ficheirogo.mod
na mesma pasta que o ficheiroapp.yaml
.Por exemplo, a estrutura de pastas da sua app com
go.mod
tem de representar:<application-root>/ --> app.yaml --> go.mod --> Other source files used in your application.
Inclua as definições
runtime_config
eoperating_system
no ficheiroapp.yaml
para especificar um sistema operativo.Opcionalmente, pode especificar uma versão do tempo de execução incluindo a definição
runtime_version
no seuapp.yaml
. Por predefinição, é usada a versão mais recente do Go se a definiçãoruntime_version
não for especificada.
Exemplos
Para especificar o Go 1.25 no Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22" runtime_version: "1.25"
Para especificar a versão do Go mais recente suportada no Ubuntu 22:
runtime: go env: flex runtime_config: operating_system: "ubuntu22"
A sua app usa a versão estável mais recente da versão especificada no ficheiro
app.yaml
. O App Engine é atualizado automaticamente para novas revisões de patches, mas
não atualiza automaticamente a versão principal.
Por exemplo, a sua aplicação pode ser implementada no Go 1.18.10 e, posteriormente, pode ser atualizada automaticamente para o Go 1.18.11, mas não é atualizada automaticamente para a versão principal Go 1.19.
Se escolher o Go 1.25 no ficheiro app.yaml
, vai ter acesso à versão patch
mais recente do Go 1.25 disponível.
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu22"
runtime_version: "1.25"
Consulte a referência app.yaml
para mais informações.
Versões de tempo de execução anteriores
Para usar o Go versão 1.15 e anterior, especifique uma versão na definição runtime
usando o formato go1.x
no seu ficheiro app.yaml
. Por exemplo:
runtime: go1.14 env: flex
Se não for especificada nenhuma versão, a versão predefinida de go1.11
é selecionada automaticamente.
A sua app usa a versão estável mais recente da versão especificada no ficheiro
app.yaml
. O App Engine é atualizado automaticamente para novas revisões de patches, mas
não atualiza automaticamente a versão principal.
Por exemplo, a sua aplicação pode ser implementada no Go 1.14.10 e, posteriormente, pode ser atualizada automaticamente para o Go 1.14.11, mas não é atualizada automaticamente para a versão principal Go 1.15.
Se escolher a versão de tempo de execução do Go go1.15
no ficheiro app.yaml
, vai ter acesso à versão mais recente da versão 1.15, por exemplo, 1.15.15.
runtime: go1.15 env: flex
Suporte para outros tempos de execução do Go
Se precisar de usar uma versão do Go que não seja suportada, pode criar um tempo de execução personalizado e selecionar uma imagem base válida com a versão do Go de que precisa.
Para imagens base fornecidas pela Google ou imagens base do Docker Go, consulte o artigo Criar tempos de execução personalizados.
Importe pacotes
O código é compilado quando implementa a app no App Engine. Quando
executa o comando de implementação, as dependências da sua app são primeiro recolhidas a partir do seu GOPATH
local e, em seguida, são todas enviadas para o servidor de compilação. Quaisquer dependências em falta, por exemplo, bibliotecas de terceiros, resultam em falhas de compilação.
Para evitar falhas de compilação e garantir que todas as dependências da sua app são implementadas com o seu código, deve testar a app localmente antes de a implementar.
Prolongar o tempo de funcionamento
Para obter instruções sobre como estender e personalizar o tempo de execução do Go, leia o criador do tempo de execução do Go no GitHub.
Servidor de metadados
Cada instância da sua aplicação pode usar o servidor de metadados do Compute Engine para consultar informações sobre a instância, incluindo o respetivo nome do anfitrião, endereço IP externo, ID da instância, metadados personalizados e informações da conta de serviço. O App Engine não lhe permite definir metadados personalizados para cada instância, mas pode definir metadados personalizados ao nível do projeto e lê-los a partir das instâncias do App Engine e do Compute Engine.
Use o pacote
cloud.google.com/go/compute/metadata
para aceder ao servidor de metadados.