El tiempo de ejecución de Go es la pila de software encargada de instalar el código de tu aplicación y sus dependencias, y de ejecutarla en el entorno flexible.
Versiones de Go
Go 1.25 usa buildpacks. Para ver la lista completa de versiones de Go admitidas y sus versiones de Ubuntu correspondientes, consulta la programación de asistencia del tiempo de ejecución.
Para usar una versión de Go compatible, debes hacer lo siguiente:
Instala la versión 420.0.0 o una posterior de
gcloud CLI
. Puedes actualizar las herramientas de la CLI ejecutando el comandogcloud components update
. Para ver la versión instalada, puedes ejecutar el comandogcloud version
.Go recomienda usar un archivo
go.mod
para gestionar las dependencias. Para instalar las dependencias durante la implementación, incluye un archivogo.mod
en la misma carpeta que el archivoapp.yaml
.Por ejemplo, la estructura de carpetas de tu aplicación con
go.mod
debe representar lo siguiente:<application-root>/ --> app.yaml --> go.mod --> Other source files used in your application.
Incluya los ajustes
runtime_config
yoperating_system
en el archivoapp.yaml
para especificar un sistema operativo.También puedes especificar una versión del entorno de ejecución incluyendo el ajuste
runtime_version
en tuapp.yaml
. De forma predeterminada, se usa la versión más reciente de Go si no se especifica el ajusteruntime_version
.
Ejemplos
Para especificar Go 1.25 en Ubuntu 22, sigue estos pasos:
runtime: go env: flex runtime_config: operating_system: "ubuntu22" runtime_version: "1.25"
Para especificar la última versión compatible de Go en Ubuntu 22, haz lo siguiente:
runtime: go env: flex runtime_config: operating_system: "ubuntu22"
Tu aplicación usa la última versión estable de la versión especificada en el archivo app.yaml
. App Engine se actualiza automáticamente a las nuevas revisiones de parches, pero no actualiza automáticamente la versión principal.
Por ejemplo, tu aplicación puede estar desplegada en Go 1.18.10 y, más adelante, actualizarse automáticamente a Go 1.18.11, pero no se actualizará automáticamente a la versión principal Go 1.19.
Si eliges Go 1.25 en tu archivo app.yaml
, se usará la versión patch
más reciente de Go 1.25.
runtime: go
env: flex
runtime_config:
operating_system: "ubuntu22"
runtime_version: "1.25"
Consulta la referencia de app.yaml
para obtener más información.
Versiones anteriores del entorno de ejecución
Para usar Go 1.15 y versiones anteriores, especifica una versión en el ajuste runtime
con el formato go1.x
en el archivo app.yaml
. Por ejemplo:
runtime: go1.14 env: flex
Si no se especifica ninguna versión, se seleccionará automáticamente la versión predeterminada de go1.11
.
Tu aplicación usa la última versión estable de la versión especificada en el archivo app.yaml
. App Engine se actualiza automáticamente a las nuevas revisiones de parches, pero no actualiza automáticamente la versión principal.
Por ejemplo, tu aplicación podría desplegarse en Go 1.14.10 y, más adelante, actualizarse automáticamente a Go 1.14.11, pero no se actualizará automáticamente a la versión principal Go 1.15.
Si eliges la versión del tiempo de ejecución de Go go1.15
en tu archivo app.yaml
, se usará la versión más reciente de 1.15, por ejemplo, 1.15.15.
runtime: go1.15 env: flex
Compatibilidad con otros entornos de ejecución de Go
Si necesitas usar una versión de Go que no sea compatible, puedes crear un runtime personalizado y seleccionar una imagen base válida con la versión de Go que necesites.
Para obtener imágenes base proporcionadas por Google o imágenes base de Docker Go, consulta Crear tiempos de ejecución personalizados.
Importar paquetes
El código se compila cuando despliegas la aplicación en App Engine. Cuando ejecutas el comando de despliegue, primero se recogen las dependencias de tu aplicación de tu GOPATH
local y, a continuación, se envían todas al servidor de compilación. Si faltan dependencias (por ejemplo, bibliotecas de terceros), se producirán errores de compilación.
Para evitar errores de compilación y asegurarte de que todas las dependencias de tu aplicación se implementen con tu código, debes probar tu aplicación de forma local antes de implementarla.
Prolongar el tiempo de ejecución
Para obtener instrucciones sobre cómo ampliar y personalizar el tiempo de ejecución de Go, consulta el compilador del tiempo de ejecución de Go en GitHub.
Servidor de metadatos
Cada instancia de tu aplicación puede usar el servidor de metadatos de Compute Engine para consultar información sobre la instancia, como su nombre de host, su dirección IP externa, su ID de instancia, sus metadatos personalizados y la información de la cuenta de servicio. App Engine no te permite definir metadatos personalizados para cada instancia, pero puedes definir metadatos personalizados para todo el proyecto y leerlos desde tus instancias de App Engine y Compute Engine.
Usa el paquete
cloud.google.com/go/compute/metadata
para acceder al servidor de metadatos.