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.