Obtén más información sobre cómo crear y usar variables de entorno en Cloud Run para Anthos en Google Cloud.
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. Por ejemplo, supongamos que ejecutas un servicio que habilita el registro adicional cuando se lee LOGGING_VERBOSE: true
en el entorno. En este caso, el par clave-valor de la variable de entorno se establece como LOGGING_VERBOSE=true
. Los comandos o la IU exactos se muestran en las siguientes secciones.
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, la variable de entorno PORT
se inserta dentro del contenedor mediante Cloud Run for Anthos en Google Cloud. No debes configurarla tú mismo.
Configura variables de entorno en un servicio
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 las variables de entorno con Cloud Console, la herramienta de línea de comandos de gcloud o un archivo YAML cuando implementas un servicio nuevo o actualizas un servicio existente y, luego, implementas. una revisión:
Console
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, haz clic en IMPLEMENTAR Y EDITAR UNA NUEVA REVISIÓN.
En Configuración avanzada, haz clic en Variables.
Haz lo siguiente:
- Si quieres agregar una variable, haz clic en Add Variable (Agregar variable) y especifica el nombre que deseas para la variable y su valor en los cuadros de texto Name (Nombre) y Value (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.
Haz clic en Crear o Implementar.
Línea de comandos
Puedes usar uno de los siguientes comandos gcloud kuberun
a fin de configurar variables de entorno para servicios nuevos o actualizar servicios existentes:
Para los servicios existentes, actualiza las variables de entorno mediante la ejecución del comando
gcloud kuberun core services update
con uno de los siguientes parámetros:Ejemplo:
gcloud kuberun core services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
Reemplaza lo siguiente:
SERVICE
por el nombre de tu servicioKEY1=VALUE1,KEY2=VALUE2
con una lista separada por comas de los pares de nombre y valor para cada variable de entorno Especifica el nombre de la variable de entorno para cadaKEY
y el valor de esa variable de entorno paraVALUE
. Cómo especificar varios parámetros-
Para especificar una variable de entorno que contenga una coma (
,
), debes escapar cada KEY=VALUE con un delimitador diferente. Por ejemplo, si usas@
:--set-env-vars "^@^KEY1=value,with,commas@KEY2=anothervalue@KEY3..."
-
A fin de especificar varios conjuntos de pares clave-valor, puedes especificar varios parámetros para facilitar la lectura. Ejemplo:
[...] --set-env-vars "KEY=VALUE1" \ --set-env-vars "KEY=VALUE2" \ --set-env-vars "KEY=VALUE3"
Opciones de parámetro del comando
Para servicios nuevos, configura las variables de entorno mediante la ejecución del comando
gcloud kuberun core services create
con el parámetro--set-env-vars
:gcloud kuberun core services create SERVICE --image=IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
Reemplaza lo siguiente:
- IMAGE_URL por una referencia a la imagen del contenedor, como
gcr.io/myproject/my-image:latest
SERVICE
por el nombre de tu servicioKEY1=VALUE1,KEY2=VALUE2
con una lista separada por comas de los pares de nombre y valor para cada variable de entorno Especifica el nombre de la variable de entorno para cadaKEY
y el valor de esa variable de entorno paraVALUE
. Cómo especificar varios parámetros-
Para especificar una variable de entorno que contenga una coma (
,
), debes escapar cada KEY=VALUE con un delimitador diferente. Por ejemplo, si usas@
:--set-env-vars "^@^KEY1=value,with,commas@KEY2=anothervalue@KEY3..."
-
A fin de especificar varios conjuntos de pares clave-valor, puedes especificar varios parámetros para facilitar la lectura. Ejemplo:
[...] --set-env-vars "KEY=VALUE1" \ --set-env-vars "KEY=VALUE2" \ --set-env-vars "KEY=VALUE3"
Opciones de parámetro del comando
- IMAGE_URL por una referencia a la imagen del contenedor, como
YAML
Si deseas usar un archivo YAML para modificar la configuración de tu servicio existente, obtén una copia de la configuración actual, modifica y guarda los cambios en un archivo local y, luego, implementa esos cambios en tu servicio.
Muestra como YAML y, luego, copia la configuración de tu servicio en un archivo local, por ejemplo
service.yaml
:gcloud kuberun core services describe SERVICE --format yaml
Reemplaza SERVICE por el nombre de tu servicio de Cloud Run for Anthos.
En tu archivo local, actualiza los atributos
name
yvalue
bajo el atributoenv
encontainers:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
Reemplazar
- SERVICE por el nombre de tu servicio de Cloud Run for Anthos.
- 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
Reemplaza el servicio por la configuración nueva mediante el siguiente comando:
gcloud beta run services replace service.yaml
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
Si estableces una variable de entorno predeterminada en el contenedor y una variable de entorno con el mismo nombre en el servicio de Cloud Run for Anthos, el valor establecido en el servicio tiene prioridad.
Habilita vínculos al Service de Kubernetes en Cloud Run for Anthos
Si usas vínculos al Service de Kubernetes en Cloud Run for Anthos y deseas continuar usándolos, debes habilitar de forma manual la compatibilidad para esa función antes de enero de 2021. Debido a los problemas de rendimiento que se pueden generar en los espacios de nombres con miles de servicios y revisiones, a partir de enero de 2021, los vínculos al Service de Kubernetes se inhabilitarán de forma predeterminada.
A fin de habilitar los vínculos al Service de Kubernetes, ejecuta el siguiente comando para establecer data.enable-service-links
en true
en tu ConfigMap knative-serving/config-defaults
:
kubectl patch cm -n knative-serving config-defaults -p '{"data":{"enable-service-links":"true"}}