Entorno de ejecución de Go 1.11

El tiempo de ejecución de Go 1.11 es la pila de software encargada de instalar el código de tu servicio web y sus dependencias, así como de ejecutar tu servicio.

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

runtime: go111

Versión de Go

El entorno de ejecución de Go 1.11 usa la versión estable más reciente de Go 1.11. App Engine se actualiza automáticamente a las nuevas revisiones secundarias, pero no a la versión principal.

Por ejemplo, tu aplicación puede implementarse en Go 1.11.1 y actualizarse automáticamente a la versión 1.11.2 en una implementación posterior, pero no se actualizará automáticamente a Go 1.12.

Dependencias

Para obtener más información sobre cómo declarar y gestionar dependencias, consulta Especificar dependencias.

Variables de entorno

El tiempo de ejecución define las siguientes variables de entorno:

Variable de entorno Descripción
GAE_APPLICATION El ID de tu aplicación de App Engine. Este ID tiene el prefijo "region code~", como "e~" en el caso de las aplicaciones desplegadas en Europa.
GAE_DEPLOYMENT_ID ID de la implementación actual.
GAE_ENV El entorno de App Engine. Su valor debe ser standard.
GAE_INSTANCE El 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 El tiempo de ejecución especificado en el archivo app.yaml.
GAE_SERVICE El nombre del servicio especificado en el archivo app.yaml. Si no se especifica ningún nombre de servicio, se le asigna el valor default.
GAE_VERSION La etiqueta de la versión actual de tu servicio.
GOOGLE_CLOUD_PROJECT El ID de proyecto Google Cloud asociado a tu aplicación.
PORT El puerto que recibe solicitudes HTTP.

Puedes definir variables de entorno adicionales en el 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 carga y reenvía las solicitudes a tu aplicación. Algunas aplicaciones necesitan determinar la IP y el protocolo de la solicitud original. La dirección IP del usuario está disponible en el encabezado estándar X-Forwarded-For. Las aplicaciones que requieran esta información deben configurar su framework web para que confíe en el proxy.

Sistema de archivos

El tiempo de ejecución incluye un directorio /tmp con permiso de escritura, mientras que el resto de los 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 sobre la instancia y tu proyecto.

Puede acceder al servidor de metadatos a través de los siguientes endpoints:

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

Las solicitudes enviadas al servidor de metadatos deben incluir el encabezado de solicitud Metadata-Flavor: Google. Este encabezado indica que la solicitud se ha enviado para recuperar valores de metadatos.

En la siguiente tabla se enumeran los endpoints en los que puedes hacer solicitudes HTTP para obtener metadatos específicos:

Punto final 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 La dirección de correo de la cuenta de servicio predeterminada asignada a tu proyecto.
/computeMetadata/v1/instance/service-accounts/default/ Muestra todas las cuentas de servicio predeterminadas de tu proyecto.
/computeMetadata/v1/instance/service-accounts/default/scopes Enumera todos los ámbitos admitidos de las cuentas de servicio predeterminadas.
/computeMetadata/v1/instance/service-accounts/default/token Devuelve el token de autenticación que se puede usar para autenticar tu aplicación en otras APIs de Google Cloud.

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

Variables de entorno

El tiempo de ejecución define las siguientes variables de entorno:

Variable de entorno Descripción
GAE_APPLICATION El ID de tu aplicación de App Engine. Este ID tiene el prefijo "region code~", como "e~" en el caso de las aplicaciones desplegadas en Europa.
GAE_DEPLOYMENT_ID ID de la implementación actual.
GAE_ENV El entorno de App Engine. Su valor debe ser standard.
GAE_INSTANCE El 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 El tiempo de ejecución especificado en el archivo app.yaml.
GAE_SERVICE El nombre del servicio especificado en el archivo app.yaml. Si no se especifica ningún nombre de servicio, se le asigna el valor default.
GAE_VERSION La etiqueta de la versión actual de tu servicio.
GOOGLE_CLOUD_PROJECT El ID de proyecto Google Cloud asociado a tu aplicación.
PORT El puerto que recibe solicitudes HTTP.

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