Créer et gérer des rapports d'inventaire

Cette page explique comment créer et gérer des configurations de rapport d'inventaire, ainsi que les rapports d'inventaire générés, afin d'obtenir un résumé général des métadonnées de tous vos objets dans un bucket donné. Pour obtenir une présentation des rapports d'inventaire, consultez la documentation de présentation des rapports d'inventaire Storage Insights.

Avant de commencer

Obtenir les rôles requis

Afin d'obtenir les autorisations nécessaires à la création et à la gestion des rapports d'inventaire, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet ou les buckets source et de destination avec lesquels vous gérerez les rapports d'inventaire.

  • Pour créer et gérer des configurations du rapport d'inventaire, procédez comme suit :

    • roles/storage.admin sur le bucket source et le bucket de destination

    • roles/storageinsights.admin sur le projet

  • Pour lire et télécharger des rapports d'inventaire, procédez comme suit :

    • roles/storage.objectViewer sur le bucket de destination

    • roles/storageinsights.viewer sur le projet

Ces rôles prédéfinis contiennent les autorisations requises pour créer et gérer des rapports et des configurations d'inventaire. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Pour créer et gérer des configurations du rapport d'inventaire, procédez comme suit :

  • storage.buckets.get sur le bucket source
  • storage.objects.list sur le bucket source
  • storage.buckets.getObjectInsights sur le bucket source
  • storage.buckets.get sur le bucket de destination
  • storage.objects.create sur le bucket de destination
  • storageinsights.reportConfigs.delete sur le projet
  • storageinsights.reportConfigs.get sur le projet
  • storageinsights.reportConfigs.create sur le projet
  • storageinsights.reportConfigs.list sur le projet
  • storageinsights.reportConfigs.update sur le projet

Pour lire et télécharger des rapports d'inventaire, procédez comme suit :

  • storage.objects.get sur le bucket de destination
  • storageinsights.reportDetails.get sur le projet
  • storageinsights.reportDetails.list sur le projet

Vous pouvez également obtenir ces autorisations avec d'autres rôles prédéfinis. Pour connaître les rôles et les autorisations associées, consultez la page Rôles IAM pour Cloud Storage.

Pour obtenir des instructions sur l'utilisation des rôles pour contrôler l'accès aux buckets, consultez la page Utiliser IAM. Pour obtenir des instructions sur l'utilisation des rôles pour contrôler l'accès aux projets, consultez la section Gérer les accès.

Activer l'API Storage Insights

Console

Pour activer l'API storageinsights.googleapis.com, suivez les instructions de la page Activer des services.

Ligne de commande

Pour activer l'API Storage Insights dans votre projet actuel, exécutez la commande suivante :

gcloud services enable storageinsights.googleapis.com

Pour en savoir plus sur l'activation des services dans un projet Google Cloud, consultez la page Activer et désactiver des services.

API REST

API JSON

Utilisez la console Google Cloud ou Google Cloud CLI pour activer l'API Storage Insights.

Créer une configuration de rapport d'inventaire

Console

Procédez comme suit pour créer une configuration de rapport d'inventaire :

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket que vous souhaitez utiliser comme bucket source.

  3. Sur la page Informations sur le bucket, cliquez sur l'onglet Rapports sur l'inventaire.

  4. Cliquez sur Créer une configuration de rapport.

  5. Dans la section Identifier la configuration de votre rapport, créez un nom à afficher pour la configuration du rapport d'inventaire. Le nom à afficher peut contenir jusqu'à 256 caractères.

  6. Dans la section Sélectionner des champs de métadonnées, choisissez les champs de métadonnées que vous souhaitez inclure dans vos rapports d'inventaire.

  7. Cliquez sur Continuer.

  8. Dans la section Choisir un format de fichier, sélectionnez le format de fichier dans lequel vous souhaitez générer des rapports d'inventaire.

  9. Dans la section Choisir un bucket de destination, sélectionnez le bucket que vous souhaitez utiliser en tant que bucket de destination.

    Dans Saisir un chemin de destination (facultatif), vous pouvez éventuellement spécifier un chemin de destination où les rapports d'inventaire seront générés.

  10. Dans la section Options de programmation, spécifiez la fréquence, la date de début et la date de fin de génération des rapports.

  11. Cliquez sur Créer.

    La page Détails de la configuration de rapport s'affiche. Les métadonnées des rapports d'inventaire générés s'affichent sur la page.

Ligne de commande

  1. Pour créer une configuration de rapport d'inventaire, exécutez la commande 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

    Remplacez :

    • SOURCE_BUCKET_URL par l'URL du bucket source ; Par exemple, gs://my_example_source_bucket.

    • SEPARATOR par le caractère utilisé pour séparer les enregistrements dans le fichier CSV du rapport d'inventaire. La valeur doit être définie sur \n ou \r\n. La valeur par défaut est \n. Facultatif. Si l'option --csv-separator est utilisée, --parquet ne peut pas être utilisé.

    • DELIMITER par le délimiteur qui sépare les champs du fichier CSV du rapport d'inventaire. La valeur peut inclure un caractère et ne doit pas être identique à celle de SEPARATOR. La valeur par défaut est ,. Facultatif. Si --csv-delimiter est utilisé, --parquet ne peut pas être utilisé.

    • --[no]-csv-header par l'option indiquant si les en-têtes sont inclus ou non dans le fichier CSV du rapport d'inventaire. Utilisez --csv-header pour inclure les en-têtes et --no-csv-header pour les exclure ; Si l'une de ces options est utilisée, --parquet ne peut pas être utilisé.

    • DISPLAY_NAME par le nom modifiable de la configuration de rapport d'inventaire. Facultatif.

    • --parquet par l'option qui génère les rapports d'inventaire au format Apache Parquet au lieu du format CSV. Si cette option est utilisée, --csv-delimiter, --csv-separator et --[no-]csv-header ne peuvent pas être utilisés.

    • DESTINATION_PATH par le bucket ou le dossier du bucket dans lequel les rapports d'inventaire seront générés. Par exemple, gs://my_example_destination_bucket ou gs://my_example_destination_bucket/path/to/inventory/report.

      Lorsque vous spécifiez un chemin d'accès à un dossier dans un bucket, vous pouvez utiliser des mots clés dans le chemin d'accès, qui sont remplacés par leurs valeurs correspondantes quand le rapport est généré. Cela vous permet de générer des rapports dans un format de partitionnement Hive afin de pouvoir charger ou interroger des données dans BigQuery sans traitement supplémentaire.

    • METADATA_FIELD par une liste de champs de métadonnées, séparés par une virgule, que vous souhaitez inclure dans le rapport d'inventaire.

    • START_DATE par la date UTC à laquelle vous souhaitez commencer à générer des rapports d'inventaire. Par exemple, 2022-01-15.

    • FREQUENCY par la fréquence à laquelle vous souhaitez générer les rapports d'inventaire. Les valeurs sont : daily ou weekly.

    • END_DATE par la date UTC après laquelle vous souhaitez cesser de générer des rapports d'inventaire. Doit être postérieure à la valeur START_DATE. Par exemple, si vous spécifiez 2022-02-15, les rapports d'inventaire ne seront plus générés à compter du 16 février 2022.

Bibliothèques clientes

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.


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 REST

API JSON

Procédez comme suit pour créer une configuration de rapport d'inventaire :

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Créez un fichier JSON contenant les informations suivantes. Tous les champs sont obligatoires, sauf indication contraire :

    {
      "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"
        }
      }
    }

    Remplacez :

    Par exemple, l'exemple de code suivant crée une configuration de rapport d'inventaire nommée "Exemple de configuration de rapport d'inventaire" qui génère des rapports à une fréquence hebdomadaire :

    {
      "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. Pour appliquer la configuration de rapport d'inventaire, utilisez cURL pour appeler l'API JSON avec une requête 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" \
    

    Remplacez :

    • JSON_FILE_NAME par le chemin d'accès au fichier JSON que vous avez créé à l'étape précédente.

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;

    • LOCATION par l'emplacement des buckets sources et de destination. Exemple :us-west1

Attribuer les rôles requis à l'agent de service

Un agent de service au niveau du projet est créé automatiquement la première fois que vous définissez une configuration de rapport d'inventaire. L'agent de service respecte le format de nom service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com et apparaît sur la page IAM de la console Google Cloud lorsque vous sélectionnez la case Inclure les attributions de rôles fournies par Google.

Pour permettre à Storage Insights de générer et d'écrire des rapports d'inventaire, demandez à votre administrateur d'attribuer les rôles IAM suivants à l'agent de service :

  • roles/storage.insightsCollectorService sur le bucket source, qui inclut les autorisations storage.buckets.getObjectInsights et storage.buckets.get
  • roles/storage.objectCreator sur le bucket de destination, qui inclut l'autorisation storage.objects.create

Pour obtenir des instructions sur l'attribution des rôles, consultez la page Utiliser IAM. Vous pouvez accorder le rôle roles/storage.insightsCollectorService à l'aide de la console Google Cloud ou de Google Cloud CLI. Exemple :

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

Une fois que l'agent de service dispose des autorisations requises, l'écriture du premier rapport d'inventaire dans le bucket de destination peut prendre jusqu'à 24 heures.

Modifier une configuration de rapport d'inventaire

Une fois la configuration du rapport d'inventaire créée, vous pouvez modifier certaines propriétés.

Console

Procédez comme suit pour modifier une configuration de rapport d'inventaire :

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket source contenant la configuration de rapport d'inventaire que vous souhaitez modifier.

  3. Sur la page Informations sur le bucket de votre bucket source, cliquez sur l'onglet Rapports sur l'inventaire.

  4. Cliquez sur le nom de la configuration de rapport d'inventaire que vous souhaitez modifier.

  5. Sur la page Détails de la configuration du rapport qui s'affiche, modifiez les propriétés de votre choix à l'aide du bouton Modifier.

Ligne de commande

Procédez comme suit pour modifier une configuration de rapport d'inventaire :

  1. Pour identifier le nom de la configuration de rapport d'inventaire que vous souhaitez modifier, listez toutes les configurations d'inventaire dans le bucket source à l'aide de la commande 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)"

    Remplacez :

    • SOURCE_BUCKET par l'URL du bucket source contenant la configuration de rapport d'inventaire ;

    • EXPRESSION par un filtre booléen à appliquer à chaque élément de ressource à lister. Si l'expression renvoie la valeur "True", l'élément est listé. Pour plus de détails et d'exemples d'expressions de filtre, exécutez la commande $ gcloud topic filters ;

    • SIZE par le nombre maximal de ressources par page. La valeur par défaut est 50.

    • FIELD par une liste de noms de clés de champ de ressources selon lesquels effectuer le tri, séparés par des virgules. L'ordre par défaut est croissant. Ajoutez le préfixe ~ pour l'ordre décroissant sur ce champ.

    1. Modifiez les champs de la configuration de rapport d'inventaire que vous souhaitez mettre à jour à l'aide de la commande gcloud storage insights inventory-reports update. L'exemple suivant met à jour la configuration de rapport d'inventaire de façon à générer des rapports d'inventaire une fois par jour au format Apache Parquet :

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

Bibliothèques clientes

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.


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 REST

API JSON

Procédez comme suit pour modifier une configuration de rapport d'inventaire :

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Récupérez le nom de la configuration de rapport d'inventaire que vous souhaitez modifier à l'aide de cURL pour appeler l'API JSON avec une requête 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" \
    

    Remplacez :

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;

    • LOCATION par l'emplacement des buckets sources et de destination. Exemple :us-west1

    Si vous souhaitez récupérer toutes les configurations de rapport d'inventaire situées dans un bucket source spécifique, ajoutez le paramètre de requête filter à votre requête :

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

    Remplacez :

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;
    • LOCATION par l'emplacement des buckets sources et de destination. Exemple : us-west1.
    • BUCKET_NAME par le nom du bucket source contenant les configurations de rapport d'inventaire que vous souhaitez modifier.
  3. Créez un fichier JSON incluant les modifications apportées aux propriétés que vous souhaitez modifier. L'exemple suivant met à jour la configuration de rapport d'inventaire de façon à générer des rapports d'inventaire une fois par jour au format Apache Parquet :

    {
      "ReportConfig": {
        "frequency_options": {
          "frequency": "DAILY"
        },
        "parquet_options": {
        }
      }
  4. Pour appliquer la configuration de rapport d'inventaire, utilisez cURL pour appeler l'API JSON avec une requête 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" \
    

    Remplacez :

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;

    • LOCATION par l'emplacement des buckets sources et de destination. Exemple : us-west1.

    • REPORT_CONFIG_UUID par l'UUID généré automatiquement de la configuration de rapport d'inventaire ;

Lister des configurations de rapport d'inventaire

Console

Procédez comme suit pour lister les configurations de rapport d'inventaire dans un bucket source :

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket source contenant les configurations de rapport d'inventaire que vous souhaitez consulter.

  3. Sur la page Informations sur le bucket, cliquez sur l'onglet Rapports sur l'inventaire.

    Les configurations de rapport d'inventaire figurant dans le bucket source s'affichent.

Ligne de commande

Vous pouvez lister toutes les configurations d'inventaire dans un bucket source à l'aide de la commande 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)"
  

Remplacez :

  • SOURCE_BUCKET par l'URL du bucket source contenant la configuration de rapport d'inventaire ;

  • EXPRESSION par un filtre booléen à appliquer à chaque élément de ressource à lister. Si l'expression renvoie la valeur "True", l'élément est listé. Pour plus de détails et d'exemples d'expressions de filtre, exécutez la commande $ gcloud topic filters ;

  • SIZE par le nombre maximal de ressources par page. La valeur par défaut est 50.

  • FIELD par une liste de noms de clés de champ de ressources selon lesquels effectuer le tri, séparés par des virgules. L'ordre par défaut est croissant. Ajoutez le préfixe ~ pour l'ordre décroissant sur ce champ.

Bibliothèques clientes

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.


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 REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Vous pouvez lister toutes les configurations de rapport d'inventaire dans un projet pour un emplacement donné à l'aide d'une requête permettant de répertorier les configurations de rapports d'inventaire:

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

    Remplacez :

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;

    • LOCATION par l'emplacement des buckets sources et de destination. Exemple :us-west1

    Si vous souhaitez lister toutes les configurations de rapport d'inventaire situées dans un bucket source spécifique, ajoutez le paramètre de requête filter à votre requête :

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

    Remplacez :

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;

    • LOCATION par l'emplacement des buckets sources et de destination. Exemple : us-west1.

    • BUCKET_NAME par le nom du bucket source contenant les configurations de rapport d'inventaire que vous souhaitez lister.

Télécharger un rapport d'inventaire

Console

Télécharger des rapports individuels

Les rapports d'inventaire sont générés et stockés en tant qu'objets dans le bucket de destination. Vous pouvez donc les télécharger comme vous le feriez pour un objet standard.

Procédez comme suit pour télécharger un rapport d'inventaire :

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket de destination qui contient le rapport d'inventaire que vous souhaitez télécharger.

  3. Sur la page Informations sur le bucket, assurez-vous que l'onglet Objets est sélectionné.

  4. Cliquez sur l'élément  Télécharger associé au rapport d'inventaire que vous souhaitez télécharger.

Si vous ne connaissez pas le bucket de destination, vous pouvez également télécharger un rapport d'inventaire via la configuration de rapport d'inventaire à partir de laquelle il a été généré :

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket source contenant la configuration de rapport d'inventaire ayant généré le rapport que vous souhaitez télécharger.

  3. Sur la page Informations sur le bucket, cliquez sur le nom de la configuration de rapport d'inventaire.

  4. Sur la page Détails de la configuration de rapport qui s'affiche, accédez à la section Historique du rapport d'inventaire, puis cliquez sur le chemin d'accès à l'objet de destination correspondant au rapport d'inventaire que vous souhaitez télécharger.

    La page Informations sur le bucket s'affiche alors pour le bucket de destination qui contient le rapport d'inventaire.

  5. Cliquez sur l'élément  Télécharger associé au rapport d'inventaire que vous souhaitez télécharger.

Télécharger des segments de rapport

Procédez comme suit pour télécharger un rapport d'inventaire qui a été divisé en un ou plusieurs segments :

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket de destination que vous avez spécifié lors de la création de la configuration du rapport d'inventaire.

  3. Sur la page Informations sur le bucket, vérifiez la présence d'un fichier manifeste. La présence d'un fichier manifeste indique que tous les segments d'un rapport d'inventaire ont été générés.

    Voici un exemple de nom de fichier manifeste : fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

  4. Dans le bucket de destination, cliquez sur le bouton  Télécharger associé au fichier manifeste. Repérez dans le champ report_shards_file_names les noms des fichiers de segment que vous souhaitez télécharger.

  5. Dans le bucket de destination, cliquez sur le bouton  Télécharger associé aux fichiers de segment que vous souhaitez télécharger.

Ligne de commande

Télécharger des rapports individuels

Procédez comme suit pour télécharger un rapport d'inventaire :

  1. Pour lister tous les rapports d'inventaire générés par une configuration de rapport d'inventaire et récupérer leur REPORT_DETAIL_ID, utilisez la commande gcloud storage insights inventory-reports details list :

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

    Remplacez :

    • CONFIG_NAME par le nom unique de la configuration de rapport d'inventaire, au format projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID ;

    • EXPRESSION par un filtre booléen à appliquer à chaque élément de ressource à lister. Si l'expression renvoie la valeur "True", cet élément est répertorié. Pour plus de détails et d'exemples d'expressions de filtre, exécutez $ gcloud topic filters.

    • SIZE par le nombre maximal de ressources par page. La valeur par défaut est 50.

    • FIELD par une liste de noms de clés de champ de ressources selon lesquels effectuer le tri, séparés par des virgules. L'ordre par défaut est croissant. Ajoutez le préfixe ~ pour l'ordre décroissant sur ce champ.

    Si l'opération réussit, la commande renvoie un résultat semblable à celui-ci :

    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. Pour télécharger un rapport d'inventaire, vous devez d'abord récupérer la propriété reportPathPrefix de l'objet ReportDetail. Pour obtenir la propriété reportPathPrefix d'un rapport, utilisez la commande gcloud storage insights inventory-reports details describe :

    gcloud storage insights inventory-reports details describe REPORT_DETAIL_NAME

    Remplacez REPORT_DETAIL_NAME par le nom du rapport d'inventaire au format projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID.

Télécharger des segments de rapport

Procédez comme suit pour télécharger un rapport d'inventaire qui a été divisé en un ou plusieurs segments :

  1. Téléchargez le fichier manifeste du rapport d'inventaire à l'aide de la commande gcloud storage cp :

    gcloud storage cp gs://BUCKET_NAME/MANIFEST_FILE_NAME DOWNLOAD_PATH

    Remplacez :

    • BUCKET_NAME par le nom du bucket de destination.

    • MANIFEST_FILE_NAME par le nom du fichier manifeste dans le bucket de destination, en respectant la convention de nommage suivante :

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Où :

      • REPORT_CONFIG_UUID est l'UUID généré automatiquement de la configuration de rapport d'inventaire qui a généré les segments de rapport que vous souhaitez télécharger.

      • TARGET_DATETIME correspond aux date et heure de génération du rapport d'inventaire.

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

    • DOWNLOAD_PATH est le chemin d'accès à votre système de fichiers dans lequel vous souhaitez enregistrer le rapport d'inventaire. Exemple : ./example_report.csv.

  2. Pour télécharger un fichier de segment, utilisez la commande gcloud storage cp :

    gcloud storage cp gs://BUCKET_NAME/SHARD_FILE_NAME DOWNLOAD_PATH

    Remplacez :

    • BUCKET_NAME par le nom du bucket de destination.

    • SHARD_FILE_NAME par le nom encodé en URL du fichier de segment que vous souhaitez télécharger. Exemple : fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv.

    • DOWNLOAD_PATH est le chemin d'accès à votre système de fichiers dans lequel vous souhaitez enregistrer le rapport d'inventaire. Exemple : ./example_report.csv.

Bibliothèques clientes

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.


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 REST

API JSON

Télécharger des rapports individuels

Procédez comme suit pour télécharger un rapport d'inventaire :

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Listez tous les rapports d'inventaire générés par une configuration de rapport d'inventaire en utilisant cURL pour appeler l'API JSON avec une requête pour répertorier les détails du rapport d'inventaire:

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

    Remplacez :

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;

    • LOCATION par l'emplacement des buckets sources et de destination. Exemple : us-west1.

    • REPORT_CONFIG_UUID par l'UUID généré automatiquement de la configuration de rapport d'inventaire qui a généré le rapport que vous souhaitez télécharger ;

  3. Pour obtenir les détails d'un rapport individuel, utilisez cURL pour appeler l'API JSON à l'aide d'une requête 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" \
    

    Remplacez :

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;

    • LOCATION par l'emplacement des buckets sources et de destination. Exemple : us-west1.

    • REPORT_CONFIG_UUID par l'UUID généré automatiquement de la configuration de rapport d'inventaire qui a généré le rapport que vous souhaitez télécharger ;

    • REPORT_DETAIL_ID par le nom du rapport d'inventaire que vous souhaitez télécharger ;

Télécharger des segments de rapport

Procédez comme suit pour télécharger un rapport d'inventaire qui a été divisé en un ou plusieurs segments :

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Pour télécharger le fichier manifeste du rapport d'inventaire, utilisez cURL pour appeler l'API JSON avec une requête d'objet 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" \

    Remplacez :

    • BUCKET_NAME par le nom du bucket de destination.

    • MANIFEST_FILE_NAME par le nom du fichier manifeste dans le bucket de destination, en respectant la convention de nommage suivante :

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Où :

      • REPORT_CONFIG_UUID est l'UUID généré automatiquement de la configuration de rapport d'inventaire qui a généré les segments de rapport que vous souhaitez télécharger.

      • TARGET_DATETIME est la date à laquelle le rapport d'inventaire a été généré.

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

    Le champ report_shards_file_names du fichier manifeste contient les noms des segments de rapport d'inventaire que vous pouvez télécharger.

  3. Pour télécharger les fichiers de segment du rapport d'inventaire, utilisez curl pour appeler l'API JSON Cloud Storage à l'aide d'une requête d'objet Get :

    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"

    Remplacez :

    • DOWNLOAD_PATH par le chemin d'accès à votre système de fichiers local dans lequel vous souhaitez enregistrer votre objet. Exemple : Desktop/dog.png.

    • BUCKET_NAME par le nom du bucket de destination contenant le rapport d'inventaire. Exemple : my-bucket.

    • SHARD_FILE_NAME par le nom encodé en URL du fichier de segment que vous souhaitez télécharger. Exemple : fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv.

Supprimer une configuration de rapport d'inventaire

Console

Procédez comme suit pour supprimer une configuration de rapport d'inventaire :

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket source contenant la configuration de rapport d'inventaire que vous souhaitez supprimer.

  3. Sur la page Informations sur le bucket de votre bucket source, cliquez sur l'onglet Rapports sur l'inventaire.

  4. Cliquez sur le nom de la configuration de rapport d'inventaire que vous souhaitez supprimer.

  5. Sur la page Détails de la configuration de rapport qui s'affiche, cliquez sur  Supprimer.

Ligne de commande

Pour supprimer une configuration de rapport d'inventaire, utilisez la commande gcloud storage insights inventory-reports delete :

gcloud storage insights inventory-reports delete CONFIG_NAME
  --force

Remplacez CONFIG_NAME par le nom unique de la configuration de rapport d'inventaire, au format projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

L'option --force supprime les métadonnées de tous les rapports d'inventaire générés par la configuration de rapport d'inventaire donnée. Les objets du rapport d'inventaire ne sont pas supprimés.

Bibliothèques clientes

Java

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.

Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.


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 REST

API JSON

Procédez comme suit pour supprimer une configuration de rapport d'inventaire :

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Pour supprimer une configuration de rapport d'inventaire, utilisez cURL pour appeler l'API JSON avec une requête 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' \
    

    Remplacez :

    • YOUR_PROJECT par le nom du projet dans lequel se trouvent vos buckets sources et de destination ;

    • LOCATION par l'emplacement des buckets sources et de destination. Exemple : us-west1.

    • REPORT_CONFIG_UUID par l'UUID généré automatiquement de la configuration de rapport d'inventaire que vous souhaitez supprimer ;

Le paramètre de requête force supprime les métadonnées de tous les rapports d'inventaire générés par la configuration de rapport d'inventaire donnée. Les objets du rapport d'inventaire ne sont pas supprimés.

Avancé : Générer des rapports d'inventaire dans un format de partitionnement Hive

Lorsque vous créez une configuration de rapport d'inventaire, vous pouvez spécifier un chemin de destination, qui correspond à un emplacement de votre bucket de destination où des rapports d'inventaire seront générés. Cela vous permet de générer des rapports d'inventaire dans un format de partitionnement Hive.

Pour spécifier un chemin de destination, vous devez utiliser des mots clés réservés. Les mots clés du chemin de destination sont remplacés par leurs valeurs correspondantes lors de la génération du rapport d'inventaire. Par exemple, le chemin de destination config={{report-config-id}}/date={{date}} peut être résolu en config=1A34-F2E456-12B456-1C3D/date=2022-05-20.

Mots clés du chemin de destination

Vous pouvez spécifier les mots clés report-config-id, date ou datetime, dans une section délimitée par {{ et }}, où :

  • report-config-id est l'UUID de la configuration de rapport d'inventaire.

  • date est la date à laquelle le rapport d'inventaire est généré. Elle utilise le format ISO 8601.

  • datetime est la date et l'heure de génération du rapport d'inventaire. Elle utilise le format ISO 8601.

Les mots clés peuvent être spécifiés à l'aide de l'un des outils suivants :

  • Lorsque vous utilisez la console Google Cloud, spécifiez des mots clés dans la section Saisir un chemin de destination (facultatif). Cette section s'affiche lorsque vous créez une configuration de rapport d'inventaire.

  • Lorsque vous utilisez Google Cloud CLI, spécifiez des mots clés réservés à l'aide de l'option --destination.

  • Lorsque vous utilisez l'API JSON, spécifiez des mots clés réservés dans le champ storage_destination_options.destination_path de l'objet ReportConfig.

Contrôle des accès et sécurité

Les recommandations et remarques suivantes concernent la sécurité et l'utilisation des rapports et des configurations d'inventaire :

  • Nous recommandons aux utilisateurs ayant le rôle roles/storage.admin de disposer également des autorisations storageinsights.reportConfigs.* pour pouvoir contrôler l'utilisation de toutes les ressources dans leurs buckets, telles que la lecture des objets et de leurs métadonnées.

  • Nous vous recommandons de limiter l'accès à vos ressources de rapport d'inventaire en accordant les autorisations storageinsights.reportConfigs.* uniquement aux personnes nécessaires.

  • Une fois qu'une configuration de rapport d'inventaire a été créée, elle continue de générer des rapports d'inventaire même si l'utilisateur qui l'a créée ne dispose plus des autorisations requises. Pour arrêter de générer des rapports d'inventaire, vous pouvez modifier la date de fin dans la configuration de rapport d'inventaire ou supprimer l'intégralité de la configuration.

Étapes suivantes

  • Si vous rencontrez des problèmes lors de la génération de rapports d'inventaire, consultez la section Dépannage pour obtenir de l'aide.