Usar informes de inventario

En esta página se describe cómo crear y gestionar configuraciones de informes de inventario e informes de inventario generados para obtener un resumen de alto nivel de los metadatos de todos tus objetos en un determinado contenedor. Para obtener una descripción general de los informes de inventario, consulta la documentación sobre los informes de inventario.

Antes de empezar

Obtener los roles necesarios

Para obtener los permisos necesarios para crear y gestionar informes de inventario, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto o en los segmentos de origen y de destino con los que vayas a gestionar los informes de inventario.

  • Para crear y gestionar configuraciones de informes de inventario, siga estos pasos:

    • roles/storage.admin en los segmentos 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 segmento de destino

    • roles/storageinsights.viewer en el proyecto

Estos roles predefinidos contienen los permisos necesarios para crear y gestionar informes y configuraciones de inventario. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para crear y gestionar configuraciones de informes de inventario, siga estos pasos:

  • storage.buckets.get en el segmento de origen
  • storage.objects.list en el segmento de origen
  • storage.buckets.getObjectInsights en el segmento de origen
  • storage.buckets.get en el segmento de destino
  • storage.objects.create en el segmento 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 segmento 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 a qué permisos, consulta Roles de gestión de identidades y accesos para Cloud Storage.

Para obtener instrucciones sobre cómo usar roles para controlar el acceso a los contenedores, consulta Usar gestión de identidades y accesos. Para obtener instrucciones sobre cómo usar los roles para controlar el acceso a los proyectos, consulta Gestionar el acceso.

Habilitar la API Storage Insights

Consola

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

Línea de comandos

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

gcloud services enable storageinsights.googleapis.com

Para obtener más información sobre cómo habilitar servicios en un proyecto de Google Cloud , consulta el artículo Habilitar e inhabilitar servicios.

APIs REST

API JSON

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

Crear una configuración de informe de inventario

Consola

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

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

    Ir a Contenedores

  2. En la lista de contenedores, haga clic en el nombre del contenedor que quiera usar como contenedor de origen.

  3. En la página Detalles del segmento, haga clic en la pestaña Informes de inventario.

  4. Haga clic en Crear configuración de informe.

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

  6. En la sección Elegir campos de metadatos, seleccione los campos de metadatos que quiera incluir en sus informes de inventario.

  7. Haz clic en Continuar.

  8. En la sección Elige un formato de archivo, seleccione el formato en el que quiera generar los informes de inventario.

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

    En la sección Introduce la ruta de destino (opcional), puede especificar una ruta de destino donde se generarán los informes de inventario.

  10. En la sección Opciones de programación, especifique la frecuencia y las fechas de inicio y finalización para generar informes.

  11. Haz clic en Crear.

    Se mostrará la página Detalles de configuración del informe. 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 informe de inventario, ejecute 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

    Sustituye:

    • SOURCE_BUCKET_URL con la URL del cubo de origen. Por ejemplo, gs://my_example_source_bucket.

    • SEPARATOR con el carácter usado 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, no se puede usar --parquet.

    • DELIMITER con el delimitador que separa los campos del 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 los encabezados se incluyen o no 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 dos marcas, no se puede usar --parquet.

    • DISPLAY_NAME con el nombre editable de la configuración del informe de inventario. Opcional.

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

    • DESTINATION_PATH con el segmento o la carpeta del segmento 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 especifica una ruta a una carpeta de un contenedor, puede usar palabras clave en la ruta, que se sustituyen por sus valores correspondientes cuando se genera el informe. De esta forma, puedes generar informes en formato particionado de Hive para cargar o consultar los datos en BigQuery sin necesidad de realizar ningún otro proceso.

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

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

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

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

Bibliotecas de cliente

Java

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

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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());
    }
  }
}

APIs REST

API JSON

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

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

  2. Crea un archivo JSON que contenga la siguiente información: todos los campos son 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"
        }
      }
    }

    Sustituye:

    Por ejemplo, el siguiente código de muestra crea una configuración de informe de inventario llamada "Example inventory report configuration" ("Configuración de informe de inventario de ejemplo") 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 del informe de inventario, usa cURL para llamar a la API JSON con una solicitud Insert ReportConfig:

    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" \
    

    Sustituye:

    • JSON_FILE_NAME con la ruta al archivo JSON que has creado en el paso anterior.

    • YOUR_PROJECT con el nombre del proyecto en el que se encuentran los contenedores de origen y de destino.

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

