Utilizzare i report sull'inventario

I report sull'inventario di Cloud Storage ti consentono di generare esportazioni CSV o Apache Parquet pianificate dei metadati degli oggetti senza eseguire operazioni di elenco che richiedono un uso intensivo delle risorse. Puoi configurare le pianificazioni dei report, visualizzare i report generati e gestire le configurazioni dei report per controllare gli oggetti, analizzare i costi di archiviazione o convalidare le migrazioni dei dati.

Prima di iniziare

Prima di iniziare a creare e gestire i report sull'inventario e le relative configurazioni, segui le istruzioni riportate nelle sottosezioni successive.

Ottieni i ruoli richiesti

Per ottenere le autorizzazioni necessarie per creare e gestire i report sull'inventario, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto o sui bucket di origine e di destinazione con cui gestirai i report sull'inventario.

  • Per creare e gestire le configurazioni dei report sull'inventario:

    • roles/storage.admin sul bucket di origine e sul bucket di destinazione

    • roles/storageinsights.admin sul progetto

  • Per leggere e scaricare i report sull'inventario:

    • roles/storage.objectViewer sul bucket di destinazione

    • roles/storageinsights.viewer sul progetto

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare e gestire configurazioni e report sull'inventario. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare e gestire le configurazioni dei report sull'inventario:

  • storage.buckets.get sul bucket di origine
  • storage.objects.list sul bucket di origine
  • storage.buckets.getObjectInsights sul bucket di origine
  • storage.buckets.get sul bucket di destinazione
  • storage.objects.create sul bucket di destinazione
  • storageinsights.reportConfigs.delete sul progetto
  • storageinsights.reportConfigs.get sul progetto
  • storageinsights.reportConfigs.create sul progetto
  • storageinsights.reportConfigs.list sul progetto
  • storageinsights.reportConfigs.update sul progetto

Per leggere e scaricare i report sull'inventario:

  • storage.objects.get sul bucket di destinazione
  • storageinsights.reportDetails.get sul progetto
  • storageinsights.reportDetails.list sul progetto

Potresti anche ottenere queste autorizzazioni con altri ruoli predefiniti. Per vedere quali ruoli sono associati a quali autorizzazioni, consulta Ruoli IAM per Cloud Storage.

Per istruzioni sull'utilizzo dei ruoli per controllare l'accesso ai bucket, consulta Utilizza IAM. Per istruzioni sull'utilizzo dei ruoli per controllare l'accesso ai progetti, consulta Gestisci l'accesso.

Abilita l'API Storage Insights

Console

Abilita l'API Storage Insights, se non è già abilitata.

Ruoli richiesti per abilitare le API

Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

Abilitare l'API

Riga di comando

Abilita l'API Storage Insights, se non è già abilitata:

Ruoli richiesti per abilitare le API

Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

gcloud services enable storageinsights.googleapis.com

API REST

  1. Avere gcloud CLI installata e inizializzata, che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Per abilitare l'API Storage Insights, utilizza cURL per chiamare il metodo services.enable:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      https://serviceusage.googleapis.com/v1/projects/PROJECT_ID/services/storageinsights.googleapis.com:enable
    

    Sostituisci:

    PROJECT_ID con l'ID del progetto per cui vuoi abilitare l'API.

Crea una configurazione di report sull'inventario

Console

Per creare una configurazione del report sull'inventario, completa i seguenti passaggi:

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che vuoi utilizzare come bucket di origine.

  3. Nella pagina Dettagli bucket, fai clic sulla scheda Report sull'inventario.

  4. Fai clic su Crea configurazione di report.

  5. Nella sezione Identifica la configurazione dei report, crea un nome visualizzato per la configurazione dei report sull'inventario. Il nome visualizzato può contenere fino a 256 caratteri.

  6. Nella sezione Scegli i campi dei metadati, seleziona i campi dei metadati che vuoi includere nei report sull'inventario.

  7. Fai clic su Continua.

  8. Nella sezione Scegli un formato file, seleziona il formato file in cui vuoi generare i report sull'inventario.

  9. Nella sezione Scegli un bucket di destinazione, seleziona il bucket che vuoi utilizzare come bucket di destinazione.

    Nella sezione Inserisci il percorso di destinazione (facoltativo), puoi facoltativamente specificare un percorso di destinazione in cui verranno generati i report sull'inventario.

  10. Nella sezione Opzioni di pianificazione, specifica la frequenza, la data di inizio e la data di fine per la generazione dei report.

  11. Fai clic su Crea.

    Viene visualizzata la pagina Dettagli configurazione report. I metadati dei report sull'inventario generati verranno visualizzati nella pagina.

Riga di comando

  1. Per creare una configurazione del report sull'inventario, esegui il 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

    Sostituisci:

    • SOURCE_BUCKET_URL con l'URL del bucket di origine. Ad esempio, gs://my_example_source_bucket.

    • SEPARATOR con il carattere utilizzato per separare i record nel file CSV del report sull'inventario. Deve essere \n o \r\n. Il valore predefinito è \n. Facoltativo. Se viene utilizzato il flag --csv-separator, non è possibile utilizzare --parquet.

    • DELIMITER con il delimitatore che separa i campi nel file CSV del report sull'inventario. Il valore può includere un carattere e non può essere uguale a SEPARATOR. Il valore predefinito è ,. Facoltativo. Se viene utilizzato --csv-delimiter, non è possibile utilizzare --parquet.

    • --[no]-csv-header con il flag che indica se le intestazioni sono incluse o meno nel file CSV del report sull'inventario. Utilizza --csv-header per includere le intestazioni e --no-csv-header per escluderle. Se viene utilizzato uno dei due flag, non è possibile utilizzare --parquet.

    • DISPLAY_NAME con il nome modificabile della configurazione del report sull'inventario. Facoltativo.

    • --parquet con il flag che genera report sull'inventario in formato Apache Parquet anziché CSV. Se utilizzato, --csv-delimiter, --csv-separator e --[no-]csv-header non possono essere utilizzati.

    • DESTINATION_PATH con il bucket o la cartella nel bucket in cui verranno generati i report sull'inventario. Ad esempio, gs://my_example_destination_bucket o gs://my_example_destination_bucket/path/to/inventory/report.

      Quando specifichi un percorso di una cartella all'interno di un bucket, puoi utilizzare parole chiave nel percorso, che vengono sostituite con i valori corrispondenti al momento della generazione del report. In questo modo puoi generare report in un formato partizionato Hive per caricare o eseguire query sui dati in BigQuery senza ulteriori elaborazioni.

    • METADATA_FIELD con un elenco separato da virgole di campi dei metadati che vuoi includere nel report sull'inventario.

    • START_DATE con la data UTC in cui vuoi iniziare a generare i report sull'inventario. Ad esempio, 2022-01-15.

    • FREQUENCY con la frequenza con cui vuoi che vengano generati i report sull'inventario. I valori sono daily o weekly.

    • END_DATE con la data UTC dopo la quale vuoi interrompere la generazione dei report sull'inventario. Deve essere un valore successivo a START_DATE. Ad esempio, se specifichi 2022-02-15, i report sull'inventario non verranno più generati a partire dal 16 febbraio 2022.

Librerie client

Java

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.


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

Per creare una configurazione del report sull'inventario, completa i seguenti passaggi:

  1. Avere gcloud CLI installata e inizializzata, che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Crea un file JSON che contenga le seguenti informazioni, dove tutti i campi sono obbligatori, se non diversamente specificato:

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

    Sostituisci:

    • DISPLAY_NAME con il nome visualizzato modificabile della configurazione del report sull'inventario. Può contenere fino a 256 caratteri.

    • FREQUENCY con la frequenza di generazione dei report sull'inventario. I valori sono DAILY o WEEKLY.

    • START_DATE con la data UTC in cui vuoi iniziare a generare i report sull'inventario. Non può essere la data corrente o una data passata. Il valore deve essere un oggetto contenente le chiavi day, month e year. Ad esempio: {"day": 15, "month": 8, "year": 2022}.

    • END_DATE con la data UTC dopo la quale vuoi interrompere la generazione dei report sull'inventario. Il valore deve essere un oggetto contenente le chiavi day, month e year. Ad esempio, se specifichi {"day": 15, "month": 9, "year": 2022}, i report sull'inventario non vengono più generati a partire dal 16 settembre 2022.

    • RECORD_SEPARATOR con il carattere utilizzato per separare i record nel file CSV del report sull'inventario. Deve essere \n o \r\n. Il valore predefinito è \n. Questo campo è facoltativo.

    • DELIMITER con il delimitatore che separa i campi nel file CSV del report sull'inventario. Il valore può includere un carattere e non può essere uguale a RECORD_SEPARATOR. Il valore predefinito è ,. Questo campo è facoltativo.

    • HEADER_REQUIRED con il valore booleano che indica se le intestazioni sono incluse o meno nel file CSV. Questo campo è facoltativo.

    • SOURCE_BUCKET_NAME con il nome del bucket di origine che contiene gli oggetti per cui vuoi generare i report sull'inventario. Ad esempio: my_example_bucket.

    • METADATA_FIELD con un elenco separato da virgole di campi dei metadati che vuoi includere nel report sull'inventario.

    • DESTINATION_BUCKET_NAME con il nome del bucket di destinazione in cui vengono generati e archiviati i report sull'inventario. Ad esempio: my_example_destination_bucket.

    • DESTINATION_PATH con il percorso nel bucket di destinazione in cui vengono generati i report sull'inventario. Questo campo è facoltativo.

      Quando specifichi un percorso di una cartella all'interno di un bucket, puoi utilizzare parole chiave nel percorso, che vengono sostituite con i valori corrispondenti al momento della generazione del report. In questo modo puoi generare report in un formato partizionato Hive per caricare o eseguire query sui dati in BigQuery senza ulteriori elaborazioni.

    Ad esempio, il seguente esempio di codice crea una configurazione del report sull'inventario denominata "Esempio di configurazione del report sull'inventario" che genera report con frequenza settimanale:

    {
      "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. Per applicare la configurazione del report sull'inventario, utilizza cURL per chiamare l'API JSON con una richiesta Create 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" \
    

    Sostituisci:

    • JSON_FILE_NAME con il percorso del file JSON che hai creato nel passaggio precedente.

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.

    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.

Concedi i ruoli richiesti all'agente di servizio

La prima volta che configuri un report sull'inventario, viene creato automaticamente un agente di servizio a livello di progetto. L'agente di servizio segue il formato di denominazione service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com e viene visualizzato nella pagina IAM della console Google Cloud quando selezioni la casella di controllo Includi concessioni di ruoli fornite da Google.

Per consentire a Storage Insights di generare e scrivere report sull'inventario, chiedi all'amministratore di concedere all'agente di servizio i seguenti ruoli IAM:

  • roles/storage.insightsCollectorService sul bucket di origine, che include le autorizzazioni storage.buckets.getObjectInsights e storage.buckets.get
  • roles/storage.objectCreator sul bucket di destinazione, che include l'autorizzazione storage.objects.create

Per istruzioni sulla concessione dei ruoli, consulta Utilizza IAM. Puoi concedere il ruolo roles/storage.insightsCollectorService utilizzando la console Google Cloud o Google Cloud CLI. Ad esempio:

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 volta concesse le autorizzazioni necessarie al service agent, sono necessarie fino a 24 ore per scrivere il primo report sull'inventario nel bucket di destinazione.

Modifica una configurazione di report sull'inventario

Una volta creata una configurazione del report sull'inventario, puoi modificare alcune proprietà della configurazione.

Console

Per modificare una configurazione di report sull'inventario:

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di origine che contiene la configurazione del report sull'inventario da modificare.

  3. Nella pagina Dettagli bucket del bucket di origine, fai clic sulla scheda Report sull'inventario.

  4. Fai clic sul nome della configurazione del report sull'inventario che vuoi modificare.

  5. Nella pagina Dettagli configurazione report visualizzata, modifica le proprietà utilizzando il pulsante Modifica.

Riga di comando

Per modificare una configurazione di report dell'inventario:

  1. Per trovare il nome della configurazione del report sull'inventario che vuoi modificare, elenca tutte le configurazioni dell'inventario nel bucket di origine utilizzando il 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)"

    Sostituisci:

    • SOURCE_BUCKET con l'URL del bucket di origine che contiene la configurazione del report sull'inventario.

    • EXPRESSION con un filtro booleano da applicare a ogni elemento della risorsa da elencare. Se l'espressione restituisce True, la voce viene elencata. Per ulteriori dettagli ed esempi di espressioni di filtro, esegui $ gcloud topic filters.

    • SIZE con il numero massimo di risorse per pagina. Il valore predefinito è 50.

    • FIELD con un elenco separato da virgole con i nomi delle chiavi dei campi delle risorse in base a cui eseguire l'ordinamento. L'ordine predefinito è crescente. Anteponi ~ a un campo per ordinare i dati in ordine decrescente in base al campo in questione.

    1. Modifica i campi di configurazione del report sull'inventario che vuoi aggiornare utilizzando il comando gcloud storage insights inventory-reports update. L'esempio seguente aggiorna la configurazione del report sull'inventario per generare report sull'inventario giornalieri in formato Apache Parquet:

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

Librerie client

Java

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.


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

Per modificare una configurazione del report sull'inventario, completa i seguenti passaggi:

  1. Avere gcloud CLI installata e inizializzata, che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Recupera il nome della configurazione del report sull'inventario che vuoi modificare utilizzando cURL per chiamare l'API JSON con una richiesta 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" \
    

    Sostituisci:

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.

    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.

    Se vuoi recuperare tutte le configurazioni dei report sull'inventario in un bucket di origine specifico, aggiungi il parametro di query filter alla tua richiesta:

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

    Sostituisci:

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.
    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.
    • BUCKET_NAME con il nome del bucket di origine che contiene le configurazioni dei report sull'inventario che vuoi modificare.
  3. Crea un file JSON che includa le modifiche alle proprietà che vuoi modificare. L'esempio seguente aggiorna la configurazione del report sull'inventario per generare report sull'inventario giornalieri in formato Apache Parquet:

    {
      "ReportConfig": {
        "frequency_options": {
          "frequency": "DAILY"
        },
        "parquet_options": {
        }
      }
  4. Per applicare la configurazione del report sull'inventario, utilizza cURL per chiamare l'API JSON con una richiesta 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" \
    

    Sostituisci:

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.

    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.

    • REPORT_CONFIG_UUID con l'UUID generato automaticamente della configurazione del report sull'inventario.

Elenca configurazioni dei report sull'inventario

Console

Per elencare le configurazioni dei report sull'inventario in un bucket di origine, completa i seguenti passaggi:

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di origine che contiene le configurazioni dei report sull'inventario che vuoi visualizzare.

  3. Nella pagina Dettagli bucket, fai clic sulla scheda Report sull'inventario.

    Vengono visualizzate le configurazioni dei report sull'inventario nel bucket di origine.

Riga di comando

Puoi elencare tutte le configurazioni dell'inventario in un bucket di origine utilizzando il 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)"
  

Sostituisci:

  • SOURCE_BUCKET con l'URL del bucket di origine che contiene la configurazione del report sull'inventario.

  • EXPRESSION con un filtro booleano da applicare a ogni elemento della risorsa da elencare. Se l'espressione restituisce True, la voce viene elencata. Per ulteriori dettagli ed esempi di espressioni di filtro, esegui $ gcloud topic filters.

  • SIZE con il numero massimo di risorse per pagina. Il valore predefinito è 50.

  • FIELD con un elenco separato da virgole con i nomi delle chiavi dei campi delle risorse in base a cui eseguire l'ordinamento. L'ordine predefinito è crescente. Anteponi ~ a un campo per ordinare i dati in ordine decrescente in base al campo in questione.

Librerie client

Java

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.


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. Avere gcloud CLI installata e inizializzata, che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Puoi elencare tutte le configurazioni dei report sull'inventario in un progetto per una determinata località utilizzando una richiesta per elencare le configurazioni dei report sull'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" \
    

    Sostituisci:

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.

    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.

    Se vuoi elencare tutte le configurazioni dei report sull'inventario in un bucket di origine specifico, aggiungi il parametro di query filter alla richiesta:

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

    Sostituisci:

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.

    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.

    • BUCKET_NAME con il nome del bucket di origine che contiene le configurazioni dei report sull'inventario che vuoi elencare.

Scarica un report sull'inventario

Console

Scarica singoli report

I report sull'inventario vengono generati e archiviati come oggetti nel bucket di destinazione, quindi puoi scaricarli come faresti con un oggetto normale.

Per scaricare un report sull'inventario, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di destinazione che contiene il report sull'inventario che vuoi scaricare.

  3. Nella pagina Dettagli bucket, assicurati che sia selezionata la scheda Oggetti.

  4. Fai clic su Scarica associato al report sull'inventario che vuoi scaricare.

Se non conosci il bucket di destinazione, puoi anche scaricare un report sull'inventario tramite la configurazione del report sull'inventario da cui è stato generato:

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di origine contenente la configurazione del report sull'inventario che ha generato il report che vuoi scaricare.

  3. Nella pagina Dettagli bucket, fai clic sul nome della configurazione del report sull'inventario.

  4. Nella pagina Dettagli della configurazione del report visualizzata, vai alla sezione Cronologia dei report sull'inventario, quindi fai clic sul percorso dell'oggetto di destinazione del report sull'inventario che vuoi scaricare.

    Viene visualizzata la pagina Dettagli bucket per il bucket di destinazione che contiene il report sull'inventario.

  5. Fai clic su Scarica associato al report sull'inventario che vuoi scaricare.

Scarica i report shard

Per scaricare un report sull'inventario suddiviso in uno o più shard, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di destinazione specificato al momento della creazione della configurazione del report sull'inventario.

  3. Nella pagina Dettagli bucket, verifica la presenza di un file manifest. La presenza di un file manifest indica che sono state generate tutte le partizioni di un report sull'inventario.

    Un esempio di nome file manifest è fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

  4. Nel bucket di destinazione, fai clic su Scarica associato al file manifest. Prendi nota dei nomi dei file di partizione che vuoi scaricare dal campo report_shards_file_names.

  5. Nel bucket di destinazione, fai clic su Scarica associato ai file di shard che vuoi scaricare.

Riga di comando

Scarica singoli report

Per scaricare un report sull'inventario, segui questi passaggi:

  1. Per elencare tutti i report sull'inventario generati da una configurazione dei report sull'inventario e recuperare il relativo REPORT_DETAIL_ID, utilizza il 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

    Sostituisci:

    • CONFIG_NAME con il nome univoco della configurazione del report dell'inventario, nel formato projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

    • EXPRESSION con un filtro booleano da applicare a ogni elemento della risorsa da elencare. Se l'espressione restituisce True, la voce viene elencata. Per ulteriori dettagli ed esempi di espressioni di filtro, esegui $ gcloud topic filters.

    • SIZE con il numero massimo di risorse per pagina. Il valore predefinito è 50.

    • FIELD con un elenco separato da virgole con i nomi delle chiavi dei campi delle risorse in base a cui eseguire l'ordinamento. L'ordine predefinito è crescente. Anteponi ~ a un campo per ordinare i dati in ordine decrescente in base al campo in questione.

    In caso di esito positivo, il comando restituisce un output simile al seguente:

    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. Per scaricare un report sull'inventario, devi prima recuperare la proprietà reportPathPrefix dell'oggetto ReportDetail. Per ottenere l'ID reportPathPrefix di un report, utilizza il comando gcloud storage insights inventory-reports details describe:

    gcloud storage insights inventory-reports details describe REPORT_DETAIL_NAME

    Sostituisci REPORT_DETAIL_NAME con il nome del report sull'inventario nel formato projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID.

Scarica i report shard

Per scaricare un report sull'inventario suddiviso in uno o più shard, completa i seguenti passaggi:

  1. Scarica il file manifest del report sull'inventario utilizzando il comando gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/MANIFEST_FILE_NAME DOWNLOAD_PATH

    Sostituisci:

    • BUCKET_NAME con il nome del bucket di destinazione.

    • MANIFEST_FILE_NAME con il nome del file manifest nel bucket di destinazione, nella seguente convenzione di denominazione:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Dove:

      • REPORT_CONFIG_UUID è l'UUID generato automaticamente della configurazione del report sull'inventario che ha generato gli shard del report che vuoi scaricare.

      • TARGET_DATETIME è la data e l'ora in cui è stato generato il report sull'inventario.

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

    • DOWNLOAD_PATH con il percorso del file system in cui vuoi salvare il report sull'inventario. Ad esempio, ./example_report.csv.

  2. Per scaricare un file di shard, utilizza il comando gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/SHARD_FILE_NAME DOWNLOAD_PATH

    Sostituisci:

    • BUCKET_NAME con il nome del bucket di destinazione.

    • SHARD_FILE_NAME con il nome con codifica URL del file shard che vuoi scaricare. Ad esempio, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv.

    • DOWNLOAD_PATH con il percorso del file system in cui vuoi salvare il report sull'inventario. Ad esempio, ./example_report.csv.

Librerie client

Java

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.


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

Scarica singoli report

Per scaricare un report sull'inventario, segui questi passaggi:

  1. Avere gcloud CLI installata e inizializzata, che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Elenca tutti i report sull'inventario generati da una configurazione dei report sull'inventario utilizzando cURL per chiamare l'API JSON con una richiesta di elencare i dettagli dei report sull'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" \
    

    Sostituisci:

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.

    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.

    • REPORT_CONFIG_UUID con l'UUID generato automaticamente della configurazione del report sull'inventario che ha generato il report che vuoi scaricare.

  3. Per ottenere i dettagli di un singolo report, utilizza cURL per chiamare l'API JSON con una richiesta 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" \
    

    Sostituisci:

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.

    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.

    • REPORT_CONFIG_UUID con l'UUID generato automaticamente della configurazione del report sull'inventario che ha generato il report che vuoi scaricare.

    • REPORT_DETAIL_ID con il nome del report sull'inventario che vuoi scaricare.

Scarica i report shard

Per scaricare un report sull'inventario suddiviso in uno o più shard, segui questi passaggi:

  1. Avere gcloud CLI installata e inizializzata, che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Per scaricare il file manifest del report sull'inventario, utilizza cURL per chiamare l'API JSON con una richiesta 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"

    Sostituisci:

    • BUCKET_NAME con il nome del bucket di destinazione.

    • MANIFEST_FILE_NAME con il nome del file manifest nel bucket di destinazione, nella seguente convenzione di denominazione:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Dove:

      • REPORT_CONFIG_UUID è l'UUID generato automaticamente della configurazione del report sull'inventario che ha generato i segmenti di report che vuoi scaricare.

      • TARGET_DATETIME è la data in cui è stato generato il report sull'inventario.

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

    Il campo report_shards_file_names del file manifest contiene i nomi degli shard del report sull'inventario che puoi scaricare.

  3. Per scaricare i file di partizione del report sull'inventario, utilizza curl per chiamare l'API JSON Cloud Storage con una richiesta 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"

    Sostituisci:

    • DOWNLOAD_PATH con il percorso del file system locale in cui vuoi salvare l'oggetto. Ad esempio, Desktop/dog.png.

    • BUCKET_NAME con il nome del bucket di destinazione contenente il report sull'inventario. Ad esempio, my-bucket.

    • SHARD_FILE_NAME con il nome codificato nell'URL del file shard che vuoi scaricare. Ad esempio, fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv.

Elimina una configurazione dei report sull'inventario

Console

Per eliminare una configurazione del report sull'inventario, completa i seguenti passaggi:

  1. Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di origine che contiene la configurazione del report sull'inventario che vuoi eliminare.

  3. Nella pagina Dettagli bucket del bucket di origine, fai clic sulla scheda Report sull'inventario.

  4. Fai clic sul nome della configurazione del report sull'inventario che vuoi eliminare.

  5. Nella pagina Dettagli della configurazione del report visualizzata, fai clic su Elimina.

Riga di comando

Per eliminare una configurazione dei report sull'inventario, utilizza il comando gcloud storage insights inventory-reports delete:

gcloud storage insights inventory-reports delete CONFIG_NAME
  --force

Sostituisci CONFIG_NAME con il nome univoco della configurazione del report sull'inventario, nel formato projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

Il flag --force elimina i metadati di tutti i report sull'inventario generati dalla configurazione del report sull'inventario specificata. Gli oggetti del report sull'inventario non vengono eliminati.

Librerie client

Java

Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.

Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.


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

Per eliminare una configurazione del report sull'inventario, completa i seguenti passaggi:

  1. Avere gcloud CLI installata e inizializzata, che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Per eliminare una configurazione dei report sull'inventario, utilizza cURL per chiamare l'API JSON con una richiesta 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' \
    

    Sostituisci:

    • YOUR_PROJECT con il nome del progetto in cui si trovano i bucket di origine e di destinazione.

    • LOCATION con la località dei bucket di origine e di destinazione. Ad esempio: us-west1.

    • REPORT_CONFIG_UUID con l'UUID generato automaticamente della configurazione del report sull'inventario che vuoi eliminare.

Il parametro di query force elimina i metadati di tutti i report sull'inventario generati dalla configurazione dei report sull'inventario specificata. Gli oggetti del report sull'inventario non vengono eliminati.

Avanzato: genera report sull'inventario in un formato partizionato Hive

Quando crei una configurazione del report di inventario, puoi specificare un percorso di destinazione, ovvero una località nel bucket di destinazione in cui verranno generati i report di inventario. In questo modo puoi generare report sull'inventario in un formato partizionato Hive.

Per specificare un percorso di destinazione, utilizza le parole chiave segnaposto. Al momento della generazione del report sull'inventario, le parole chiave nel percorso di destinazione vengono sostituite con i valori corrispondenti. Ad esempio, il percorso di destinazione config={{report-config-id}}/date={{date}} può essere risolto in config=1A34-F2E456-12B456-1C3D/date=2022-05-20.

Parole chiave del percorso di destinazione

Puoi specificare le parole chiave report-config-id, date o datetime, racchiuse tra {{ e }}, dove:

  • report-config-id è l'UUID della configurazione del report sull'inventario.

  • date è la data in cui viene generato il report sull'inventario. Segue il formato ISO 8601.

  • datetime è la data e l'ora in cui viene generato il report sull'inventario. Segue il formato ISO 8601.

Le parole chiave possono essere specificate utilizzando uno dei seguenti strumenti:

  • Quando utilizzi la console Google Cloud , specifica le parole chiave nella sezione (Facoltativo) Inserisci il percorso di destinazione. Questa sezione viene visualizzata quando crei una configurazione di report sull'inventario.

  • Se utilizzi Google Cloud CLI, specifica le parole chiave segnaposto utilizzando il flag --destination.

  • Quando utilizzi l'API JSON, specifica le parole chiave segnaposto nel campo storage_destination_options.destination_path dell'oggetto ReportConfig.

Controllo degli accessi e sicurezza

I seguenti suggerimenti e considerazioni riguardano la sicurezza e l'utilizzo dei report e delle configurazioni dell'inventario:

  • Consigliamo agli utenti con il ruolo roles/storage.admin di avere anche le autorizzazioni storageinsights.reportConfigs.* per mantenere il controllo sull'utilizzo di tutte le risorse nei bucket, ad esempio la lettura di oggetti e dei relativi metadati.

  • Ti consigliamo di limitare l'accesso alle risorse del report sull'inventario concedendo le autorizzazioni storageinsights.reportConfigs.* solo alle persone necessarie.

  • Una volta creata, una configurazione dei report sull'inventario continua a generare report sull'inventario anche se l'utente che l'ha creata non dispone più delle autorizzazioni richieste. Per interrompere la generazione dei report sull'inventario, puoi modificare la data di fine nella configurazione dei report sull'inventario o eliminare completamente la configurazione.

Passaggi successivi

  • Se riscontri problemi con la generazione dei report sull'inventario, consulta Risoluzione dei problemi per assistenza.