Cuando ejecutas compilaciones, Cloud Build recoge y almacena los registros de compilación. En esta página se explica cómo almacenar, ver y eliminar registros de compilación.
Elegir dónde enviar los registros de compilación
Puedes configurar Cloud Build para que envíe los registros de compilación a un segmento de Cloud Storage, a un segmento de Cloud Logging o a ambos.
Si quieres controlar el periodo de conservación de los registros de compilación almacenados, envíalos a Cloud Logging. Cloud Logging también ofrece más opciones para buscar registros de compilación específicos en un segmento.
En algunos casos, hay un retraso entre el momento en que se genera un registro de compilación y el momento en que Logging lo recibe. Si envías los registros de compilación a un segmento de Cloud Storage, puede que se reduzca la latencia.
Tanto Cloud Storage como Logging te permiten almacenar registros en un segmento predeterminado creado por Google o en un segmento personalizado creado por el usuario. Los segmentos predeterminados te permiten ver los registros almacenados en el segmento, pero no te permiten cambiar nada del segmento. Si necesitas tener un control total sobre el contenedor que usas para almacenar los registros de compilación, envía los registros a un contenedor creado por el usuario.
Almacenar registros de compilación en segmentos predeterminados
Tanto Cloud Logging como Cloud Storage tienen segmentos predeterminados en los que puedes almacenar tus registros de compilación. Google crea estos contenedores y es su propietario, y pueden recibir registros de varias regiones.
Para enviar los registros de compilación a uno de estos contenedores, configura el
LoggingMode
de tu archivo de configuración de compilación con uno de los siguientes valores:
GCS_ONLY
: Los registros se almacenan en el segmento de Cloud Storage predeterminado.CLOUD_LOGGING_ONLY
: los registros se almacenan en el segmento de Logging predeterminado.LEGACY
: los registros se almacenan en ambos segmentos predeterminados.
El segmento de Logging predeterminado tiene una política de conservación de 30 días para los registros almacenados. Para definir una política de conservación personalizada para los registros de compilación almacenados en Logging, almacena los registros de compilación en un segmento personalizado.
El segmento de Cloud Storage predeterminado no tiene ninguna política de retención.
Almacenar registros de compilación en un segmento de Cloud Storage específico de una región y propiedad del usuario
Si envías registros de compilación al segmento de Cloud Storage predeterminado, Cloud Build los almacenará en una región especificada por Google que puede ser diferente de la ubicación en la que ejecutas una compilación. Sin embargo, también puedes configurar tu compilación para que Cloud Build envíe los registros de compilación a un segmento de Cloud Storage propiedad del usuario en la misma región en la que ejecutas la compilación. Esta configuración te ofrece más control sobre la ubicación de los datos de registro de compilación, lo que puede ayudarte a cumplir los requisitos de residencia de datos.
Concede permisos de gestión de identidades y accesos:
Si tu segmento de Cloud Storage y Cloud Build están en el mismo proyecto y usas la cuenta de servicio antigua de Cloud Build, esa cuenta de servicio tiene los permisos de IAM necesarios de forma predeterminada. Google Cloud No tienes que conceder ningún permiso adicional. De lo contrario, haz lo siguiente:
Para obtener los permisos que necesitas para almacenar los registros de compilación en un segmento propiedad del usuario y específico de una región,
pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de almacenamiento (roles/storage.admin
) en la cuenta de servicio que se usa para tu compilación.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Configura el segmento de Cloud Storage específico de la región:
En el archivo de configuración de compilación, añade la opción
defaultLogsBucketBehavior
y asigna el valorREGIONAL_USER_OWNED_BUCKET
:YAML
steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ] options: defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
JSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/myproject/myrepo/myimage", "." ] } ], "options": { "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET" } }
Usa el archivo de configuración de la compilación para iniciar una compilación con la línea de comandos, la API o activadores.
Cuando ejecutas la compilación, Cloud Build crea el nuevo segmento en la región en la que estás ejecutando la compilación y, a continuación, almacena los registros de compilación en este segmento. Las compilaciones posteriores del mismo proyecto y región usarán el segmento que ya existe mientras
REGIONAL_USER_OWNED_BUCKET
esté activo. Este contenedor es propiedad del usuario, por lo que puede configurarlo como si fuera un contenedor creado por el usuario.
Si configura la opción REGIONAL_USER_OWNED_BUCKET
y, a continuación, crea compilaciones en varias regiones, Cloud Build creará varios contenedores para los registros de compilación.
Los segmentos de Cloud Storage predeterminados específicos de una región no tienen ninguna política de retención. Sin embargo, puedes automatizar la eliminación de los registros de compilación de tu segmento configurando una regla de ciclo de vida de los objetos.
Almacenar registros de compilación en segmentos creados por el usuario
Los segmentos creados por los usuarios te ofrecen más control sobre la gestión y la configuración de tus segmentos de registros.
Almacenar registros de compilación en un segmento de Cloud Logging creado por el usuario
Los segmentos de registro creados por los usuarios te permiten ajustar el periodo de conservación de los registros de compilación almacenados. Para almacenar los registros de compilación en un segmento creado por el usuario en Logging, haz lo siguiente:
Concede permisos de gestión de identidades y accesos:
Para obtener los permisos que necesitas para almacenar registros de compilación en un segmento de Cloud Logging creado por un usuario,
pídele a tu administrador que te conceda el rol de gestión de identidades y accesos
Escritor de configuración de registros (roles/logging.configWriter
)
en tu proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Configura el segmento de Logging:
Cree un segmento y defina un valor para el campo Periodo de conservación.
Crea un receptor para enrutar los registros de compilación al nuevo segmento:
Introduce lo siguiente en el filtro de inclusión de compilación del sumidero:
logName = "projects/PROJECT_ID/logs/cloudbuild"
Sustituye PROJECT-ID por el ID de tu proyecto. Google Cloud
(Opcional) Para evitar que tus registros se envíen al segmento de Logging predeterminado, sigue el ejemplo de Dejar de almacenar entradas de registro en segmentos de registros.
Almacenar registros de compilación en un segmento de Cloud Storage creado por el usuario
Para almacenar los registros de compilación en un segmento de Cloud Storage creado por el usuario, haz lo siguiente:
Concede permisos de gestión de identidades y accesos:
Si tu segmento de Cloud Storage y Cloud Build están en el mismo proyecto Google Cloud y usas la cuenta de servicio antigua de Cloud Build, esta cuenta tiene los permisos de IAM necesarios de forma predeterminada. No tienes que conceder ningún permiso adicional. De lo contrario, haz lo siguiente:
Para obtener los permisos que necesitas para almacenar registros de compilación en un segmento de Cloud Storage creado por un usuario,
pide a tu administrador que te conceda el
rol de gestión de identidades y accesos Administrador de almacenamiento (roles/storage.admin
)
en la cuenta de servicio que se usa en tu compilación.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Configura el segmento de Cloud Storage:
En tu Google Cloud proyecto, crea un segmento de Cloud Storage sin ninguna política de conservación para almacenar los registros de compilación.
En el archivo de configuración de compilación, añade un campo
logsBucket
que apunte al segmento de Cloud Storage que has creado para almacenar los registros de compilación. El siguiente archivo de configuración de compilación de ejemplo contiene instrucciones para compilar una imagen de contenedor y almacenar los registros de compilación en un segmento llamadomylogsbucket
:YAML
steps: - name: 'gcr.io/cloud-builders/docker' args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ] logsBucket: 'gs://mylogsbucket' options: logging: GCS_ONLY
JSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-east1-docker.pkg.dev/myproject/myimage", "." ] } ], "logsBucket": "gs://mylogsbucket", "options": { "logging": "GCS_ONLY" } }
Usa el archivo de configuración de la compilación para iniciar una compilación con la línea de comandos, la API o activadores.
Cuando se completa la compilación, Cloud Build almacena los registros en el segmento de Cloud Storage que hayas especificado en el archivo de configuración de la compilación.
Prioridad entre los ajustes de los registros
Si defines un segmento de Cloud Storage creado por el usuario en logsBucket
, Cloud Build enviará los registros de compilación al segmento creado por el usuario en lugar de al segmento de Cloud Storage predeterminado.
Si vas a añadir la opción defaultLogsBucketBehavior
a un archivo de configuración de compilación y ya has configurado las opciones logging
o logsBucket
, te recomendamos que elimines esos ajustes para evitar conflictos entre ellos. En concreto, defaultLogsBucketBehavior
no funcionará si has configurado lo siguiente:
logging: CLOUD_LOGGING_ONLY
para almacenar los registros de compilación en Cloud Logging.logging: NONE
para desactivar el registro.
Cuando ejecutas una compilación sin opciones de registro definidas en el archivo de configuración de la compilación, Cloud Build define logging: LEGACY
y almacena los registros de compilación en el segmento de Cloud Storage predeterminado. Si asignas el valor REGIONAL_USER_OWNED_BUCKET
a defaultLogsBucketBehavior
, se anula logging: LEGACY
.
Ver registros de compilación
Para ver los registros de compilación, sigue estos pasos:
Concede permisos de gestión de identidades y accesos:
Para obtener los permisos que necesitas para ver los registros de compilación en Cloud Storage o Logging, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en la cuenta de servicio que se usa en tu compilación:
-
Para ver los registros de compilación en un segmento de Cloud Storage creado o propiedad de un usuario, sigue estos pasos:
-
Lector de objetos de Storage (
roles/storage.objectViewer
): las entidades que quieran ver los registros de compilación. -
Usuario con permiso para ver registros (
roles/logging.viewAccessor
): las entidades que quieran ver los registros de compilación.
-
Lector de objetos de Storage (
-
Consulta los registros de compilación en el segmento predeterminado de Cloud Storage:
Visor (
roles/viewer
): el proyecto en el que se configura la compilación -
Ver registros de compilación en Logging:
Visualizador de registros (
roles/logging.viewer
): las principales que quieran ver los registros de compilación
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Para ver los registros de compilación en Google Cloud, sigue estos pasos:
Consola
Abre la página Cloud Build en la Google Cloud consola.
Selecciona el proyecto y haz clic en Abrir.
En el menú desplegable Región, selecciona la región de tu compilación.
En la página Historial de compilaciones, selecciona una compilación concreta.
En la página Detalles de la compilación, en Pasos, haz clic en Resumen de la compilación para ver los registros de toda la compilación o selecciona un paso de la compilación para ver sus registros.
Si tus registros están almacenados en Logging, en el panel Registro de compilación, haz clic en el icono
para ver los registros en el explorador de registros.
gcloud
Ejecuta el comando gcloud builds log
, donde build-id es el ID de la compilación de la que quieres obtener los registros. El ID de compilación se muestra al final del proceso de envío de la compilación cuando ejecutas gcloud builds submit
o en la columna ID cuando ejecutas gcloud builds list
.
gcloud builds log build-id
Ver los registros de compilación en GitHub y GitHub Enterprise:
Si creas un activador de GitHub o GitHub Enterprise con la CLI de gcloud o la API de Cloud Build y especificas --include-logs-with-status
como opción, podrás ver los registros de compilación en GitHub y GitHub Enterprise.
Para ver los registros de compilación en GitHub y GitHub Enterprise, sigue estos pasos:
Ve al repositorio asociado a tu activador.
Ve a tu lista de confirmaciones.
Busca la fila de la confirmación de la que quieras ver los registros de compilación.
Haz clic en el icono de resultado de la fila de la confirmación.
Verás una lista de comprobaciones asociadas a tu confirmación.
Haz clic en Detalles en la fila de la que quieras ver los registros de compilación.
Verás la página Resumen asociada a tu confirmación. Si has creado un activador con la marca
--include-logs-with-status
, verás los registros de compilación en la sección Detalles de la página.
Eliminar registros y segmentos de compilación
Para obtener los permisos que necesitas para eliminar registros de compilación y contenedores en Cloud Storage, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en la cuenta de servicio que se usa en tu compilación:
-
Eliminar registros de compilación en un bucket de Cloud Storage creado o propiedad de un usuario:
Administrador de Storage (
roles/storage.admin
): el usuario o la cuenta de servicio que elimina los registros de compilación -
Eliminar un segmento de Cloud Storage creado o propiedad de un usuario:
Administrador de almacenamiento (
roles/storage.admin
): el usuario o la cuenta de servicio que elimina los segmentos -
Para eliminar un bucket de registro creado por un usuario, haz lo siguiente:
Editor de configuración de registros (
roles/logging.configWriter
) - tu proyecto
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Para eliminar los registros de compilación de un segmento de Cloud Storage creado o propiedad de un usuario, siga las instrucciones que se indican en el artículo Eliminar objetos de la documentación de Cloud Storage.
Para eliminar un segmento de Cloud Storage creado o propiedad de un usuario, sigue las instrucciones que se indican en el artículo Eliminar segmentos de la documentación de Cloud Storage.
Para eliminar un bucket de Logging creado por un usuario, sigue las instrucciones de la sección Eliminar un bucket de la documentación de Logging.
Siguientes pasos
- Consulta información sobre los registros de auditoría creados por Cloud Build.
- Consulta cómo ver los resultados de las compilaciones.
- Consulta más información sobre los permisos de gestión de identidades y accesos de Cloud Build.