Asignar los roles necesarios al agente de servicio

Un agente de servicio a nivel de proyecto se crea automáticamente la primera vez que configuras un informe de inventario. El agente de servicio sigue el formato de nomenclatura service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com y aparece en la página Gestión de identidades y accesos de la consola Google Cloud cuando seleccionas la casilla Incluir asignaciones de roles proporcionadas por Google.

Para que Storage Insights pueda generar y escribir informes de inventario, pide a tu administrador que conceda al agente de servicio los siguientes roles de gestión de identidades y accesos:

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

Para obtener instrucciones sobre cómo conceder roles, consulta el artículo Usar IAM. Puedes asignar el rol roles/storage.insightsCollectorService mediante la consola 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 el agente de servicio tenga los permisos necesarios, se tardarán hasta 24 horas en escribir el primer informe de inventario en el contenedor de destino.

Editar una configuración de informe de inventario

Una vez que se ha creado una configuración de informe de inventario, puede modificar determinadas propiedades de la configuración.

Consola

Para editar una configuración de informe de inventario, siga estos pasos:

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

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento de origen que contiene la configuración del informe de inventario que quiere editar.

  3. En la página Detalles del contenedor de tu contenedor de origen, haz clic en la pestaña Informes de inventario.

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

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

Línea de comandos

Para editar una configuración de informe de inventario, siga estos pasos:

  1. Para encontrar el nombre de la configuración del informe de inventario que quieras editar, enumera todas las configuraciones de inventario del segmento 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)"

    Sustituye:

    • SOURCE_BUCKET con la URL del segmento de origen que contiene la configuración del informe de inventario.

    • EXPRESSION con un filtro booleano que se aplica a cada elemento de recurso que se va a incluir en la lista. Si la expresión da como resultado True, el elemento se muestra en la lista. Para obtener más información y ejemplos de expresiones de filtro, ejecuta $ gcloud topic filters.

    • SIZE con el número máximo de recursos por página. El valor predeterminado es 50.

    • FIELD con una lista de nombres de claves de campos de recursos separados por comas para ordenar los resultados. El orden predeterminado es ascendente. Añade el prefijo ~ a un campo para ordenarlo de forma descendente.

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

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

Bibliotecas de cliente

Java

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

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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);
    }
  }
}

APIs REST

API JSON

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

  1. Tener instalada e inicializadala CLI de gcloud, 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 quieras editar con cURL para llamar a la API 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" \
    

    Sustituye:

    • YOUR_PROJECT con el nombre del proyecto en el que se encuentran los contenedores de origen y de destino.

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

    Si quiere recuperar todas las configuraciones de informes de inventario de un bucket de origen específico, añada el parámetro de consulta filter a su 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" \
    

    Sustituye:

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

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

    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" \
    

    Sustituye:

    • YOUR_PROJECT con el nombre del proyecto en el que se encuentran los contenedores de origen y de destino.

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

    • REPORT_CONFIG_UUID con el UUID generado automáticamente de la configuración del informe de inventario.

Mostrar configuraciones de informes de inventario

Consola

Para enumerar las configuraciones de informes de inventario de un contenedor de origen, sigue estos pasos:

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

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento de origen que contenga las configuraciones de informes de inventario que quiera ver.

  3. En la página Detalles del segmento, haga clic en la pestaña Informes de inventario.

    Aparecerán las configuraciones de informes de inventario del segmento de origen.

Línea de comandos

Para enumerar todas las configuraciones de inventario de un contenedor de origen, usa 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)"
  

Sustituye:

  • SOURCE_BUCKET con la URL del segmento de origen que contiene la configuración del informe de inventario.

  • EXPRESSION con un filtro booleano que se aplica a cada elemento de recurso que se va a incluir en la lista. Si la expresión da como resultado True, el elemento se muestra en la lista. Para obtener más información y ejemplos de expresiones de filtro, ejecuta $ gcloud topic filters.

  • SIZE con el número máximo de recursos por página. El valor predeterminado es 50.

  • FIELD con una lista de nombres de claves de campos de recursos separados por comas para ordenar los resultados. El orden predeterminado es ascendente. Añade el prefijo ~ a un campo para ordenarlo de forma descendente.

Bibliotecas de cliente

Java

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

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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());
      }
    }
  }
}

APIs REST

API JSON

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

  2. Puede enumerar todas las configuraciones de informes de inventario de un proyecto en 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" \
    

    Sustituye:

    • YOUR_PROJECT con el nombre del proyecto en el que se encuentran los contenedores de origen y de destino.

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

    Si quiere enumerar todas las configuraciones de informes de inventario de un bucket de origen específico, añada el parámetro de consulta filter a su 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" \
    

    Sustituye:

    • YOUR_PROJECT con el nombre del proyecto en el que se encuentran los contenedores de origen y de destino.

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

    • BUCKET_NAME con el nombre del segmento de origen que contiene las configuraciones de informes de inventario que quiere enumerar.

Descargar un informe de inventario

Consola

Descargar informes individuales

Los informes de inventario se generan y se almacenan como objetos en el contenedor de destino, por lo que puede descargarlos como si fueran objetos normales.

Para descargar un informe de inventario, sigue estos pasos:

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

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento de destino que contiene el informe de inventario que quiere descargar.

  3. En la página Detalles del segmento, comprueba que esté seleccionada la pestaña Objetos.

  4. Haga clic en Descargar junto al informe de inventario que quiera descargar.

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

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

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento de origen que contiene la configuración del informe de inventario que ha generado el informe que quiere descargar.

  3. En la página Detalles del contenedor, haga clic en el nombre de configuración de la configuración del informe de inventario.

  4. En la página Detalles de configuración del informe que aparece, vaya a la sección Historial de informes de inventario y, a continuación, haga clic en la ruta del objeto de destino del informe de inventario que quiera descargar.

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

  5. Haga clic en Descargar junto al informe de inventario que quiera descargar.

Descargar fragmentos de informes

Para descargar un informe de inventario que se ha dividido en uno o varios fragmentos, siga estos pasos:

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

    Ir a Contenedores

  2. En la lista de contenedores, haga clic en el nombre del contenedor de destino que especificó al crear la configuración del informe de inventario.

  3. En la página Detalles del segmento, comprueba si hay un archivo de manifiesto. La presencia de un archivo de manifiesto indica que se han generado 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, haga clic en Descargar junto al archivo de manifiesto. Anota los nombres de los archivos de partición que quieras descargar del campo report_shards_file_names.

  5. En el bucket de destino, haga clic en Descargar junto a los archivos de partición que quiera descargar.

Línea de comandos

Descargar informes individuales

Para descargar un informe de inventario, sigue estos pasos:

  1. Para enumerar todos los informes de inventario que se han generado a partir de una configuración de informe de inventario y recuperar sus 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

    Sustituye:

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

    • EXPRESSION con un filtro booleano que se aplica a cada elemento de recurso que se va a incluir en la lista. Si la expresión se evalúa como True, se muestra ese elemento. Para obtener más información y ejemplos de expresiones de filtro, ejecuta $ gcloud topic filters.

    • SIZE con el número máximo de recursos por página. El valor predeterminado es 50.

    • FIELD con una lista de nombres de claves de campos de recursos separados por comas para ordenar los resultados. El orden predeterminado es ascendente. Añade el prefijo ~ a un campo para ordenarlo de forma descendente.

    Si la acción se realiza correctamente, el comando devuelve 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 debe obtener 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

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

Descargar fragmentos de informes

Para descargar un informe de inventario que se ha dividido en uno o varios fragmentos, siga estos pasos:

  1. Descargue el archivo de manifiesto del informe de inventario con el comando gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/MANIFEST_FILE_NAME DOWNLOAD_PATH

    Sustituye:

    • BUCKET_NAME con el nombre del cubo de destino.

    • MANIFEST_FILE_NAME con el nombre del archivo de manifiesto en el bucket de destino, siguiendo la siguiente convención de nomenclatura:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Donde:

      • REPORT_CONFIG_UUID es el UUID generado automáticamente de la configuración del informe de inventario que ha generado los fragmentos del informe que quiere descargar.

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

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

    • DOWNLOAD_PATH con la ruta al sistema de archivos donde quieras guardar el informe de inventario. Por ejemplo, ./example_report.csv.

  2. Para descargar un archivo de fragmento, usa el comando gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/SHARD_FILE_NAME DOWNLOAD_PATH

    Sustituye:

    • BUCKET_NAME con el nombre del cubo de destino.

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

    • DOWNLOAD_PATH con la ruta al sistema de archivos donde quieras guardar el informe de inventario. Por ejemplo, ./example_report.csv.

Bibliotecas de cliente

