Información acerca de las variables de entorno de Cloud Run

Puedes establecer variables de entorno arbitrarias para un servicio de Cloud Run. Cloud Run inserta estos pares clave-valor en el contenedor y los hace accesibles para tu código. También puedes usarlas para pasar información de configuración a los paquetes de compilación cuando implementes una función desde el código fuente.

Las variables de entorno están vinculadas a un solo servicio y no son visibles para otros servicios en tu proyecto de Google Cloud. Cada variable se almacena en el servicio implementado y existe dentro del mismo ciclo de vida que el servicio al que está vinculada.

Cantidad máxima de variables de entorno

Puedes establecer un máximo de 1,000 variables de entorno para un servicio de Cloud Run.

Ciclo de vida de la variable

Todas las variables de entorno están vinculadas a una implementación de un servicio. Solo puedes configurarlas o cambiarlas con una implementación. Si por algún motivo una implementación falla, no se aplicarán los cambios en las variables de entorno. Los cambios en las variables de entorno requieren una implementación exitosa.

Prácticas recomendadas

En la siguiente sección, se destacan algunas de las prácticas recomendadas para configurar las variables de entorno.

Administra secretos

Puedes usar variables de entorno para la configuración del servicio, pero no las recomendamos como una forma de almacenar secretos, como las credenciales de la base de datos o las claves de API. Los valores sensibles deben almacenarse fuera de tu código fuente y de las variables de entorno. Algunos entornos de ejecución o el uso de algunos frameworks pueden dar como resultado que el contenido de las variables de entorno se envíe a los registros. Tampoco recomendamos almacenar credenciales confidenciales en archivos YAML, secuencias de comandos de implementación ni en sistemas de control de código fuente. Recuerda que las variables de entorno son visibles para cualquier persona con permisos de visualizador de proyecto o superior.

Para almacenar secretos, te recomendamos que uses Secret Manager. Si deseas configurar servicios para acceder a los secretos almacenados en Secret Manager, consulta Configura secretos.

No hay una integración específica de Cloud Run con Cloud KMS.

Variables de entorno reservadas

Las variables de entorno definidas en el contrato de entorno de ejecución del contenedor están reservadas y no se pueden configurar. En particular, Cloud Run inserta la variable de entorno PORT dentro de tu contenedor. No debes configurarla tú mismo.

Variables de entorno reservadas para funciones

Cloud Run configura las siguientes variables de entorno de ejecución automáticamente cuando se implementan funciones:

Clave Descripción
FUNCTION_TARGET Reservado: La función a ejecutar.
FUNCTION_SIGNATURE_TYPE Reservado: El tipo de la función: http para funciones de HTTP y event para funciones controladas por eventos.
K_SERVICE Reservado: El nombre del recurso de la función
K_REVISION Reservado: El identificador de versión de la función
PORT Reservado: El puerto a través del cual se invoca la función

Algunas variables de entorno adicionales se configuran automáticamente según el entorno de ejecución que usa tu función. Estas se basan en el sistema operativo del entorno de ejecución, por ejemplo, DEBIAN_FRONTEND, SHLVL o PATH, y el entorno de ejecución del lenguaje, por ejemplo, NODE_ENV, VIRTUAL_ENV o GOPATH.

Es posible que las variables de entorno que proporciona el entorno, además de las que se configuran automáticamente, cambien en las próximas versiones del entorno de ejecución. Como práctica recomendada, te sugerimos que no dependas de ninguna variable de entorno que no hayas configurado explícitamente ni la modifiques.

La modificación de las variables de entorno que proporciona el entorno puede generar resultados impredecibles. Los intentos de modificar dichas variables de entorno podrían bloquearse o, peor aún, podrían generar consecuencias no deseadas, como funciones que no pueden iniciarse. Como recomendación, considera colocar una clave única como prefijo a las variables de entorno para evitar conflictos.

Además, no puedes usar las siguientes variables de entorno:

Clave Descripción
Vacía ('') Las claves no pueden ser una cadena vacía.
= Las claves no pueden contener el carácter "=".
X_GOOGLE_ Las claves no pueden contener el prefijo X_GOOGLE_.

Límites de tamaño de las variables para las funciones

La cantidad total de bytes que usan los nombres y valores de las variable de entorno de ejecución para una función individual está limitada a 32 KiB. No hay límites específicos para claves o valores individuales dentro de esta capacidad general.

Para las variables de entorno de compilación, puedes definir hasta 100 variables, con la cadena de definición foo=bar limitada a 64 KiB.

Usa variables de entorno portátiles en funciones

Es posible que las variables de entorno que funcionan con tus funciones no funcionen con un entorno de ejecución diferente, como en un lenguaje diferente o con ciertas herramientas o bibliotecas. También es posible que una plataforma diferente no las acepte.

Puedes evitar estos problemas si sigues el estándar POSIX para variables de entorno. Si usas la consola de Google Cloud para editar variables, esta plataforma te mostrará una advertencia cuando definas una variable que pudiera tener problemas de portabilidad (pero no evitará la implementación). Recomendamos que las claves de variable de entorno tengan solo letras mayúsculas, dígitos y <underscore> (_), como se define en el Grupo de caracteres portátil, y que no comiencen con un dígito.