Configura las variables de entorno (1ª gen.)
Puedes implementar pares clave-valor arbitrarios junto con una función de Cloud Run. Estos pares están disponibles para tu función, ya sea como variables de entorno literales, a las que puede acceder el código en el entorno de ejecución, o como información de configuración para los buildpacks de Google Cloud.
Las variables de entorno están vinculadas a una sola función y no son visibles para otras en tu proyecto de Google Cloud . Cada variable se almacena en el backend de Cloud Run Functions y existen dentro del mismo ciclo de vida de la función a la que están vinculadas.
Puedes agregar o quitar variables de entorno de ejecución con Google Cloud CLI o la consola de Google Cloud .
Configura variables de entorno de ejecución
Usa estos métodos para establecer variables nuevas o reemplazar por completo las existentes. Para hacer cambios aditivos, usa el proceso de actualización que se describe en la siguiente sección.
gcloud
Para configurar una variable de entorno de ejecución con Google Cloud CLI,
usa la marca --set-env-vars en el momento de la implementación:
gcloud functions deploy --no-gen2 FUNCTION_NAME --set-env-vars FOO=bar FLAGS ...
También puedes configurar una serie de variables de entorno de ejecución con una lista separada por comas:
gcloud functions deploy --no-gen2 FUNCTION_NAME --set-env-vars FOO=bar,BAZ=boo FLAGS...
Si deseas almacenar la configuración en un archivo (p. ej., en el control
de fuente), puedes usar un archivo YAML junto con la marca --env-vars-file:
gcloud functions deploy --no-gen2 FUNCTION_NAME --env-vars-file .env.yaml FLAGS...
En el ejemplo anterior, el contenido del archivo .env.yaml es el siguiente:
FOO: bar
BAZ: boo
En los ejemplos anteriores, FLAGS... se refiere a otras opciones que pasas durante la implementación de la función. Para obtener una referencia completa
del comando deploy, consulta gcloud functions deploy.
IU de la consola de Google Cloud
Puedes configurar las variables de entorno de ejecución durante la creación de funciones en la consola de Google Cloud :
Abre la página de descripción general de Functions en la consola de Google Cloud :
Ve a la página de descripción general de Cloud Run Functions.
Haz clic en Crear función.
Completa los campos obligatorios para la función.
Abre la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad.
Selecciona la pestaña Entorno de ejecución.
En la sección Variables de entorno de ejecución, haz clic en Agregar variable y agrega el nombre y el valor.
Para obtener instrucciones sobre cómo agregar variables de entorno a una función existente, consulta Actualiza variables de entorno de ejecución.
Actualiza variables de entorno de ejecución
También puedes actualizar las variables de entorno de ejecución para las funciones existentes. Este es un enfoque no destructivo que modifica o agrega variables de entorno de ejecución, pero no las borra.
gcloud
Para actualizar una variable con Google Cloud CLI, usa la
marca --update-env-vars en el momento de la implementación:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-env-vars FOO=bar
También puedes actualizar múltiples variables de entorno de ejecución con una lista separada por comas:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-env-vars FOO=bar,BAZ=boo
IU de la consola de Google Cloud
Para actualizar las variables de entorno de ejecución con la consola de Google Cloud , sigue estos pasos:
Abre la página de descripción general de Functions en la consola de Google Cloud :
Ve a la página de descripción general de Cloud Run Functions.
Haz clic en una función existente para ir a la página de detalles.
Haz clic en Editar.
Abre la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad.
Selecciona la pestaña Entorno de ejecución.
Realiza las modificaciones en la sección Variables de entorno de ejecución.
Borra variables de entorno de ejecución
gcloud
Si deseas quitar variables de entorno de ejecución de forma selectiva, puedes usar la marca --remove-env-vars en el momento de la implementación:
gcloud functions deploy FUNCTION_NAME --no-gen2 --remove-env-vars FOO,BAZ
Como alternativa, puedes borrar todas las variables de entorno de ejecución configuradas con anterioridad
con la marca --clear-env-vars:
gcloud functions deploy FUNCTION_NAME --no-gen2 --clear-env-vars
IU de la consola de Google Cloud
Para borrar las variables de entorno de ejecución con la consola de Google Cloud , haz lo siguiente:
Abre la página de descripción general de Functions en la consola de Google Cloud :
Ve a la página de descripción general de Cloud Run Functions.
Haz clic en una función existente para ir a la página de detalles.
Haz clic en Editar.
Abre la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad.
Selecciona la pestaña Entorno de ejecución.
En la sección Variables de entorno de ejecución, haz clic en el ícono de la papelera junto al par clave-valor para borrarlo.
Variables de entorno de ejecución establecidas de forma automática
En esta sección, se enumeran las variables de entorno de ejecución que se configuran de forma automática.
| 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. |
gcloud functions deploy envVarMemory \
--no-gen2 \
--runtime nodejs10 \
--set-env-vars FUNCTION_MEMORY_MB=2Gi \
--memory 2Gi \
--trigger-http
Configura y recupera variables de entorno de ejecución: un ejemplo
Configura la variable de entorno de ejecución:
Node.js
gcloud functions deploy envVar \ --runtime nodejs22 \ --set-env-vars FOO=bar \ --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una
versión compatible de Node.js para ejecutar
la función.
Python
gcloud functions deploy env_vars \ --runtime python312 \ --set-env-vars FOO=bar \ --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de
una versión compatible de Python para
ejecutar la función.
Go
gcloud functions deploy EnvVar \ --runtime go121 \ --set-env-vars FOO=bar \ --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una
versión compatible de Go para ejecutar
la función.
Java
gcloud functions deploy java-envVar-function \ --entry-point functions.EnvVars \ --runtime java17 \ --memory 512MB \ --set-env-vars FOO=bar \ --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de
una versión compatible de Java para
ejecutar la función.
C#
gcloud functions deploy csharp-envVar-function \ --entry-point EnvironmentVariables.Function \ --runtime dotnet6 \ --set-env-vars FOO=bar \ --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de
una versión compatible de .NET para
ejecutar tu función.
Ruby
gcloud functions deploy env_vars --runtime ruby33 \ --set-env-vars FOO=bar \ --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de
una versión compatible de Ruby para
ejecutar la función.
PHP
gcloud functions deploy envVar --runtime php82 \ --set-env-vars FOO=bar \ --trigger-http
Usa la marca --runtime
para especificar el ID del entorno de ejecución de una
versión compatible de PHP para ejecutar
la función.
En el entorno de ejecución, accede a las variables de manera programática:
Node.js
En Node.js, usa la propiedad process.env para acceder a las variables de entorno de ejecución:
Python
En Python, usa os.environ para acceder a las variables de entorno de ejecución:
Go
En Go, usa os.Getenv() para acceder a las variables de entorno de ejecución:
Java
En Java, usa System.getenv para acceder a las variables de entorno de ejecución:
C#
En el entorno de ejecución, se puede acceder a las variables de entorno conEnvironment.GetEnvironmentVariable en C#:
using Google.Cloud.Functions.Framework; using Microsoft.AspNetCore.Http; using System; using System.Threading.Tasks; namespace EnvironmentVariables; public class Function : IHttpFunction { public async Task HandleAsync(HttpContext context) { string foo = Environment.GetEnvironmentVariable("FOO") ?? "Specified environment variable is not set."; await context.Response.WriteAsync(foo, context.RequestAborted); } }
Ruby
En el entorno de ejecución, se puede acceder a las variables de entorno conENV en C#:
PHP
En el entorno de ejecución, se puede acceder a las variables de entorno con la funcióngetenv de PHP:
use Psr\Http\Message\ServerRequestInterface; function envVar(ServerRequestInterface $request): string { return getenv('FOO') . PHP_EOL; }
Usa variables de entorno de compilación
También puedes configurar variables de entorno de compilación para entornos de ejecución que admitan paquetes de compilación.
Las variables de entorno de compilación son pares clave-valor implementados junto con una función que te permite pasar la información de configuración a los buildpacks. Por ejemplo, es posible que quieras personalizar las opciones del compilador. Puedes agregar o quitar estas variables de entorno de compilación con Google Cloud CLI o la IU de la consola de Google Cloud .
Configura variables de entorno de compilación
Usa estos métodos para establecer variables nuevas o reemplazar por completo las
existentes. Para hacer cambios adicionales, usa el proceso de actualización (la
marca --update-build-env-vars en gcloud) que se describe en la siguiente sección.
gcloud
Para configurar una variable con Google Cloud CLI, usa la
marca --set-build-env-vars en el momento de la implementación:
gcloud beta functions deploy FUNCTION_NAME --no-gen2 --set-build-env-vars FOO=bar FLAGS...
También puedes configurar múltiples variables de entorno de compilación con una lista separada por comas:
gcloud functions deploy FUNCTION_NAME --no-gen2 --set-build-env-vars FOO=bar,BAZ=boo FLAGS...
Si deseas almacenar la configuración en un archivo (p. ej., en el control de fuente),
puedes usar un archivo YAML junto con la marca --build-env-vars-file:
gcloud functions deploy FUNCTION_NAME --no-gen2 --build-env-vars-file FILE_NAME.yaml FLAGS...
En el ejemplo anterior, el contenido del archivo *.yaml es el siguiente:
FOO: bar
BAZ: boo
En los ejemplos anteriores, FLAGS... hace referencia a otras opciones que pasas durante la implementación de la función. Para obtener una referencia completa
del comando deploy, consulta gcloud beta functions deploy.
IU de la consola de Google Cloud
También puedes configurar variables de entorno de compilación durante la creación de funciones en la consola de Google Cloud .
Abre la página de descripción general de Functions en la consola de Google Cloud :
Ve a la página de descripción general de Cloud Run Functions.
Haz clic en Crear función.
Completa los campos obligatorios para la función.
Abre la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad.
Selecciona la pestaña Compilar.
En la sección Variables de entorno de compilación, haz clic en Agregar variable y agrega el nombre y el valor.
Actualiza variables de entorno de compilación
También puedes actualizar las variables de entorno de compilación para las funciones existentes. Este es un enfoque no destructivo que modifica o agrega variables de entorno de compilación, pero no las borra.
gcloud
Para configurar una variable con Google Cloud CLI, usa la
marca --update-build-env-vars en el momento de la implementación:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-build-env-vars FOO=bar
También puedes actualizar múltiples variables de entorno de compilación con una lista separada por comas:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-build-env-vars FOO=bar,BAZ=boo
IU de la consola de Google Cloud
Para actualizar las variables de entorno de compilación con la consola de Google Cloud , haz lo siguiente:
Abre la página de descripción general de Functions en la consola de Google Cloud :
Ve a la página de descripción general de Cloud Run Functions.
Haz clic en una función existente para ir a la página de detalles.
Haz clic en Editar.
Abre la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad.
Selecciona la pestaña Compilar.
Realiza las modificaciones en la sección Variables de entorno de compilación.
Borra variables de entorno de compilación
gcloud
Si deseas quitar variables de entorno de compilación de forma selectiva, puedes usar la marca --remove-build-env-vars en el momento de la implementación:
gcloud functions deploy FUNCTION_NAME --no-gen2 --remove-build-env-vars FOO,BAZ
Como alternativa, puedes borrar todas las variables de entorno de compilación ya establecidas con la
marca --clear-build-env-vars:
gcloud functions deploy FUNCTION_NAME --no-gen2 --clear-build-env-vars
IU de la consola de Google Cloud
Para borrar variables de entorno de compilación con la consola de Google Cloud , haz lo siguiente:
Abre la página de descripción general de Functions en la consola de Google Cloud :
Ve a la página de descripción general de Cloud Run Functions.
Haz clic en una función existente para ir a la página de detalles.
Haz clic en Editar.
Abre la sección Configuración del entorno de ejecución, la compilación, las conexiones y la seguridad.
Selecciona la pestaña Compilar.
En la sección Variables de entorno de compilación, haz clic en el ícono de la papelera junto al par clave-valor para borrarlo.
Ciclo de vida de la variable
Todas las variables de entorno están vinculadas a una implementación de una función de Cloud Run Function, y solo se pueden configurar o cambiar con una implementación. Si por algún motivo una implementación falla, cualquier cambio en las variables de entorno no se aplicará. Los cambios en las variables de entorno requieren una implementación exitosa.
Prácticas recomendadas y variables de entorno reservadas
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 enumeran en Variables de entorno establecidas de forma automática) 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.
Por último, no puedes usar las siguientes variables de entorno:
| Clave | Descripción |
|---|---|
| Vacía ('') | Las claves no pueden ser una string 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
La cantidad total de bytes que usan los nombres y valores de las variables 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, se pueden definir hasta 100 variables, con la string de definición foo=bar limitada a 64 KiB.
Administra secretos
Las variables de entorno se pueden usar para la configuración de la función, pero no se recomiendan como una forma de almacenar secretos como las credenciales de la base de datos o las claves de API. Estos valores más 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. No se recomienda almacenar credenciales confidenciales en archivos YAML, secuencias de comandos de implementación o bajo el control de la fuente.
Para almacenar secretos, te recomendamos que uses Secret Manager. Si deseas configurar Cloud Run Functions para acceder a secretos almacenados en Secret Manager, consulta Configura secretos. Ten en cuenta que no hay una integración específica de Cloud Run Functions con Cloud KMS.
Portabilidad
Es posible que las variables de entorno que actualmente funcionan con tu función de Cloud Run no lo hagan 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,
la consola deGoogle Cloud te mostrará una advertencia cuando definas una variable que podría
tener problemas de portabilidad, pero no impedirá la implementación. Como regla general,
recomendamos que las claves de variables 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.