Almacenar y ver registros de compilación

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:

  1. En el archivo de configuración de compilación, añade la opción defaultLogsBucketBehavior y asigna el valor REGIONAL_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"
        }
    }
    
  2. 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 el 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:

  1. Cree un segmento y asigne un valor al campo Periodo de conservación.

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

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

    2. (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:

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

  2. 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 llamado mylogsbucket:

    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"
           }
        }
    
  3. 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 para 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.
  • 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 personas que quieren 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

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

    Abre la página Cloud Build.

  2. Selecciona el proyecto y haz clic en Abrir.

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

  4. En la página Historial de compilaciones, selecciona una compilación concreta.

  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 toda la compilación o selecciona un paso de la compilación para ver sus registros.

  6. 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:

  1. Ve al repositorio asociado a tu activador.

  2. Ve a tu lista de confirmaciones.

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

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

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