En esta página, se describe cómo configurar variables de entorno para tu instancia de Cloud Run.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y, luego, implementar las instancias de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Desarrollador de Cloud Run (
roles/run.developer) en la instancia de Cloud Run - Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la identidad del servicio
Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu instancia de Cloud Run interactúa con Google Cloud las APIs, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta permisos de implementación y administra el acceso.
Configura las variables de entorno
Puedes configurar variables de entorno para una instancia de Cloud Run con Google Cloud CLI o YAML:
gcloud
Para especificar variables de entorno mientras creas tu instancia, usa la
--set-env-vars marca:
gcloud beta run instances create INSTANCE --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
Reemplaza lo siguiente:
- INSTANCE: el nombre de tu instancia
IMAGE_URL: una referencia a la imagen del contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest.- KEY1=VALUE1,KEY2=VALUE2: la lista separada por comas de nombres y valores de variables
Para obtener más información sobre cómo configurar varias variables de entorno o escapar caracteres especiales, consulta Configura varias variables de entorno.
YAML
Si creas una instancia nueva, omite este paso. Si actualizas una instancia existente, descarga su configuración de YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
En el siguiente ejemplo, se incluye la configuración de YAML:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - env: - name: KEY value: VALUE - name: KEY2 value: VALUE2 image: IMAGE
Reemplaza lo siguiente:
- INSTANCE: el nombre de tu instancia de Cloud Run.
- KEY y VALUE: el nombre y los valores de las variables de entorno.
IMAGE_URL: una referencia a la imagen del contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest.
Crea o actualiza la instancia con el siguiente comando:
gcloud beta run instances replace instance.yaml
Configura variables de entorno predeterminadas en el contenedor
Puedes usar la ENV
sentencia en un Dockerfile a fin de establecer valores predeterminados para las variables de entorno:
ENV KEY1=VALUE1,KEY2=VALUE2
Orden de prioridad: Comparación entre contenedores y variables de instancia
Si configuras una variable de entorno predeterminada en el contenedor y, también configuras una variable de entorno con el mismo nombre en la instancia de Cloud Run, el valor establecido en la instancia tiene prioridad.
Configura varias variables de entorno
Puedes configurar varias variables de entorno con el archivo .env o la marca --set-env-vars.
Configura varias variables de entorno con el archivo .env
gcloud
Para especificar varias variables de entorno desde el archivo .env, ejecuta el siguiente comando:
gcloud beta run instances create INSTANCE --image IMAGE_URL --env-vars-file=ENV_FILE_PATH
Reemplaza lo siguiente:
- INSTANCE: el nombre de la instancia.
IMAGE_URL: una referencia a la imagen del contenedor, comous-docker.pkg.dev/cloudrun/container/hello:latest.- ENV_FILE_PATH: ruta de acceso al archivo
.env.
Configura varias variables de entorno con la marca --set-env-vars
Si tienes varias variables de entorno que no se pueden enumerar en formato KEY1=VALUE1,KEY2=VALUE2, puedes repetir varias veces la marca --set-env-vars:
[...] --set-env-vars "KEY1=VALUE1" \ --set-env-vars "KEY2=VALUE2" \ --set-env-vars "KEY3=VALUE3"
Caracteres de coma de escape
Debido a que el carácter de coma, se usa para dividir las variables de entorno, si la
variable de entorno contiene caracteres de coma como valores, debes
escapar esos delimitadores mediante la especificación de un
carácter delimitador diferente, por ejemplo, @:
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."
Actualiza variables de entorno
Puedes actualizar las variables de entorno de ejecución para las instancias existentes. Este es un enfoque no destructivo que modifica o agrega variables de entorno de ejecución, pero no las borra.
Puedes actualizar variables de entorno con Google Cloud CLI o YAML:
gcloud
Para actualizar las variables de entorno de una instancia existente, usa la
--update-env-vars
marca:
gcloud beta run instances update INSTANCE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
Reemplaza lo siguiente:
- INSTANCE: el nombre de tu instancia
- KEY1=VALUE1,KEY2=VALUE2: la lista separada por comas de nombres y valores de variables
YAML
Descarga la configuración YAML de la instancia:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Edita las variables de clave (nombre) y valor.
Actualiza la instancia con el siguiente comando:
gcloud beta run instances replace instance.yaml
Borra variables de entorno
gcloud
Para quitar variables de entorno de forma selectiva de una instancia existente, usa
la --remove-env-vars
marca:
gcloud beta run instances update INSTANCE --remove-env-vars KEY1,KEY2
Reemplaza lo siguiente:
- INSTANCE: el nombre de tu instancia
- KEY1,KEY2: la lista separada por comas de nombres de variables
Como alternativa, borra todas las variables de entorno configuradas previamente
con la --clear-env-vars
marca:
gcloud beta run instances update INSTANCE --clear-env-vars
Reemplaza INSTANCE por el nombre de tu instancia.
Código de muestra
Para ver una muestra de código que indica cómo acceder a las variables de entorno en tu código, consulta Cómo manejar la configuración sensible con Secret Manager en el instructivo de autenticación de usuarios finales.
¿Qué sigue?
Puedes usar variables de entorno para configurar una configuración de paquetes de compilación. Para obtener detalles específicos del lenguaje, consulta la documentación de los paquetes de compilación para lo siguiente: