Configura variables de entorno de compilación (implementación de origen)

Las variables de entorno de compilación son pares clave-valor que te permiten pasar la información de configuración a los paquetes de compilación cuando implementas desde el código fuente. Por ejemplo, en el momento de la compilación, es posible que desees personalizar las opciones del compilador, especificar certificados del tiempo de compilación, configurar parámetros, etcétera.

En esta página, se muestra cómo configurar variables de entorno de compilación que están disponibles en el momento de la compilación y que son relevantes para los desarrolladores de plataformas que implementan servicios o funciones de Cloud Run desde la fuente. Las marcas de gcloud CLI de variables de entorno de compilación son compatibles con las implementaciones de origen (--source) y no con las implementaciones de imágenes de contenedor (--image).

Puedes usar variables de entorno para la configuración de servicios o funciones, pero no las recomendamos como una forma de almacenar secretos, como las credenciales de la base de datos o las claves de API. Almacena valores sensibles fuera de tu código fuente y de las variables de entorno. Para almacenar secretos, te recomendamos que uses Secret Manager. Si deseas configurar servicios que acceden a secretos almacenados en Secret Manager, consulta Configura secretos.

Antes de comenzar

  • Habilita la API de Cloud Run Admin y las APIs de Cloud Build.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar las API

    Después de habilitar la API de Cloud Run Admin, se crea de forma automática la cuenta de servicio predeterminada de Compute Engine.

Roles obligatorios

Tú o tu administrador deben otorgar los siguientes roles de IAM a la cuenta del implementador y a la cuenta de servicio de Cloud Build.

Haz clic para ver los roles necesarios para la cuenta del implementador

Para obtener los permisos que necesitas para compilar e implementar desde la fuente, pídele a tu administrador que te otorgue los siguientes roles de IAM roles:

Haz clic para ver los roles necesarios para la cuenta de servicio de Cloud Build

Cloud Build uses automáticamente la cuenta de servicio predeterminada de Compute Engine como la cuenta de servicio predeterminada de Cloud Build para compilar tu código fuente y el recurso de Cloud Run, a menos que anules este comportamiento. Para que Cloud Build compile tus fuentes, pídele a tu administrador que otorgue el rol de compilador de Cloud Run (roles/run.builder) a la cuenta de servicio predeterminada de Compute Engine en tu proyecto:

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/run.builder
  

Reemplaza PROJECT_NUMBER por el número de tu Google Cloud proyecto y PROJECT_ID por el ID de tu Google Cloud proyecto. Para obtener instrucciones detalladas sobre cómo encontrar el ID y el número de tu proyecto, consulta Crea y administra proyectos.

El otorgamiento del rol de compilador de Cloud Run a la cuenta de servicio predeterminada de Compute Engine tarda un par de minutos en propagarse.

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 servicio 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.

Cantidad máxima de variables de entorno de compilación y límites

Puedes definir hasta 100 variables de entorno de compilación, con un límite total de clave y valor de 64 KiB.

Configura variables de entorno de compilación

Puedes configurar variables de entorno de compilación para establecer variables nuevas o reemplazar por completo las variables de compilación existentes.

gcloud

Para configurar variables de entorno de compilación cuando implementes un servicio desde el código fuente, usa la marca --set-build-env-vars:

gcloud run deploy SERVICE \
    --source . \
    --set-build-env-vars KEY1=VALUE1,KEY2=VALUE2

Reemplaza lo siguiente:

  • SERVICE por el nombre del servicio de Cloud Run.
  • KEY1=VALUE1,KEY2=VALUE2 con la lista separada por comas de los nombres de las variables y sus valores que se implementan junto con una función que te permite pasar la información de configuración a los paquetes de compilación.

Si implementas una función, agrega la marca --function con el punto de entrada de la función desde tu código fuente.

Actualiza las variables de entorno de compilación

También puedes actualizar las variables de entorno de compilación para los servicios existentes. Este es un enfoque no destructivo que modifica o agrega variables de entorno de compilación, pero no las borra.

gcloud

Para actualizar las variables de entorno de compilación para los servicios existentes, usa la marca --update-build-env-vars:

gcloud run deploy SERVICE \
    --source . \
    --update-build-env-vars KEY1=VALUE1,KEY2=VALUE2

Si implementas una función, agrega la marca --function con el punto de entrada de la función desde tu código fuente.

Borra variables de entorno de compilación

Puedes borrar variables de entorno de compilación para los servicios existentes.

gcloud

Para quitar variables de entorno de compilación para los servicios existentes, usa la marca --remove-build-env-vars:

gcloud run deploy SERVICE \
    --source . \
    --remove-build-env-vars KEY1=VALUE1,KEY2=VALUE2

Como alternativa, puedes borrar las variables de entorno de compilación mediante --clear-build-env-vars para los servicios existentes:

gcloud run deploy SERVICE \
    --source . \
    --clear-build-env-vars KEY1=VALUE1,KEY2=VALUE2

Si implementas una función, agrega la marca --function con el punto de entrada de la función desde tu código fuente.

Usa un archivo de variables de entorno de compilación

Puedes usar un archivo de variables de entorno de compilación para las funciones existentes.

gcloud

Para establecer variables de entorno de compilación desde un archivo, usa la marca --build-env-vars-file:

gcloud run deploy SERVICE \
    --source . \
    --build-env-vars-file FILE_NAME.yaml

Reemplaza FILE_NAME.yaml por el archivo cuyo contenido se ve de la siguiente manera:

 KEY1: VALUE1
 KEY2: VALUE2

Si implementas una función, agrega la marca --function con el punto de entrada de la función desde tu código fuente.