Definir variables de entorno de compilación (despliegue de origen)

Las variables de entorno de compilación son pares clave-valor que le permiten transferir información de configuración a los paquetes de compilación al implementar desde el código fuente. Por ejemplo, en tiempo de compilación, puede que quieras personalizar las opciones del compilador, especificar certificados de tiempo de compilación, configurar parámetros, etc.

En esta página se muestra cómo definir variables de entorno de compilación que están disponibles en tiempo de compilación. Es relevante para los desarrolladores de plataformas que implementan servicios o funciones de Cloud Run desde el código fuente. Las marcas de la variable de entorno de compilación de la CLI de gcloud se admiten en las implementaciones de origen (--source), pero no en las implementaciones de imágenes de contenedor (--image).

Puedes usar variables de entorno para la configuración de servicios o funciones, pero no te recomendamos que las utilices para almacenar secretos, como credenciales de bases de datos o claves de API. Almacena los valores sensibles fuera del código fuente y de las variables de entorno. Para almacenar secretos, te recomendamos que uses Secret Manager. Para configurar los servicios que acceden a los secretos almacenados en Secret Manager, consulta Configurar secretos.

Antes de empezar

  • Habilita las APIs Admin de Cloud Run y Cloud Build:

    gcloud services enable run.googleapis.com \
        cloudbuild.googleapis.com

    Una vez que se haya habilitado la API Cloud Run Admin, se creará automáticamente la cuenta de servicio predeterminada de Compute Engine.

Roles obligatorios

Tú o tu administrador debéis conceder los siguientes roles de gestión de identidades y accesos a la cuenta de implementación y a la cuenta de servicio de Cloud Build.

Haz clic para ver los roles necesarios de la cuenta de implementación

Para obtener los permisos que necesitas para compilar e implementar desde la fuente, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

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

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

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

Sustituye PROJECT_NUMBER por el número de tu proyecto Google Cloud y PROJECT_ID por el ID de tu proyecto Google Cloud. Para obtener instrucciones detalladas sobre cómo encontrar el ID y el número de tu proyecto, consulta el artículo Crear y gestionar proyectos.

La concesión del rol de compilador de Cloud Run a la cuenta de servicio predeterminada de Compute Engine tarda un par de minutos en propagarse.

Para ver una lista de los roles y permisos de gestión de identidades y accesos asociados a Cloud Run, consulta los artículos sobre roles de gestión de identidades y accesos de Cloud Run y permisos de gestión de identidades y accesos de Cloud Run. Si tu servicio de Cloud Run interactúa con APIs, como las bibliotecas de cliente de Cloud, consulta la guía de configuración de la identidad del servicio.Google Cloud Para obtener más información sobre cómo conceder roles, consulta los artículos sobre permisos de implementación y gestión del acceso.

Número máximo 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 64 KiB para las claves y los valores.

Definir variables de entorno de compilación

Puedes definir variables de entorno de compilación para crear nuevas variables o sustituir por completo las que ya tengas.

gcloud

Para definir variables de entorno de compilación al implementar un servicio desde código fuente, usa la marca --set-build-env-vars:

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

Sustituye:

  • SERVICE con el nombre de tu servicio de Cloud Run.
  • KEY1=VALUE1,KEY2=VALUE2 con la lista de nombres de variables y sus valores separados por comas que se implementan junto con una función que te permite transferir información de configuración a los buildpacks.

Si vas a desplegar una función, añade la marca --function con el punto de entrada de la función de tu código fuente.

Actualizar variables de entorno de compilación

Puedes actualizar las variables de entorno de compilación de los servicios que ya tengas. Se trata de un enfoque no destructivo que cambia o añade variables de entorno de compilación, pero no las elimina.

gcloud

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

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

Si vas a desplegar una función, añade la marca --function con el punto de entrada de la función de tu código fuente.

Eliminar variables de entorno de desarrollo

Puedes eliminar variables de entorno de compilación de servicios que ya tengas.

gcloud

Para eliminar las variables de entorno de compilación de los servicios, usa la marca --remove-build-env-vars:

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

También puedes borrar las variables de entorno de compilación con --clear-build-env-vars en los servicios que ya tengas:

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

Si vas a desplegar una función, añade la marca --function con el punto de entrada de la función de tu código fuente.

Usar un archivo de variables de entorno de compilación

Puedes usar un archivo de variables de entorno de compilación para las funciones que ya tengas.

gcloud

Para definir 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

Sustituye FILE_NAME.yaml por el contenido del archivo, que debería tener el siguiente aspecto:

 KEY1: VALUE1
 KEY2: VALUE2

Si vas a desplegar una función, añade la marca --function con el punto de entrada de la función de tu código fuente.