Cuando configuras las variables de entorno, se insertan en el contenedor y tu código puede acceder a ellas. Además, se establecen como pares clave-valor.
Nombres reservados
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 configurarlo tú mismo.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y, luego, implementar los servicios de Cloud Run, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Desarrollador de Cloud Run (
roles/run.developer
) en el servicio 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 Roles de IAM de Cloud Run y Permisos de IAM de Cloud Run. Si tu servicio de Cloud Run interactúa con las APIs de Google Cloud, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información acerca de cómo otorgar roles, consulta Permisos de implementación y Administra el acceso.
Configura las variables de entorno
Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.
Puedes configurar variables de entorno mediante la consola de Google Cloud, la línea de comandos de gcloud o un archivo YAML cuando creas un servicio nuevo o implementas una revisión nueva:
Console
En la consola de Google Cloud ve a Cloud Run:
Haz clic en Implementar contenedor y selecciona Servicio para configurar un servicio nuevo. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en implementar y editar la nueva revisión.
Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedores, volúmenes, Herramientas de redes y seguridad para expandir la página de configuración del servicio.
Haz clic en la pestaña Contenedor.
- Puedes hacer lo siguiente:
- Si quieres agregar una variable, haz clic en Agregar variable y especifica el nombre que deseas para la variable y su valor en los cuadros de texto Nombre y Valor.
- Si deseas cambiar el valor de una variable, reemplaza el valor actual en el cuadro de texto Value (Valor) por el que deseas.
- Si quitas una o más variables de entorno, coloca el cursor a la izquierda del cuadro de texto Value (Valor) de la variable que deseas quitar para que se muestre el ícono de la Papelera, y haz clic en este.
- Puedes hacer lo siguiente:
Haz clic en Crear o Implementar.
gcloud
Para configurar, actualizar o quitar variables de entorno de un servicio existente, usa el comando gcloud run services update. Puedes usar cualquiera de las siguientes marcas, según sea necesario:
Puedes especificar variables de entorno mientras implementas un servicio o actualizarlas después de crear un servicio:
gcloud run deploy [SERVICE] --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2 gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
- Reemplaza SERVICE por el nombre de tu servicio.
- Reemplaza KEY1=VALUE1,KEY2=VALUE2 por la lista separada por comas de los nombres de las variables que deseas y sus valores.
- Reemplaza IMAGE_URL por una referencia a la imagen de contenedor, como
us-docker.pkg.dev/cloudrun/container/hello:latest
. Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
YAML
Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza los atributos
name
yvalue
en el atributoenv
encontainers:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
Reemplazar
- SERVICE por el nombre del servicio de Cloud Run
- IMAGE_URL por una referencia a la imagen del contenedor, como
us-docker.pkg.dev/cloudrun/container/hello:latest
Si usas Artifact Registry, el repositorio REPO_NAME debe estar creado. La URL tiene el formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - KEY-1, VALUE-1 por la variable de entorno y el valor. También, puedes agregar más variables y valores según lo desees
- REVISION por un nombre de revisión nuevo o bórralo (si está presente). Si proporcionas un nuevo nombre de revisión, debe cumplir con los siguientes criterios:
- Comienza con
SERVICE-
- Solo contiene letras minúsculas, números y
-
- No termina con
-
- No supera los 63 caracteres
- Comienza con
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
El siguiente recurso google_cloud_run_v2_service
especifica la variable de entorno foo
como bar
y la variable de entorno baz
como quux
. Actualiza las variables de entorno como desees según tus necesidades específicas:
Configura muchas variables de entorno
Si tienes demasiadas variables de entorno que no se pueden enumerar con facilidad en formato KEY1=VALUE1,KEY2=VALUE2
, también puedes repetir varias veces las marcas que se enumeraron antes:
[...] --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=..."
Configura variables de entorno predeterminadas en el contenedor
Puedes usar la sentencia ENV
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 servicio o trabajos
Si configuras una variable de entorno predeterminada en el contenedor y, también configuras una variable de entorno con el mismo nombre en el servicio de Cloud Run o el trabajo, el valor establecido en el servicio tiene prioridad.
Visualiza la configuración de las variables de entorno
Para ver la configuración actual de las variables de entorno de tu servicio de Cloud Run, sigue estos pasos:
Console
En la consola de Google Cloud ve a Cloud Run:
Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.
Haz clic en la pestaña Revisiones.
En el panel de detalles a la derecha, la configuración de variables de entorno aparece en la pestaña Contenedor.
gcloud
Usa el siguiente comando:
gcloud run services describe SERVICE
Ubica la configuración de las variables de entorno en la configuración que se muestra.
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 establecer la configuración de Buildpack. Para obtener detalles específicos del lenguaje, consulta la documentación de Buildpacks para lo siguiente: