Crea y administra informes de inventario

En esta página, se describe cómo crear y administrar la configuración de los informes de inventario y los informes de inventario generados, para que puedas obtener un resumen de alto nivel de todos los metadatos de tus objetos en un bucket determinado. Para obtener una descripción general de los informes de inventario, consulta la documentación de la descripción general de los informes de inventario de Storage Insights.

Antes de comenzar

Obtén las funciones necesarias

A fin de obtener los permisos necesarios para crear y administrar informes de inventario, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto o los buckets de origen y destino con el que administrarás los informes de inventario.

  • Para crear y administrar configuraciones de informes de inventario, sigue estos pasos:

    • roles/storage.admin en el bucket de origen y de destino

    • roles/storageinsights.admin en el proyecto

  • Para leer y descargar informes de inventario, sigue estos pasos:

    • roles/storage.objectViewer en el bucket de destino

    • roles/storageinsights.viewer en el proyecto

Estos roles predefinidos contienen los permisos necesarios para crear y administrar informes y configuraciones de inventario. Para ver los permisos exactos que son necesarios, expande la sección Permisos necesarios:

Permisos necesarios

Para crear y administrar configuraciones de informes de inventario, sigue estos pasos:

  • storage.buckets.get en el bucket de origen
  • storage.objects.list en el bucket de origen
  • storage.buckets.getObjectInsights en el bucket de origen
  • storage.buckets.get en el bucket de destino
  • storage.objects.create en el bucket de destino
  • storageinsights.reportConfigs.delete en el proyecto
  • storageinsights.reportConfigs.get en el proyecto
  • storageinsights.reportConfigs.create en el proyecto
  • storageinsights.reportConfigs.list en el proyecto
  • storageinsights.reportConfigs.update en el proyecto

Para leer y descargar informes de inventario, sigue estos pasos:

  • storage.objects.get en el bucket de destino
  • storageinsights.reportDetails.get en el proyecto
  • storageinsights.reportDetails.list en el proyecto

También puedes obtener estos permisos con otros roles predefinidos. Para ver qué roles están asociados con qué permisos, consulta Roles de IAM para Cloud Storage.

Si deseas obtener instrucciones sobre cómo usar roles para controlar el acceso a los buckets, consulta Usa IAM. Si deseas obtener instrucciones sobre cómo usar roles para controlar el acceso a los proyectos, consulta Administra el acceso.

Habilita la API de Storage Insights

Console

Para habilitar la API de storageinsights.googleapis.com, sigue las instrucciones en Habilita servicios.

Línea de comandos

Para habilitar la API de Storage Insights en tu proyecto actual, ejecuta el siguiente comando:

gcloud services enable storageinsights.googleapis.com

Si deseas obtener más detalles sobre cómo habilitar los servicios para un proyecto de Google Cloud, consulta Habilita e inhabilita servicios.

API de REST

API de JSON

Usa la consola de Google Cloud o la CLI de Google Cloud para habilitar la API de Storage Insights.

Crea una configuración de informes de inventario

Console

Para crear una configuración de informes de inventario, sigue estos pasos:

  1. En la consola de Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. En la lista de buckets, haz clic en el nombre del bucket que deseas usar como bucket de origen.

  3. En la página Detalles del bucket, haz clic en la pestaña Inventory reports.

  4. Haz clic en Create report configuration.

  5. En la sección Identifica la configuración de tu informe, crea un nombre visible para la configuración de informes de inventario. El nombre visible puede contener hasta 256 caracteres.

  6. En la sección Elige campos de metadatos, selecciona los campos de metadatos que deseas incluir en los informes de inventario.

  7. Haz clic en Continuar.

  8. En la sección Elige un formato de archivo, selecciona el formato de archivo en el que deseas generar informes de inventario.

  9. En la sección Elige un bucket de destino, selecciona el bucket que deseas usar como bucket de destino.

    En la sección Ingresar ruta de destino (opcional), puedes especificar una ruta de destino en la que se generarán informes de inventario.

  10. En la sección Opciones de programación, especifica la frecuencia, la fecha de inicio y la fecha de finalización para generar informes.

  11. Haz clic en Crear.

    Se muestra la página Report configuration details. Los metadatos de los informes de inventario generados aparecerán en la página.

Línea de comandos

  1. Para crear una configuración de informes de inventario, ejecuta el comando gcloud storage insights inventory-reports create:

    gcloud storage insights inventory-reports create SOURCE_BUCKET_URL \
      --csv-separator=SEPARATOR \
      --csv-delimiter=DELIMITER \
      --[no]-csv-header \
      --parquet \
      --display-name=DISPLAY_NAME \
      --destination=DESTINATION_PATH \
      --metadata-fields=METADATA_FIELD \
      --schedule-starts=START_DATE \
      --schedule-repeats=FREQUENCY \
      --schedule-repeats-until=END_DATE

    Reemplaza lo siguiente:

    • SOURCE_BUCKET_URL es la URL del bucket de origen. Por ejemplo, gs://my_example_source_bucket

    • SEPARATOR con el carácter que se usa para separar los registros en el archivo CSV del informe de inventario. Debe ser \n o \r\n. El valor predeterminado es \n. Opcional. Si se usa la marca --csv-separator, --parquet no se puede usar.

    • DELIMITER con el delimitador que separa los campos en el archivo CSV del informe de inventario. El valor puede incluir un carácter y no puede ser el mismo que SEPARATOR. El valor predeterminado es ,. Opcional. Si se usa --csv-delimiter, no se puede usar --parquet.

    • --[no]-csv-header con la marca que indica si se incluyen o no encabezados en el archivo CSV del informe de inventario Usa --csv-header para incluir encabezados y --no-csv-header para excluirlos. Si se usa alguna de las marcas, no se puede usar --parquet.

    • DISPLAY_NAME es el nombre editable de la configuración de informes de inventario. Opcional.

    • --parquet por la marca que genera informes de inventario en formato Apache Parquet en lugar de CSV. Si se usa, --csv-delimiter, --csv-separator y --[no-]csv-header no se pueden usar.

    • DESTINATION_PATH por el bucket o la carpeta en el bucket en el que se generarán los informes de inventario. Por ejemplo, gs://my_example_destination_bucket o gs://my_example_destination_bucket/path/to/inventory/report.

      Cuando especificas una ruta de acceso a una carpeta dentro de un bucket, puedes usar palabras clave en la ruta de acceso, que se sustituyen por sus valores correspondientes cuando se genera el informe. Esto te permite generar informes en un formato particionado de Hive para que puedas cargar o consultar los datos en BigQuery sin procesamiento adicional.

    • METADATA_FIELD por una lista separada por comas de los campos de metadatos que deseas incluir en el informe de inventario.

    • START_DATE con la fecha UTC en la que deseas comenzar a generar informes de inventario. Por ejemplo, 2022-01-15

    • FREQUENCY con la frecuencia con la que deseas que se generen los informes de inventario. Los valores son daily o weekly.

    • END_DATE con la fecha UTC después de la cual deseas dejar de generar informes de inventario. Debe ser un valor después de START_DATE. Por ejemplo, si especificas 2022-02-15, los informes de inventario ya no se generarán a partir del 16 de febrero de 2022.

Bibliotecas cliente

Java

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.


import com.google.cloud.storageinsights.v1.CSVOptions;
import com.google.cloud.storageinsights.v1.CloudStorageDestinationOptions;
import com.google.cloud.storageinsights.v1.CloudStorageFilters;
import com.google.cloud.storageinsights.v1.CreateReportConfigRequest;
import com.google.cloud.storageinsights.v1.FrequencyOptions;
import com.google.cloud.storageinsights.v1.LocationName;
import com.google.cloud.storageinsights.v1.ObjectMetadataReportOptions;
import com.google.cloud.storageinsights.v1.ReportConfig;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import com.google.common.collect.ImmutableList;
import com.google.type.Date;
import java.io.IOException;

public class CreateInventoryReportConfig {

  public static void createInventoryReportConfig(
      String projectId, String bucketLocation, String sourceBucket, String destinationBucket)
      throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      ReportConfig reportConfig =
          ReportConfig.newBuilder()
              .setDisplayName("Example inventory report configuration")
              .setFrequencyOptions(
                  FrequencyOptions.newBuilder()
                      .setFrequency(FrequencyOptions.Frequency.WEEKLY)
                      .setStartDate(Date.newBuilder().setDay(15).setMonth(8).setYear(3022).build())
                      .setEndDate(Date.newBuilder().setDay(15).setMonth(9).setYear(3022).build())
                      .build())
              .setCsvOptions(
                  CSVOptions.newBuilder()
                      .setDelimiter(",")
                      .setRecordSeparator("\n")
                      .setHeaderRequired(true)
                      .build())
              .setObjectMetadataReportOptions(
                  ObjectMetadataReportOptions.newBuilder()
                      .addAllMetadataFields(ImmutableList.of("project", "name", "bucket"))
                      .setStorageFilters(
                          CloudStorageFilters.newBuilder().setBucket(sourceBucket).build())
                      .setStorageDestinationOptions(
                          CloudStorageDestinationOptions.newBuilder()
                              .setBucket(destinationBucket)
                              .build())
                      .build())
              .build();
      CreateReportConfigRequest request =
          CreateReportConfigRequest.newBuilder()
              .setParent(LocationName.of(projectId, bucketLocation).toString())
              .setReportConfig(reportConfig)
              .build();
      ReportConfig response = storageInsightsClient.createReportConfig(request);
      System.out.println("Created inventory report config with name " + response.getName());
    }
  }
}

API de REST

API de JSON

Para crear una configuración de informes de inventario, sigue estos pasos:

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Crea un archivo JSON que contenga la siguiente información, en la que todos los campos sean obligatorios, a menos que se indique lo contrario:

    {
      "display_name": "DISPLAY_NAME",
      "frequency_options": {
        "frequency": "FREQUENCY",
        "start_date": "START_DATE",
        "end_date": "END_DATE",
      },
      "csv_options": {
        "record_separator": "RECORD_SEPARATOR",
        "delimiter": "DELIMITER",
        "header_required": HEADER_REQUIRED
      },
      "object_metadata_report_options": {
         "metadata_fields": [
          "METADATA_FIELD",
          ...
        ],
        "storage_filters": {
          "bucket": "SOURCE_BUCKET_NAME"
        },
        "storage_destination_options": {
          "bucket": "DESTINATION_BUCKET_NAME",
          "destination_path": "DESTINATION_PATH"
        }
      }
    }

    Reemplaza lo siguiente:

    Por ejemplo, en el siguiente código de muestra, se crea una configuración de informes de inventario llamada “Ejemplo de configuración de informes de inventario” que genera informes con una frecuencia semanal:

    {
      "display_name": "Example inventory report configuration",
      "frequency_options": {
        "frequency": "WEEKLY",
        "start_date": {
          "day": 15,
          "month": 8,
          "year": 2022
        },
        "end_date": {
          "day": 15,
          "month": 9,
          "year": 2022
        },
      },
      "csv_options": {
        "record_separator": "\n",
        "delimiter": ",",
        "header_required": true
      },
      "object_metadata_report_options": {
         "metadata_fields": [
          "project",
          "name",
          "bucket"
        ],
        "storage_filters": {
          "bucket": "example_source_bucket"
        },
        "storage_destination_options": {
          "bucket": "example_destination_bucket"
        }
      }
    }
  3. Para aplicar la configuración de informes de inventario, usa lo siguiente: cURL para llamar a la API de JSON con un a solicitud deReportConfig Insert:

    curl -X POST --data-binary @JSON_FILE_NAME \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    Reemplaza lo siguiente:

    • JSON_FILE_NAME por la ruta de acceso al archivo JSON que creaste en el paso anterior.

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.

    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1.

Otorga los roles necesarios al agente de servicio:

La primera vez que estableces una configuración de informes de inventario, se crea de forma automática un agente de servicio a nivel de proyecto. El agente de servicio sigue el formato de nombres service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com y aparece en la página de IAM de la consola de Google Cloud cuando seleccionas la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.

Para permitir que las estadísticas de almacenamiento generen y escriban informes de inventario, pídele a tu administrador que otorgue al agente de servicio los siguientes roles de IAM:

  • roles/storage.insightsCollectorService en el bucket de origen, que incluye los permisos storage.buckets.getObjectInsights y storage.buckets.get
  • roles/storage.objectCreator en el bucket de destino, que incluye el permiso storage.objects.create

Si deseas obtener instrucciones para otorgar roles, consulta Usa IAM. Puedes otorgar el rol roles/storage.insightsCollectorService mediante la consola de Google Cloud o Google Cloud CLI. Por ejemplo:

gcloud storage buckets add-iam-policy-binding SOURCE_BUCKET_URL \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com \
    --role=roles/storage.insightsCollectorService

Una vez que se le otorga los permisos necesarios al agente de servicio, la escritura del primer informe de inventario en el bucket de destino puede tardar hasta 24 horas.

Cómo editar la configuración de un informe de inventario

Una vez que se crea una configuración de informe de inventario, puedes modificar ciertas propiedades de la configuración.

Console

Para editar la configuración de un informe de inventario, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. En la lista de buckets, haz clic en el nombre del bucket de origen que contiene la configuración del informe de inventario que deseas editar.

  3. En la página Detalles del bucket de tu bucket de origen, haz clic en la pestaña Inventory reports.

  4. Haz clic en el nombre de la configuración del informe de inventario que deseas editar.

  5. En la página Detalles de configuración del informe que aparece, edita las propiedades que deseas mediante el botón Editar.

Línea de comandos

Para editar la configuración de un informe de inventario, sigue estos pasos:

  1. Para encontrar el nombre de la configuración del informe de inventario que deseas editar, enumera todas las opciones de configuración del inventario en el depósito de origen mediante el comando gcloud storage insights inventory-reports list:

    gcloud storage insights inventory-reports list \
      --source=SOURCE_BUCKET \
      --filter=EXPRESSION \
      --page-size=SIZE \
      --sort-by=FIELD \
      --format="yaml(name)"

    Reemplaza lo siguiente:

    • SOURCE_BUCKET con la URL del bucket de origen que contiene la configuración de informes de inventario.

    • EXPRESSION con un filtro booleano que se aplicará a cada elemento de recurso que se enumerará. Si la expresión evalúa como Verdadero, el elemento aparece en la lista. Para obtener más detalles y ejemplos de expresiones de filtros, ejecuta $ gcloud topic filters.

    • SIZE por la cantidad máxima de recursos por página. El valor predeterminado es 50.

    • FIELD por una lista separada por comas de los nombres de claves de campo de recurso para ordenar. El orden predeterminado es ascendente. Agrega un prefijo ~ a un campo para obtener el orden descendente en ese campo.

    1. Edita los campos de configuración del informe de inventario que deseas actualizar mediante el comando gcloud storage insights inventory-reports update. En el siguiente ejemplo, se actualiza la configuración del informe de inventario para generar informes de inventario a diario en formato Parquet de Apache:

      gcloud storage insights inventory-reports update CONFIG_NAME \
      --parquet \
      --schedule-repeats="daily"

Bibliotecas cliente

Java

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.


import com.google.cloud.storageinsights.v1.ReportConfig;
import com.google.cloud.storageinsights.v1.ReportConfigName;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import com.google.cloud.storageinsights.v1.UpdateReportConfigRequest;
import com.google.protobuf.FieldMask;
import java.io.IOException;

public class EditInventoryReportConfig {


  public static void editInventoryReportConfig(
          String projectId, String location, String inventoryReportConfigUuid) throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      ReportConfigName name = ReportConfigName.of(projectId, location, inventoryReportConfigUuid);
      ReportConfig reportConfig = storageInsightsClient.getReportConfig(name);

      // Set any other fields you want to update here
      ReportConfig updatedReportConfig =
              reportConfig.toBuilder().setDisplayName("Updated Display Name").build();

      storageInsightsClient.updateReportConfig(
              UpdateReportConfigRequest.newBuilder()
                      // Add any fields that you want to update to the update mask, in snake case
                      .setUpdateMask(FieldMask.newBuilder().addPaths("display_name")
                              .build())
                      .setReportConfig(updatedReportConfig).build());

      System.out.println("Edited inventory report config with name " + name);
    }
  }
}

API de REST

API de JSON

Para editar la configuración de un informe de inventario, completa los siguientes pasos:

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Obtén el nombre de la configuración del informe de inventario que deseas editar mediante cURL para llamar a la API de JSON con una solicitud Get ReportConfig:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    Reemplaza lo siguiente:

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.

    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1.

    Si deseas recuperar todas las opciones de configuración de informes de inventario en un bucket de origen específico, agrega el parámetro de consulta filter a tu solicitud:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?filter=objectMetadataReportOptions.storageFilters.bucket=BUCKET_NAME" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    Reemplaza lo siguiente:

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.
    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1.
    • BUCKET_NAME con el nombre del bucket de origen que contiene las opciones de configuración de informes de inventario que deseas editar.
  3. Crea un archivo JSON que incluya cambios en las propiedades que deseas editar. En el siguiente ejemplo, se actualiza la configuración del informe de inventario para generar informes de inventario a diario en formato Parquet de Apache:

    {
      "ReportConfig": {
        "frequency_options": {
          "frequency": "DAILY"
        },
        "parquet_options": {
        }
      }
  4. Para aplicar la configuración de informes de inventario, usa lo siguiente: cURL para llamar a la API de JSON con una solicitud deReportConfig Patch:

    curl --request PATCH \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
      --data-binary "@JSON_FILE_NAME.json" \
    

    Reemplaza lo siguiente:

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.

    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1

    • REPORT_CONFIG_UUID con el UUID generado de forma automática de la configuración de informes de inventario.

Obtén una lista de las configuraciones de informes de inventario

Console

Para obtener una lista de las opciones de configuración del informe de inventario en un bucket de origen, completa los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. En la lista de buckets, haz clic en el nombre del bucket de origen que contiene la configuración del informe de inventario que deseas editar.

  3. En la página Detalles del bucket, haz clic en la pestaña Inventory reports.

    Aparecerán las configuraciones de informe de inventario en el bucket de origen.

Línea de comandos

Puedes obtener una lista de todas las opciones de configuración del inventario en un bucket de origen mediante el comando gcloud storage insights inventory-reports list:

gcloud storage insights inventory-reports list \
  --source=SOURCE_BUCKET \
  --filter=EXPRESSION \
  --page-size=SIZE \
  --sort-by=FIELD \
  --format="yaml(name)"
  

Reemplaza lo siguiente:

  • SOURCE_BUCKET con la URL del bucket de origen que contiene la configuración de informes de inventario.

  • EXPRESSION con un filtro booleano que se aplicará a cada elemento de recurso que se enumerará. Si la expresión evalúa como Verdadero, el elemento aparece en la lista. Para obtener más detalles y ejemplos de expresiones de filtros, ejecuta $ gcloud topic filters.

  • SIZE por la cantidad máxima de recursos por página. El valor predeterminado es 50.

  • FIELD por una lista separada por comas de los nombres de claves de campo de recurso para ordenar. El orden predeterminado es ascendente. Agrega un prefijo ~ a un campo para obtener el orden descendente en ese campo.

Bibliotecas cliente

Java

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.


import com.google.cloud.storageinsights.v1.LocationName;
import com.google.cloud.storageinsights.v1.ReportConfig;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import java.io.IOException;

public class ListInventoryReportConfigs {


  public static void listInventoryReportConfigs(String projectId, String location)
      throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      System.out.println(
          "Printing inventory report configs in project "
              + projectId
              + " and location "
              + location);
      for (ReportConfig config :
          storageInsightsClient
              .listReportConfigs(LocationName.of(projectId, location))
              .iterateAll()) {
        System.out.println(config.getName());
      }
    }
  }
}

API de REST

API de JSON

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Puedes obtener una lista de todas las opciones de configuración de informes de inventario en un proyecto para una ubicación determinada mediante una solicitud para enumerar las configuraciones de informes de inventario:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    Reemplaza lo siguiente:

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.

    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1.

    Si deseas obtener una lista de todas las opciones de configuración de informes de inventario en un bucket de origen específico, agrega el parámetro de consulta filter a tu solicitud:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs?filter=objectMetadataReportOptions.storageFilters.bucket=BUCKET_NAME" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    Reemplaza lo siguiente:

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.

    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1.

    • BUCKET_NAME con el nombre del bucket de origen que contiene las opciones de configuración de informes de inventario de las que deseas obtener una lista.

Descarga un informe de inventario

Console

Descarga informes individuales

Los informes de inventario se generan y se almacenan como objetos en el bucket de destino, por lo que puedes descargarlos como lo harías con un objeto normal.

Para descargar un informe de inventario, siga estos pasos:

  1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. En la lista de buckets, haz clic en el nombre del bucket de destino que contiene el informe de inventario que deseas descargar.

  3. En la página Detalles del bucket, asegúrate de que la pestaña Objetos esté seleccionada.

  4. Haz clic en Descargar asociado con el informe de inventario que deseas descargar.

Si no conoces el bucket de destino, también puedes descargar un informe de inventario a través de la configuración de informes de inventario a partir de la cual se generó:

  1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. En la lista de buckets, haz clic en el nombre del bucket de origen que contiene la configuración de informes de inventario que generó el informe que deseas descargar.

  3. En la página Detalles del bucket, haz clic en el nombre de la configuración de informes de inventario.

  4. En la página Report configuration details que aparecerá, navega a la sección Historial de informes de inventario y, luego, haz clic en la ruta de acceso del objeto de destino del informe de inventario que deseas descargar.

    Aparecerá la página Detalles del bucket para el bucket de destino que contiene el informe de inventario.

  5. Haz clic en Descargar asociado con el informe de inventario que deseas descargar.

