Go 1.16 ahora está disponible en versión de vista previa.

Entorno de ejecución de Go 1.12+

El entorno de ejecución de Go 1.12+ es la pila de software responsable de instalar el código de tu servicio web y sus dependencias, además de ejecutar tu servicio.

El entorno de ejecución de Go 1.12+ para App Engine en el entorno estándar se declara en el archivo app.yaml:

runtime: go115  # or another supported version

Versión de Go

El entorno de ejecución de Go 1.12+ es compatible con las siguientes versiones principales: Go 1.12, Go 1.13, Go 1.14, Go 1.15 y Go 1.16 (vista previa). La app usa la última versión estable que se especifica en tu archivo app.yaml. App Engine se actualiza de forma automática a nuevas revisiones de parches; sin embargo, no se actualizará automáticamente ante una nueva versión principal.

Por ejemplo, tu aplicación puede estar implementada en la versión secundaria Go 1.13.1 y actualizarse automáticamente a la versión 1.13.2 en una implementación posterior, pero no se actualizará de forma automática a la versión principal Go 1.14.

Dependencias

Para obtener más información sobre la declaración y administración de dependencias, consulta Especifica dependencias.

Variables de entorno

El entorno de ejecución configura las siguientes variables del entorno:

Variable del entorno Descripción
GAE_APPLICATION ID de tu aplicación de App Engine. Este ID tiene el prefijo “region code~”, como “e~”, para aplicaciones implementadas en Europa.
GAE_DEPLOYMENT_ID ID de la implementación actual.
GAE_ENV Entorno de App Engine. Se define en standard.
GAE_INSTANCE ID de la instancia en la que se está ejecutando tu servicio.
GAE_MEMORY_MB Cantidad de memoria disponible para el proceso de la aplicación, en MB.
GAE_RUNTIME Entorno de ejecución especificado en el archivo app.yaml.
GAE_SERVICE Nombre de servicio especificado en el archivo app.yaml. Si no se especifica un nombre de servicio, se asigna default.
GAE_VERSION Etiqueta de la versión actual de tu servicio.
GOOGLE_CLOUD_PROJECT ID del proyecto de Cloud asociado a tu aplicación.
PORT Puerto que recibe las solicitudes HTTP.

Puedes definir variables de entorno adicionales en tu archivo app.yaml, pero los valores anteriores no se pueden anular.

Proxies HTTPS y de reenvío

App Engine finaliza las conexiones HTTPS en el balanceador de cargas y reenvía las solicitudes a tu aplicación. Algunas aplicaciones deben determinar la IP y el protocolo de la solicitud original. La dirección IP del usuario está disponible en el encabezado X-Forwarded-For estándar. Las aplicaciones que necesitan esta información deben configurar sus frameworks web para que confíen en el proxy.

Sistema de archivos

El entorno de ejecución incluye un directorio /tmp que admite escritura, y todos los demás directorios tienen acceso de solo lectura. Escribir en /tmp ocupa memoria del sistema. Para obtener más información, consulta la documentación de TempDir y TempFile.

Servidor de metadatos

Cada instancia de tu aplicación puede usar el servidor de metadatos de App Engine para consultar información acerca de la instancia y de tu proyecto.

Puedes acceder al servidor de metadatos a través de los extremos siguientes:

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

La siguiente tabla enumera los extremos en los que puedes realizar solicitudes HTTP para metadatos específicos:

Extremo de metadatos Descripción
/computeMetadata/v1/project/numeric-project-id El número de proyecto asignado a tu proyecto.
/computeMetadata/v1/project/project-id El ID del proyecto asignado a tu proyecto.
/computeMetadata/v1/instance/zone La zona en la que se está ejecutando la instancia.
/computeMetadata/v1/instance/service-accounts/default/aliases
/computeMetadata/v1/instance/service-accounts/default/email El correo electrónico de la cuenta de servicio predeterminada asignado a tu proyecto.
/computeMetadata/v1/instance/service-accounts/default/ Enumera todas las cuentas de servicio predeterminadas para tu proyecto.
/computeMetadata/v1/instance/service-accounts/default/scopes Enumera todos los alcances compatibles para las cuentas de servicio predeterminadas.
/computeMetadata/v1/instance/service-accounts/default/token Muestra el token de autenticación que puede usarse para autenticar tu aplicación en otras API de Google Cloud.

Por ejemplo, para recuperar tu ID del proyecto, envía una solicitud a http://metadata.google.internal/computeMetadata/v1/project/project-id.