Java

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

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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);
        }
      }
    }
  }
}

APIs REST

API JSON

Descargar informes individuales

Para descargar un informe de inventario, sigue estos pasos:

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

  2. Para enumerar todos los informes de inventario generados por una configuración de informe de inventario, usa cURL para llamar a la API 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" \
    

    Sustituye:

    • YOUR_PROJECT con el nombre del proyecto en el que se encuentran los contenedores de origen y de destino.

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

    • REPORT_CONFIG_UUID con el UUID generado automáticamente de la configuración del informe de inventario que ha generado el informe que quieres descargar.

  3. Para obtener los detalles de un informe concreto, usa cURL para llamar a la API 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" \
    

    Sustituye:

    • YOUR_PROJECT con el nombre del proyecto en el que se encuentran los contenedores de origen y de destino.

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

    • REPORT_CONFIG_UUID con el UUID generado automáticamente de la configuración del informe de inventario que ha generado el informe que quieres descargar.

    • REPORT_DETAIL_ID con el nombre del informe de inventario que quieras descargar.

Descargar fragmentos de informes

Para descargar un informe de inventario que se ha dividido en uno o varios fragmentos, siga estos pasos:

  1. Tener instalada e inicializadala CLI de gcloud, 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 JSON con una solicitud GET Object:

    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" \

    Sustituye:

    • BUCKET_NAME con el nombre del segmento de destino.

    • MANIFEST_FILE_NAME con el nombre del archivo de manifiesto en el bucket de destino, siguiendo la siguiente convención de nomenclatura:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Donde:

      • REPORT_CONFIG_UUID es el UUID generado automáticamente de la configuración del informe de inventario que ha generado los fragmentos del informe que quieres descargar.

      • TARGET_DATETIME es la fecha en la 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 puede descargar.

  3. Para descargar los archivos de fragmentos del informe de inventario, usa curl para llamar a la API 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"

    Sustituye:

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

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

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

Eliminar una configuración de informe de inventario

Consola

Para eliminar una configuración de informe de inventario, siga estos pasos:

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

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento de origen que contiene la configuración del informe de inventario que quiere eliminar.

  3. En la página Detalles del contenedor de tu contenedor de origen, haz clic en la pestaña Informes de inventario.

  4. Haga clic en el nombre de la configuración del informe de inventario que quiera eliminar.

  5. En la página Detalles de configuración del informe que aparece, haz clic en Eliminar.

Línea de comandos

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

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

La marca --force elimina los metadatos de todos los informes de inventario generados por la configuración de informe de inventario especificada. Los objetos del informe de inventario no se eliminarán.

Bibliotecas de cliente

Java

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

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de 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);
    }
  }
}

APIs REST

API JSON

Para eliminar una configuración de informe de inventario, siga estos pasos:

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

  2. Para eliminar una configuración de informe de inventario, usa cURL para llamar a la API 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' \
    

    Sustituye:

    • YOUR_PROJECT con el nombre del proyecto en el que se encuentran los contenedores de origen y de destino.

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

    • REPORT_CONFIG_UUID con el UUID generado automáticamente de la configuración del informe de inventario que quieras eliminar.

El parámetro de consulta force elimina los metadatos de todos los informes de inventario generados por la configuración de informe de inventario indicada. Los objetos del informe de inventario no se eliminarán.

Opciones avanzadas: generar informes de inventario en formato particionado de Hive

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

Para especificar una ruta de destino, utiliza palabras clave de marcador de posición. Las palabras clave de 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}} puede resolverse como config=1A34-F2E456-12B456-1C3D/date=2022-05-20.

Palabras clave de ruta de destino

Puede especificar las palabras clave report-config-id, date o datetime, entre {{ y }}, donde:

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

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

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

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

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

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

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

Control de acceso y seguridad

Las siguientes recomendaciones y consideraciones se refieren a 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 de sus contenedores, como la lectura de objetos y sus metadatos.

  • Le recomendamos que limite el acceso a los recursos de su informe de inventario concediendo los permisos storageinsights.reportConfigs.* solo a las personas que los necesiten.

  • Una vez que se ha creado una configuración de informe de inventario, se siguen generando informes de inventario aunque el usuario que creó la configuración ya no tenga los permisos necesarios. Para dejar de generar informes de inventario, puede editar la fecha de finalización en la configuración del informe de inventario o eliminar la configuración por completo.

Siguientes pasos