Descargar fragmentos de informe

Para descargar un informe de inventario que se dividió en uno o más fragmentos, completa los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. En la lista de buckets, haz clic en el nombre del bucket de destino que especificaste cuando creaste la configuración del informe de inventario.

  3. En la página Detalles del bucket, verifica la presencia de un archivo de manifiesto. La presencia de un archivo de manifiesto indica que se generaron todos los fragmentos de un informe de inventario.

    Un ejemplo de nombre de archivo de manifiesto es fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

  4. En el bucket de destino, haz clic en Descargar asociado con el archivo de manifiesto. Anota los nombres de los archivos de fragmentación que deseas descargar desde el campo report_shards_file_names.

  5. En el bucket de destino, haz clic en Descargar asociado con los archivos de fragmentación que deseas descargar.

Línea de comandos

Descarga informes individuales

Para descargar un informe de inventario, siga estos pasos:

  1. Para enumerar todos los informes de inventario que generó una configuración de informes de inventario y recuperar su REPORT_DETAIL_ID, usa el comando gcloud storage insights inventory-reports details list:

    gcloud storage insights inventory-reports details list CONFIG_NAME \
      --filter=EXPRESSION \
      --page-size=SIZE \
      --sort-by=FIELD

    Reemplaza lo siguiente:

    • CONFIG_NAME con el nombre único de la configuración de informes de inventario, en el formato projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

    • EXPRESSION con un filtro booleano que se aplicará a cada elemento de recurso que se enumerará. Si la expresión se evalúa como True, se muestra ese elemento. Para obtener más detalles y ejemplos de expresiones de filtros, ejecuta $ gcloud topic filters.

    • SIZE con la cantidad máxima de recursos por página. El valor predeterminado es 50.

    • FIELD por una lista separada por comas de los nombres de claves de campo de recurso para ordenar. El orden predeterminado es ascendente. Agrega un prefijo ~ a un campo para obtener el orden descendente en ese campo.

    Si se completa correctamente, el comando muestra un resultado similar al siguiente:

    REPORT_DETAIL_ID            SNAPSHOT_TIME
    Report_2023-04-10T00-00     2023-04-10T00:53:03Z
    Report_2023-04-12T00-00     2023-04-12T00:52:54Z
    Report_2023-04-05T00-00     2023-04-05T00:53:01Z
  2. Para descargar un informe de inventario, primero debes recuperar la propiedad reportPathPrefix del objeto ReportDetail. Para obtener el reportPathPrefix de un informe, usa el comando gcloud storage insights inventory-reports details describe:

    gcloud storage insights inventory-reports details describe REPORT_DETAIL_NAME

    Reemplaza REPORT_DETAIL_NAME por el nombre del informe de inventario en el formato projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID.

Descargar fragmentos de informe

Para descargar un informe de inventario que se dividió en uno o más fragmentos, completa los siguientes pasos:

  1. Descarga el archivo de manifiesto del informe de inventario mediante el comando gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/MANIFEST_FILE_NAME DOWNLOAD_PATH

    Reemplaza lo siguiente:

    • BUCKET_NAME por el nombre del bucket de destino.

    • MANIFEST_FILE_NAME por el nombre del archivo de manifiesto en el bucket de destino, con la siguiente nomenclatura:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Donde:

      • REPORT_CONFIG_UUID es el UUID generado de forma automática de la configuración de informes de inventario que generó los fragmentos del informe que deseas descargar.

      • TARGET_DATETIME es la fecha y la hora en que se generó el informe de inventario.

      Por ejemplo, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

    • DOWNLOAD_PATH por la ruta de acceso al sistema de archivos en el que deseas guardar el informe de inventario. Por ejemplo, ./example_report.csv.

  2. Para descargar un archivo de fragmentación, usa el comando gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/SHARD_FILE_NAME DOWNLOAD_PATH

    Reemplaza lo siguiente:

    • BUCKET_NAME por el nombre del bucket de destino.

    • SHARD_FILE_NAME por el nombre codificado como URL del archivo de fragmento que deseas descargar. Por ejemplo, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv

    • DOWNLOAD_PATH por la ruta de acceso al sistema de archivos en el que deseas guardar el informe de inventario. Por ejemplo, ./example_report.csv.

Bibliotecas cliente

Java

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.


import com.google.cloud.storageinsights.v1.ReportConfig;
import com.google.cloud.storageinsights.v1.ReportConfigName;
import com.google.cloud.storageinsights.v1.ReportDetail;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import java.io.IOException;

public class GetInventoryReportNames {


  public static void getInventoryReportNames(
      String projectId, String location, String reportConfigUuid) throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      ReportConfig config =
          storageInsightsClient.getReportConfig(
              ReportConfigName.of(projectId, location, reportConfigUuid));
      String extension = config.hasCsvOptions() ? "csv" : "parquet";
      System.out.println(
          "You can use the Google Cloud Storage Client "
              + "to download the following objects from Google Cloud Storage:");
      for (ReportDetail reportDetail :
          storageInsightsClient.listReportDetails(config.getName()).iterateAll()) {
        for (long index = reportDetail.getShardsCount() - 1; index >= 0; index--) {
          System.out.println(reportDetail.getReportPathPrefix() + index + "." + extension);
        }
      }
    }
  }
}

API de REST

API de JSON

Descarga informes individuales

Para descargar un informe de inventario, siga estos pasos:

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Enumera todos los informes de inventario generados por una configuración de informes de inventario mediante el uso de cURL para llamar a la API de JSON con una solicitud para enumerar los detalles del informe de inventario:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    Reemplaza lo siguiente:

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.

    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1

    • REPORT_CONFIG_UUID por el UUID generado de forma automática de la configuración de informes de inventario que generó el informe que deseas descargar.

  3. Para obtener los detalles de un informe individual, usa cURL a fin de llamar a la API de JSON con una solicitud Get ReportDetails:

    curl --request GET \
    "https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID" \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
    

    Reemplaza lo siguiente:

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.

    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1

    • REPORT_CONFIG_UUID por el UUID generado de forma automática de la configuración de informes de inventario que generó el informe que deseas descargar.

    • REPORT_DETAIL_ID por el nombre del informe de inventario que deseas descargar.

Descargar fragmentos de informe

Para descargar un informe de inventario que se dividió en uno o más fragmentos, completa los siguientes pasos:

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Para descargar el archivo de manifiesto del informe de inventario, usa cURL para llamar a la API de JSON con una solicitud de objeto GET:

    curl -X GET \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Accept: application/json" \
      --header "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/MANIFEST_FILE_NAME?alt=media" \

    Reemplaza lo siguiente:

    • BUCKET_NAME por el nombre del bucket de destino.

    • MANIFEST_FILE_NAME por el nombre del archivo de manifiesto en el bucket de destino, con la siguiente nomenclatura:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Donde:

      • REPORT_CONFIG_UUID es el UUID generado de forma automática de la configuración de informes de inventario que generó los fragmentos del informe que deseas descargar.

      • TARGET_DATETIME es la fecha en que se generó el informe de inventario.

    Por ejemplo, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

    El campo report_shards_file_names del archivo de manifiesto contiene los nombres de los fragmentos del informe de inventario que puedes descargar.

  3. Si deseas descargar los archivos de fragmentos del informe de inventario, usa curl para llamar a la API de JSON de Cloud Storage con una solicitud Get Object:

    curl -X GET \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      -o "DOWNLOAD_PATH" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/SHARD_FILE_NAME?alt=media"

    Reemplaza lo siguiente:

    • DOWNLOAD_PATH por la ruta de acceso al sistema de archivos local en el que deseas guardar el objeto. Por ejemplo, Desktop/dog.png

    • BUCKET_NAME por el nombre del bucket de destino que contiene el informe de inventario. Por ejemplo, my-bucket

    • SHARD_FILE_NAME por el nombre codificado como URL del archivo de fragmento que deseas descargar. Por ejemplo, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv

Borra una configuración de informes de inventario

Console

Para borrar la configuración de un informe de inventario, completa los siguientes pasos:

  1. En la consola de Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. En la lista de buckets, haz clic en el nombre del bucket de origen que contiene la configuración del informe de inventario que deseas borrar.

  3. En la página Detalles del bucket de tu bucket de origen, haz clic en la pestaña Inventory reports.

  4. Haz clic en el nombre de la configuración del informe de inventario que deseas borrar.

  5. En la página Report configuration details que aparecerá, haz clic en Borrar.

Línea de comandos

Para borrar una configuración de informe de inventario, usa el comando gcloud storage insights inventory-reports delete:

gcloud storage insights inventory-reports delete CONFIG_NAME
  --force

Reemplaza CONFIG_NAME por el nombre único de la configuración del informe de inventario, en el formato projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

La marca --force borra los metadatos de todos los informes de inventario que generó la configuración de informes de inventario determinada. No se borrarán los objetos del informe de inventario.

