Almacena y visualiza registros de compilación

Cuando ejecutas compilaciones, Cloud Build recopila y almacena los registros de compilación. En esta página, se explica cómo almacenar, ver y borrar registros de compilación.

Elige dónde enviar los registros de compilación

Puedes configurar Cloud Build para que envíe registros de compilación a un bucket en Cloud Storage, un bucket en Cloud Logging o ambos.

  • Si deseas controlar el período de retención de los registros de compilación almacenados, envíalos a Cloud Logging. Cloud Logging también proporciona más opciones para buscar registros de compilación específicos en un bucket.

  • 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. Enviar los registros de compilación a un bucket de Cloud Storage puede reducir esa latencia.

Tanto Cloud Storage como Logging te permiten almacenar registros en un bucket predeterminado creado por Google o en un bucket personalizado creado por el usuario. Los buckets predeterminados te permiten ver los registros almacenados en ellos, pero no te permiten cambiar nada. Si necesitas control total sobre el bucket que usas para el almacenamiento de registros de compilación, envía tus registros a un bucket creado por el usuario.

Almacena registros de compilación en buckets predeterminados

Cloud Logging y Cloud Storage tienen buckets predeterminados en los que puedes almacenar tus registros de compilación. Google crea estos buckets y es su propietario, y pueden recibir registros de varias regiones. Para enviar tus registros de compilación a uno de estos buckets, configura el elemento LoggingMode de tu archivo de configuración de compilación con uno de los siguientes valores:

  • GCS_ONLY: Los registros se almacenan en el bucket predeterminado de Cloud Storage.

  • CLOUD_LOGGING_ONLY: Los registros se almacenan en el bucket de registro predeterminado.

  • LEGACY: Los registros se almacenan en ambos buckets predeterminados.

El bucket de Logging predeterminado tiene una política de retención de 30 días para los registros almacenados. Para establecer una política de retención personalizada para los registros de compilación almacenados en Logging, almacénalos en un bucket personalizado.

El bucket predeterminado de Cloud Storage no tiene una política de retención.

Almacena los registros de compilación en un bucket de Cloud Storage específico de la región y que pertenezca al usuario

Si envías registros de compilación al bucket predeterminado de Cloud Storage, Cloud Build los almacena en una región especificada por Google que podría 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 registros de compilación a un bucket de Cloud Storage propiedad del usuario en la misma región en la que ejecutas la compilación. Esta configuración te brinda más control sobre la ubicación de los datos del registro de compilación, lo que puede ayudarte a cumplir con los requisitos de residencia de datos.

Otorga permisos de IAM:

Si tu bucket de Cloud Storage y Cloud Build están en el mismo proyecto de Google Cloud y usas la cuenta de servicio heredada de Cloud Build, esa cuenta de servicio tiene los permisos de IAM necesarios de forma predeterminada. No es necesario otorgar permisos adicionales. De lo contrario, haz lo siguiente:

Para obtener los permisos que necesitas para almacenar registros de compilación en un bucket específico de la región y propiedad del usuario, pídele a tu administrador que te otorgue el rol de IAM de Administrador de almacenamiento (roles/storage.admin) en la cuenta de servicio que usaste para tu compilación. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Configura el bucket de Cloud Storage específico de la región:

  1. En tu archivo de configuración de compilación, agrega la opción defaultLogsBucketBehavior y establece su valor en REGIONAL_USER_OWNED_BUCKET:

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ]
    options:
      defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
    
    {
      "steps": [
        {
          "name": "gcr.io/cloud-builders/docker",
          "args": [
            "build",
            "-t",
            "us-central1-docker.pkg.dev/myproject/myrepo/myimage",
            "."
          ]
        }
        ],
        "options": {
          "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET"
        }
    }
    
  2. Usa el archivo de configuración de compilación para iniciar una compilación con la línea de comandos, la API o los activadores.

    Cuando ejecutas la compilación, Cloud Build crea el bucket nuevo en la región en la que la ejecutas y, luego, almacena los registros de compilación en este bucket. Las compilaciones posteriores en el mismo proyecto y región usarán el bucket existente, siempre y cuando REGIONAL_USER_OWNED_BUCKET esté activo. Este bucket es propiedad del usuario, por lo que puedes configurarlo como si fuera un bucket creado por el usuario.

Si configuras la opción REGIONAL_USER_OWNED_BUCKET y, luego, creas compilaciones en varias regiones, Cloud Build crea varios buckets para tus registros de compilación.

Los buckets predeterminados de Cloud Storage específicos de la región no tienen una política de retención. Sin embargo, puedes automatizar la eliminación de registros de compilación de tu bucket configurando una regla de ciclo de vida de los objetos.

Almacena registros de compilación en buckets creados por el usuario

Los buckets creados por el usuario te brindan un mayor control sobre la administración y configuración de tus buckets de registros.

Almacena registros de compilación en un bucket de Cloud Logging creado por el usuario

Los buckets de registro creados por el usuario te permiten ajustar el período de retención de los registros de compilación almacenados. Para almacenar tus registros de compilación en un bucket creado por el usuario en Logging, haz lo siguiente:

Otorga permisos de IAM:

Para obtener los permisos que necesitas para almacenar registros de compilación en un bucket de registro de Cloud creado por el usuario, pídele a tu administrador que te otorgue el rol de IAM Escritor de configuración de registros (roles/logging.configWriter) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Configura el bucket de Logging:

  1. Crea un bucket y establece un valor para el campo Período de retención.

  2. Crea un receptor para enrutar los registros de compilación al bucket nuevo:

    1. Ingresa lo siguiente para el filtro de inclusión de compilación de tu receptor:

      logName = "projects/PROJECT_ID/logs/cloudbuild"
      

      Reemplaza PROJECT-ID por el ID del proyecto de Google Cloud.

    2. (Opcional) Para evitar que tus registros se envíen al bucket de Logging predeterminado, sigue el ejemplo en Cómo dejar de almacenar entradas de registro en buckets de registro.

Almacena registros de compilación en un bucket de Cloud Storage creado por el usuario

Para almacenar tus registros de compilación en un bucket de Cloud Storage creado por el usuario, haz lo siguiente:

Otorga permisos de IAM:

Si tu bucket de Cloud Storage y Cloud Build están en el mismo proyecto de Google Cloud y usas la cuenta de servicio heredada de Cloud Build, esta cuenta tiene los permisos de IAM necesarios de forma predeterminada. No es necesario otorgar permisos adicionales. De lo contrario, haz lo siguiente:

Para obtener los permisos que necesitas para almacenar registros de compilación en un bucket de Cloud Storage creado por el usuario, pídele a tu administrador que te otorgue el rol de IAM de Administrador de almacenamiento (roles/storage.admin) en la cuenta de servicio que usaste para la compilación. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Configura el bucket de Cloud Storage:

  1. En tu proyecto de Google Cloud, crea un bucket de Cloud Storage sin una política de retención establecida para almacenar tus registros de compilación.

  2. En tu archivo de configuración de compilación , agrega un campo logsBucket que apunte al bucket de Cloud Storage que creaste para almacenar registros de compilación. En el siguiente archivo de configuración de compilación de ejemplo, se incluyen instrucciones para compilar una imagen de contenedor y almacenar los registros de compilación en un bucket llamado mylogsbucket:

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ]
        logsBucket: 'gs://mylogsbucket'
        options:
          logging: GCS_ONLY
    
        {
          "steps": [
           {
             "name": "gcr.io/cloud-builders/docker",
             "args": [
               "build",
               "-t",
               "us-east1-docker.pkg.dev/myproject/myimage",
               "."
             ]
           }
           ],
           "logsBucket": "gs://mylogsbucket",
           "options": {
             "logging": "GCS_ONLY"
           }
        }
    
  3. Usa el archivo de configuración de compilación para iniciar una compilación con la línea de comandos, la API o los activadores.

Cuando se completa la compilación, Cloud Build almacena los registros en el bucket de Cloud Storage que especificaste en el archivo de configuración de compilación.

Prioridad entre la configuración de registros

Si defines un bucket de Cloud Storage creado por el usuario en logsBucket, Cloud Build envía tus registros de compilación al bucket creado por el usuario en lugar del bucket predeterminado de Cloud Storage.

Si agregas la opción defaultLogsBucketBehavior a un archivo de configuración de compilación existente y ya configuraste las opciones logging o logsBucket, te recomendamos que borres esa configuración para evitar conflictos entre los parámetros. Específicamente, defaultLogsBucketBehavior no funcionará si configuraste lo siguiente:

  • logging: CLOUD_LOGGING_ONLY para almacenar tus registros de compilación en Cloud Logging.
  • logging: NONE para desactivar el registro.

Cuando ejecutas una compilación sin opciones de registro configuradas en tu archivo de configuración de compilación, Cloud Build establece logging: LEGACY y almacena los registros de compilación en el bucket predeterminado de Cloud Storage. Configurar defaultLogsBucketBehavior como REGIONAL_USER_OWNED_BUCKET anula logging: LEGACY.

Visualiza registros de compilación

Para ver los registros de compilación, haz lo siguiente:

Otorga permisos de IAM:

Para obtener los permisos que necesitas para ver los registros de compilación en Cloud Storage o Logging, pídele a tu administrador que te otorgue los siguientes roles de IAM en la cuenta de servicio que se usa para tu compilación:

  • Visualiza los registros de compilación en un bucket de Cloud Storage creado o que pertenece al usuario:
    • Visualizador de objetos de Storage (roles/storage.objectViewer): Son las principales que desean ver los registros de compilación.
    • Descriptor de acceso de vista de registros (roles/logging.viewAccessor): los principales que desean ver los registros de compilación
  • Visualiza los registros de compilación en el bucket predeterminado de Cloud Storage: Visualizador (roles/viewer): El proyecto en el que se configuró la compilación
  • Visualiza los registros de compilación en Registro: Visualizador de registros (roles/logging.viewer): Los principales que quieran ver los registros de compilación

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Consulta los registros de compilación en Google Cloud:

  1. Abre la página de Cloud Build en la consola de Google Cloud.

    Abrir la página de Cloud Build

  2. Selecciona tu proyecto y haz clic en Open.

  3. En el menú desplegable Región, selecciona la región para tu compilación.

  4. En la página Historial de compilación, selecciona una compilación específica.

  5. En la página Detalles de la compilación, en Pasos, haz clic en Resumen de la compilación para ver los registros de compilación de toda tu compilación o selecciona un paso de compilación para ver los registros de compilación de ese paso.

  6. Si tus registros se almacenan en Logging, en el panel Registro de compilación, haz clic en el ícono para ver los registros en el Explorador de registros.

Ejecuta el comando gcloud builds log, en el que build-id es el ID de la compilación para la que deseas obtener registros de compilación. 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 de ID cuando ejecutas gcloud builds list.

gcloud builds log build-id

Consulta los registros de compilación en GitHub y GitHub Enterprise:

Si creas un activador de GitHub o GitHub Enterprise y especificas --include-logs-with-status como una opción, puedes ver tus registros de compilación en GitHub y GitHub Enterprise.

Para ver los registros de compilación en GitHub y GitHub Enterprise, haz lo siguiente:

  1. Navega al repositorio asociado con tu activador.

  2. Navega a tu lista de confirmaciones.

  3. Busca la fila de la confirmación para la que deseas ver los registros de compilación.

  4. Haz clic en el ícono de resultado en la fila de tu confirmación.

    Verás una lista de las verificaciones asociadas con tu confirmación.

  5. Haz clic en Detalles en la fila de la que deseas ver los registros de compilación.

    Verás la página Resumen asociada con tu confirmación. Si creaste 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.

Borra registros de compilación y buckets

Para obtener los permisos que necesitas para borrar registros de compilación y buckets en Cloud Storage, pídele a tu administrador que te otorgue los siguientes roles de IAM en la cuenta de servicio que se usa para tu compilación:

  • Borrar registros de compilación en un bucket de Cloud Storage creado o propiedad del usuario: Administrador de almacenamiento (roles/storage.admin): El usuario o la cuenta de servicio que borra los registros de compilación
  • Borrar un bucket de Cloud Storage creado o propiedad del usuario: Administrador de almacenamiento (roles/storage.admin): El usuario o la cuenta de servicio que borra los buckets
  • Borra un bucket de registro creado por el usuario: Escritor de configuración de registros (roles/logging.configWriter): Tu proyecto

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Para borrar registros de compilación en un bucket de Cloud Storage creado o que pertenece al usuario, sigue las instrucciones en Borra objetos en la documentación de Cloud Storage.

Para borrar un bucket de Cloud Storage creado o que pertenece al usuario, sigue las instrucciones en Borra buckets en la documentación de Cloud Storage.

Para borrar un bucket de registros creado por el usuario, sigue las instrucciones que se indican en Cómo borrar un bucket en la documentación de registros.

¿Qué sigue?