Creare e gestire report sull'inventario

In questa pagina viene descritto come creare e gestire le configurazioni dei report sull'inventario e generati report sull'inventario, in modo da ottenere un riepilogo di alto livello di tutti oggetti in un determinato bucket. Per una panoramica dei report sull'inventario, consulta la documentazione di panoramica sui report sull'inventario di Storage Insights.

Prima di iniziare

Ottieni i ruoli richiesti

Per ottenere le autorizzazioni necessarie per creare e gestire l'inventario chiedi all'amministratore di concederti le seguenti autorizzazioni IAM: ruoli nel progetto o nei bucket di origine e di destinazione con cui gestire 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 nel progetto

  • Per leggere e scaricare i report sull'inventario:

    • roles/storage.objectViewer nel bucket di destinazione

    • roles/storageinsights.viewer nel progetto

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare e gestire report e configurazioni sull'inventario. Per vedere le autorizzazioni esatte obbligatorie, 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 nel bucket di destinazione
  • storage.objects.create nel bucket di destinazione
  • storageinsights.reportConfigs.delete nel progetto
  • storageinsights.reportConfigs.get nel progetto
  • storageinsights.reportConfigs.create nel progetto
  • storageinsights.reportConfigs.list nel progetto
  • storageinsights.reportConfigs.update nel progetto

Per leggere e scaricare i report sull'inventario:

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

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

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

Abilita l'API Storage Insights

Console

Per abilitare l'API storageinsights.googleapis.com, segui le vedi le istruzioni in Attivazione dei servizi.

Riga di comando

Per abilitare l'API Storage Insights nel tuo progetto corrente, esegui questo comando:

gcloud services enable storageinsights.googleapis.com

Per maggiori dettagli su come abilitare i servizi per un progetto Google Cloud, consulta Attivazione e disattivazione dei servizi.

API REST

API JSON

Utilizza la console Google Cloud o Google Cloud CLI per abilitare l'API Storage Insights.

Creare una configurazione di report sull'inventario

Console

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

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

    Vai a Bucket

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

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

  4. Fai clic su Crea configurazione report.

  5. Nella sezione Identifica la configurazione del report, crea una visualizzazione nome per la configurazione del report sull'inventario. Il nome visualizzato può contenere può includere un massimo di 256 caratteri.

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

  7. Fai clic su Continua.

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

  9. Nella sezione Scegli un bucket di destinazione, seleziona il bucket da utilizzare da usare come bucket di destinazione.

    Se vuoi, nella sezione Inserisci percorso di destinazione (facoltativo) specificare un percorso di destinazione in cui verranno generati i report sull'inventario generati.

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

  11. Fai clic su Crea.

    Viene visualizzata la pagina Dettagli configurazione report. I metadati di i report sull'inventario generati saranno visualizzati nella pagina.

Riga di comando

  1. Per creare una configurazione di report sull'inventario, esegui 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 della fonte di sincronizzare la directory di una VM con un bucket. 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 È in uso il flag --csv-separator. Impossibile usare --parquet.

    • DELIMITER con il delimitatore che separa le nel file CSV del report sull'inventario. Il valore può include un solo carattere e non può essere lo stesso valore di SEPARATOR. Il valore predefinito è ,. Facoltativo. Se viene usato --csv-delimiter, non è possibile usare --parquet.

    • --[no]-csv-header con la bandiera indica se le intestazioni sono incluse o meno nel report sull'inventario CSV. Usa --csv-header per includere intestazioni e --no-csv-header per escludere le intestazioni. Se è in uso uno dei due flag. Non è possibile usare --parquet.

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

    • --parquet con il flag che genera i report sull'inventario in formato Apache Parquet anziché CSV. Se utilizzati, --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.

      Se specifichi il percorso di una cartella all'interno di un bucket, puoi utilizzare le parole chiave nel percorso, che vengono sostituite con i valori corrispondenti quando viene generato il report. Questo consente di per generare report in formato partizionato da Hive in modo da poter caricare o eseguire query sui dati in BigQuery senza ulteriori elaborazioni.

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

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

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

    • END_DATE con la data UTC dopo la quale non vuoi più generare report sull'inventario. Deve essere un valore successivo a START_DATE. Ad esempio, se specifica 2022-02-15, i report sull'inventario non verranno più generati aggiornati al 16 febbraio 2022.

Librerie client

Java

Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


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 di report sull'inventario, completa i seguenti passaggi:

  1. Avere gcloud CLI installato e inizializzato, per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando il metodo OAuth 2.0 Playground e includilo nell'intestazione Authorization.

  2. Crea un file JSON contenente le seguenti informazioni, in cui 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 report sull'inventario. I valori sono DAILY o WEEKLY.

    • START_DATE con la data UTC in cui vuoi iniziare a generare report sull'inventario. Non può essere quella attuale o qualsiasi data nel passato. 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 non vuoi più generare report sull'inventario. Il valore deve essere un oggetto contenente le chiavi day, month e year. Ad esempio, se specificare {"day": 15, "month": 9, "year": 2022}, report sull'inventario non vengono più generate a partire dal 16 settembre 2022.

    • RECORD_SEPARATOR con il carattere utilizzato per separa 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 nei campi del file CSV del report sull'inventario. La può includere un solo carattere e non può essere uguale al RECORD_SEPARATOR. Il valore predefinito è ,. Questo campo è facoltativo.

    • HEADER_REQUIRED con il valore booleano 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 da generare 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 di Il bucket di destinazione in cui sono stati generati i report sull'inventario vengono generati e archiviati. Ad esempio: my_example_destination_bucket.

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

      Se specifichi il percorso di una cartella all'interno di un bucket, puoi utilizzare le parole chiave nel percorso, che vengono sostituite con i valori corrispondenti quando viene generato il report. Questo consente di per generare report in formato partizionato da Hive in modo da poter caricare o eseguire query sui dati in BigQuery senza ulteriori elaborazioni.

    Ad esempio, il seguente esempio di codice crea un report sull'inventario denominata "Configurazione del report sull'inventario di esempio" 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 un Richiesta 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" \
    

    Sostituisci:

    • JSON_FILE_NAME con il percorso del file JSON 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à del nei bucket di origine e di destinazione. Ad esempio: us-west1.

Concedi i ruoli richiesti all'agente di servizio

A livello di progetto agente di servizio viene creato automaticamente la prima volta che configuri un report sull'inventario. configurazione. L'agente di servizio segue il formato di denominazione service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com e compare 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 concedi all'agente di servizio i seguenti ruoli IAM:

  • roles/storage.insightsCollectorService sul bucket di origine, che include 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 Utilizzare 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 richieste all'agente di servizio, sono necessarie fino a 24 ore il primo report sull'inventario nel bucket di destinazione.

Modificare la configurazione di un report sull'inventario

Una volta creata una configurazione per il report sull'inventario, puoi modificare determinate proprietà della configurazione.

Console

Per modificare la configurazione di un report sull'inventario:

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

    Vai a Bucket

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

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

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

  5. Nella pagina Dettagli configurazione report visualizzata, modifica i le proprietà desiderate utilizzando Pulsante Modifica.

Riga di comando

Per modificare la configurazione di un report sull'inventario:

  1. Per trovare il nome della configurazione del report sull'inventario da modifica ed elenca tutte le configurazioni dell'inventario nel bucket di origine per utilizzando l'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 della fonte contenente 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, in cui l'articolo viene elencato. Per ulteriori dettagli ed esempi di filtri espressioni, esegui $ gcloud topic filters.

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

    • FIELD con un elenco di risorse separato da virgole nomi delle chiavi dei campi in base a cui ordinare. L'ordine predefinito è crescente. Aggiungi il prefisso a campo con ~ per indicare l'ordine decrescente di quel campo.

    1. Modifica i campi di configurazione dei report sull'inventario in base ai quali eseguire l'aggiornamento utilizzando l'gcloud storage insights inventory-reports update . L'esempio seguente aggiorna il report sull'inventario per generare report sull'inventario ogni giorno in Apache Parquet formato:

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

Librerie client

Java

Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


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 la configurazione di un report sull'inventario:

  1. Avere gcloud CLI installato e inizializzato, per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando il metodo OAuth 2.0 Playground e includilo nell'intestazione Authorization.

  2. Ottieni il nome della configurazione del report sull'inventario da modificare utilizzando cURL per chiamare l'API JSON con un 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à del nei 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à del nei bucket di origine e di destinazione. Ad esempio: us-west1.
    • BUCKET_NAME con il nome della fonte un bucket che contiene le configurazioni dei report sull'inventario per modificare.
  3. Crea un file JSON che includa le modifiche alle proprietà che ti interessano per modificare. L'esempio seguente aggiorna il report sull'inventario per generare report sull'inventario ogni giorno in Apache Parquet formato:

    {
      "ReportConfig": {
        "frequency_options": {
          "frequency": "DAILY"
        },
        "parquet_options": {
        }
      }
  4. Per applicare la configurazione del report sull'inventario, utilizza cURL per chiamare l'API JSON con un 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à del nei bucket di origine e di destinazione. Ad esempio: us-west1.

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

Elencare le configurazioni dei report sull'inventario

Console

Per elencare le configurazioni dei report sull'inventario in un bucket di origine, completa procedi nel seguente modo:

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

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di origine 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 l'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 della fonte contenente 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, in cui l'articolo viene elencato. Per ulteriori dettagli ed esempi di filtri espressioni, esegui $ gcloud topic filters.

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

  • FIELD con un elenco di risorse separato da virgole nomi delle chiavi dei campi in base a cui ordinare. L'ordine predefinito è crescente. Aggiungi il prefisso a campo con ~ per indicare l'ordine decrescente di quel campo.

Librerie client

Java

Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


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 installato e inizializzato, per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando il metodo OAuth 2.0 Playground e includilo nell'intestazione Authorization.

  2. Puoi elencare tutte le configurazioni dei report sull'inventario in un progetto una determinata posizione utilizzando Richiesta di 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à del nei 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 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à del nei bucket di origine e di destinazione. Ad esempio: us-west1.

    • BUCKET_NAME con il nome della fonte un bucket che contiene le configurazioni dei report sull'inventario dall'elenco.

Scaricare un report sull'inventario

Console

Scaricare singoli report

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

Per scaricare un report sull'inventario, procedi nel seguente modo:

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

    Vai a Bucket

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

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

  4. Fai clic su Scarica associati al report sull'inventario da scaricare.

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

  1. Nella console Google Cloud, vai alla pagina Bucket di 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 da utilizzare scaricare l'app.

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

  4. Nella pagina Dettagli configurazione report visualizzata, vai a sezione Cronologia report sull'inventario, poi fai clic sulla destinazione del report sull'inventario da scaricare.

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

  5. Fai clic su Scarica associati al report sull'inventario da scaricare.

Scaricare gli shard del report

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

  1. Nella console Google Cloud, vai alla pagina Bucket di 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 stati generati tutti gli shard di un report sull'inventario.

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

  4. Nel bucket di destinazione, fai clic su Scarica associati al file manifest. Prendi nota dei nomi dei file shard che da scaricare dal campo report_shards_file_names.

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

Riga di comando

Scaricare singoli report

Per scaricare un report sull'inventario, procedi nel seguente modo:

  1. Per elencare tutti i report sull'inventario generati da un configurazione dei report sull'inventario e recuperano REPORT_DETAIL_ID, usa 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 del configurazione del report sull'inventario, nel formato projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

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

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

    • FIELD con un elenco di risorse separato da virgole nomi delle chiavi dei campi in base a cui ordinare. L'ordine predefinito è crescente. Aggiungi il prefisso a campo con ~ per indicare l'ordine decrescente di quel campo.

    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 il reportPathPrefix dell'oggetto ReportDetails. Per ottenere reportPathPrefix di un report, utilizza gcloud storage insights inventory-reports details describe :

    gcloud storage insights inventory-reports details describe REPORT_DETAIL_NAME

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

Scaricare gli shard del report

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

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

    gcloud storage cp gs://BUCKET_NAME/MANIFEST_FILE_NAME DOWNLOAD_PATH

    Sostituisci:

    • BUCKET_NAME con il nome della destinazione di sincronizzare la directory di una VM con un bucket.

    • MANIFEST_FILE_NAME con il nome del manifest nel bucket di destinazione, nel seguente modo convenzione:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Dove:

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

      • TARGET_DATETIME è la data e 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 nel sistema in cui vuoi salvare il report sull'inventario. Ad esempio: ./example_report.csv.

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

    gcloud storage cp gs://BUCKET_NAME/SHARD_FILE_NAME DOWNLOAD_PATH

    Sostituisci:

    • BUCKET_NAME con il nome della destinazione di sincronizzare la directory di una VM con un bucket.

    • SHARD_FILE_NAME con il nome codificato nell'URL di il 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 nel sistema in cui vuoi salvare il report sull'inventario. Ad esempio: ./example_report.csv.

Librerie client

Java

Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


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

Scaricare singoli report

Per scaricare un report sull'inventario, procedi nel seguente modo:

  1. Avere gcloud CLI installato e inizializzato, per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando il metodo OAuth 2.0 Playground e includilo nell'intestazione Authorization.

  2. Elenco di tutti i report sull'inventario generati da un report sull'inventario configurazione utilizzando cURL per richiamare API JSON con una richiesta di elencare i dettagli del 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à del nei bucket di origine e di destinazione. Ad esempio: us-west1.

    • REPORT_CONFIG_UUID con lo stato generato automaticamente UUID della configurazione del report sull'inventario che ha generato il report da 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à del nei bucket di origine e di destinazione. Ad esempio: us-west1.

    • REPORT_CONFIG_UUID con lo stato generato automaticamente UUID della configurazione del report sull'inventario che ha generato il report da scaricare.

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

Scaricare gli shard del report

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

  1. Avere gcloud CLI installato e inizializzato, per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando il metodo OAuth 2.0 Playground e includilo nell'intestazione Authorization.

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

    Sostituisci:

    • BUCKET_NAME con il nome del del bucket di destinazione.

    • MANIFEST_FILE_NAME con il nome del manifest nel bucket di destinazione, nel seguente modo convenzione:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Dove:

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

      • TARGET_DATETIME è la data in cui è stato generato un 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 shard del report sull'inventario, utilizza curl per chiamare l'API JSON di Cloud Storage con un Richiesta Get oggetto:

    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 per la tua località nel file system 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 di shard che vuoi scaricare. Ad esempio: fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv.

Eliminare una configurazione del report sull'inventario

Console

Per eliminare la configurazione di un report sull'inventario:

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

    Vai a Bucket

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

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

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

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

Riga di comando

Per eliminare la configurazione di un report sull'inventario, utilizza la gcloud storage insights inventory-reports delete :

gcloud storage insights inventory-reports delete CONFIG_NAME
  --force

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

Il flag --force elimina i metadati per tutti i report sull'inventario generati dalla configurazione del report sull'inventario specificata. La Gli oggetti dei report sull'inventario stessi non verranno eliminati.

Librerie client

Java

Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.

Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


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 la configurazione di un report sull'inventario:

  1. Avere gcloud CLI installato e inizializzato, per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando il metodo OAuth 2.0 Playground e includilo nell'intestazione Authorization.

  2. Per eliminare la configurazione di un 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à del nei bucket di origine e di destinazione. Ad esempio: us-west1.

    • REPORT_CONFIG_UUID con lo stato generato automaticamente UUID della configurazione del report sull'inventario da eliminare.

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

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

Quando crei una configurazione di report sull'inventario, puoi specificare percorso di destinazione, ovvero una posizione nel bucket di destinazione in cui verranno generati i report. Ciò consente di generare report sull'inventario in un Formato partizionato Hive:

Devi specificare un percorso di destinazione utilizzando le parole chiave segnaposto. Le parole chiave nel percorso di destinazione vengono sostituite con i valori corrispondenti quando viene generato il report sull'inventario. Ad esempio, la destinazione percorso config={{report-config-id}}/date={{date}} può risolvere config=1A34-F2E456-12B456-1C3D/date=2022-05-20.

Parole chiave percorso di destinazione

Puoi specificare le parole chiave report-config-id, date o datetime, racchiuso 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 la formato ISO 8601.

  • datetime indica 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 (Facoltativo) Inserisci il percorso di destinazione. Questa sezione viene visualizzata quando Creare una configurazione di report sull'inventario.

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

  • Quando utilizzi l'API JSON, specifica parole chiave segnaposto nel Campo storage_destination_options.destination_path di ReportConfig .

Controllo dell'accesso e sicurezza

Le raccomandazioni e le considerazioni che seguono riguardano la sicurezza e Utilizzo di report e configurazioni sull'inventario:

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

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

  • Una volta creata, la configurazione del report sull'inventario continua generare report sull'inventario anche se l'utente che ha creato la configurazione dispone delle autorizzazioni necessarie. Per interrompere la generazione di report sull'inventario, puoi modificare la data di fine nella configurazione del report sull'inventario oppure eliminare completamente la configurazione.

Passaggi successivi