Bibliotecas cliente

Java

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.


import com.google.cloud.storageinsights.v1.ReportConfigName;
import com.google.cloud.storageinsights.v1.StorageInsightsClient;
import java.io.IOException;

public class DeleteInventoryReportConfig {


  public static void deleteInventoryReportConfig(
      String projectId, String location, String inventoryReportConfigUuid) throws IOException {
    try (StorageInsightsClient storageInsightsClient = StorageInsightsClient.create()) {
      ReportConfigName name = ReportConfigName.of(projectId, location, inventoryReportConfigUuid);
      storageInsightsClient.deleteReportConfig(name);

      System.out.println("Deleted inventory report config with name " + name);
    }
  }
}

API de REST

API de JSON

Para borrar la configuración de un informe de inventario, completa los siguientes pasos:

  1. Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado Authorization.

  2. Para borrar una configuración de informe de inventario, usa cURL para llamar a la API de JSON con una solicitud Delete ReportConfig:

    curl --request DELETE \
    'https://storageinsights.googleapis.com/v1/projects/YOUR_PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID?force=true' \
      --header 'Authorization: Bearer $(gcloud auth print-access-token)' \
      --header 'Accept: application/json' \
      --header 'Content-Type: application/json' \
    

    Reemplaza lo siguiente:

    • YOUR_PROJECT por el nombre del proyecto en el que se encuentran tus buckets de origen y destino.

    • LOCATION por la ubicación de los buckets de origen y destino. Por ejemplo, us-west1

    • REPORT_CONFIG_UUID por el UUID generado de forma automática de la configuración de informes de inventario que deseas borrar.

El parámetro de consulta force borra los metadatos de todos los informes de inventario que generó la configuración de informes de inventario determinada. No se borrarán los objetos del informe de inventario.

Avanzado: Genera informes de inventario en un formato particionado de subárbol

Cuando creas una configuración de informes de inventario, puedes especificar una ruta de destino, que es una ubicación en tu bucket de destino en el que se generarán los informes de inventario. Esto te permite generar informes de inventario en formato particionado de Hive.

Especifica una ruta de destino con palabras clave de marcador de posición. Las palabras clave en la ruta de destino se sustituyen por sus valores correspondientes cuando se genera el informe de inventario. Por ejemplo, la ruta de destino config={{report-config-id}}/date={{date}} podría resolverse como config=1A34-F2E456-12B456-1C3D/date=2022-05-20.

Palabras clave de la ruta de destino

Puedes especificar las palabras clave report-config-id, date o datetime, incluídas dentro de {{ y }}, donde ocurre lo siguiente:

  • report-config-id es el UUID de la configuración de informes de inventario.

  • date es la fecha en que se genera el informe de inventario. Sigue el formato ISO 8601.

  • datetime es la fecha y la hora en que se genera el informe de inventario. Sigue el formato ISO 8601.

Las palabras clave se pueden especificar mediante cualquiera de las siguientes herramientas:

  • Cuando uses la consola de Google Cloud, especifica las palabras clave en la sección Ingresa la ruta de destino (opcional). Esta sección aparece cuando creas una configuración de informes de inventario.

  • Cuando uses Google Cloud CLI, especifica las palabras clave de marcador de posición con la marca --destination.

  • Cuando uses la API de JSON, especifica las palabras clave de marcador de posición en el campo storage_destination_options.destination_path del objeto ReportConfig.

Seguridad y control de acceso

Las siguientes recomendaciones y consideraciones se relacionan con la seguridad y el uso de los informes y las configuraciones de inventario:

  • Recomendamos que los usuarios con el rol roles/storage.admin también tengan los permisos storageinsights.reportConfigs.* para que puedan mantener el control sobre el uso de todos los recursos en sus buckets, como la lectura de objetos y sus metadatos.

  • Te recomendamos que limites el acceso a los recursos de tu informe de inventario mediante la asignación de los permisos storageinsights.reportConfigs.* solo a las personas necesarias.

  • Una vez que se crea una configuración de informes de inventario, esta continúa generando informes de inventarios, incluso si el usuario que creó la configuración ya no tiene los permisos necesarios. Para dejar de generar informes de inventario, puedes editar la fecha de finalización en la configuración del informe de inventario o borrar la configuración por completo.

¿Qué sigue?

  • Si tienes problemas para generar informes de inventario, consulta Solución de problemas a fin de obtener ayuda.