Usa variables de entorno

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.

Configure las variables de entorno

Puedes establecer variables de entorno para trabajos o servicios de Cloud Run.

Para servicios de Cloud Run

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

  1. Ir a Cloud Run

  2. Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, en Edit and Deploy New Revision.

  3. Si configuras un servicio nuevo, completa la página de configuración del servicio inicial como desees y haz clic en Contenedor, herramientas de redes, seguridad para expandir la página de configuración del servicio.

  4. Haz clic en la pestaña Contenedor.

    imagen

    • 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.
  5. Haz clic en Crear o Implementar.

Línea de comandos

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. Cuando se usa Artifact Registry, la URL tiene el siguiente formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. .

YAML

Puedes descargar y ver las configuraciones del servicio existente mediante el comando gcloud run services describe --format export, que genera resultados limpios en formato YAML. Luego, puedes modificar los campos que se describen a continuación y subir el YAML modificado mediante el comando gcloud run services replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración, ejecuta el siguiente comando:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Actualiza los atributos name y value en el atributo env en containers::

    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

    Reemplaza los siguientes elementos:

    • 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 Cuando se usa Artifact Registry, la URL tiene el siguiente formato: REGION-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
  3. Reemplaza el servicio por la configuración nueva mediante el comando siguiente:

    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.

Agrega lo siguiente a un recurso google_cloud_run_service en la configuración de Terraform, en template.spec.containers. En el siguiente ejemplo, se establece la variable de entorno foo en bar y la variable de entorno baz en quux:

# Environment variables
# https://cloud.google.com/run/docs/configuring/environment-variables
env {
  name  = "foo"
  value = "bar"
}
env {
  name  = "baz"
  value = "quux"
}

Para trabajos de Cloud Run

A fin de establecer una variable de entorno para un trabajo de Cloud Run, sigue estos pasos:

Console

  1. Ir a Cloud Run

  2. Si quieres configurar un nuevo trabajo, haz clic en la pestaña Trabajos y completa la página de configuración de trabajo inicial como desees. Si quieres configurar un trabajo existente, haz clic en el trabajo y, luego, en Editar.

  3. Haz clic en Contenedor, variables y secretos, conexiones y seguridad para expandir la página de propiedades del trabajo.

  4. Haz clic en la pestaña Variables.

    imagen

    • 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.
  5. Haz clic en Crear o Actualizar.

Línea de comandos

Configura, actualiza o quita variables de entorno de un servicio existente mediante el comando gcloud run jobs update. Puedes usar cualquiera de las siguientes marcas, según sea necesario:

  • --set-env-vars
  • --update-env-vars
  • --remove-env-vars
  • --clear-env-vars

    Puedes especificar variables de entorno mientras creas un trabajo o cuando actualizas un trabajo:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2
    
    gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2
  • Reemplaza JOB_NAME por el nombre de tu trabajo.

  • 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/job:latest.

YAML

Descarga y visualiza la configuración del trabajo existente mediante el comando gcloud run jobs describe --format export, que genera resultados limpios en formato YAML. Luego, modifica los campos que se describen a continuación y sube el YAML modificado mediante el comando gcloud run jobs replace. Asegúrate de modificar los campos tal como se indica en la documentación.

  1. Para ver y descargar la configuración, ejecuta el siguiente comando:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
    1. Actualiza los atributos name y value en env como se muestra en containers::
    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE
                env:
                - name: KEY-1
                  value: VALUE-1
                - name: KEY-N
                  value: VALUE-N

    Reemplaza KEY-1, VALUE-1 por la variable y el valor del entorno. También, puedes agregar más variables y valores según lo desees

    También puedes especificar más opciones de configuración, como variables de entorno o límites de memoria.

  2. Actualiza la configuración del trabajo existente:

    gcloud run jobs replace job.yaml

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

  1. Ir a Cloud Run

  2. Haz clic en el servicio que te interesa para abrir la página Detalles del servicio.

  3. Haz clic en la pestaña Revisiones.

  4. En el panel de detalles a la derecha, la configuración de variables de entorno aparece en la pestaña Variables.

Línea de comandos

  1. Usa el siguiente comando:

    gcloud run services describe SERVICE
  2. Ubica la configuración de las variables de entorno en la configuración que se muestra.

Para ver la configuración actual de las variables de entorno de tu trabajo de Cloud Run, sigue estos pasos:

Console

  1. Ir a Trabajos de Cloud Run

  2. Haz clic en el trabajo que te interesa para abrir la página Detalles del trabajo.

  3. Haz clic en la pestaña Configuración.

  4. Localiza la configuración de variables de entorno en los detalles de configuración.

Línea de comandos

  1. Usa el siguiente comando:

    gcloud run jobs describe JOB_NAME
  2. 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 obtener lo siguiente: