Inventarberichte erstellen und verwalten

Auf dieser Seite wird beschrieben, wie Sie Konfigurationen für Inventarberichte und generierte Inventarberichte erstellen und verwalten, sodass Sie eine allgemeine Zusammenfassung aller Metadaten Ihrer Objekte in einem bestimmten Bucket erhalten. Eine Übersicht über Inventarberichte finden Sie in der Dokumentation zu Inventarberichten für Storage Insights.

Hinweis

Erforderliche Rollen abrufen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt oder die Quell- und Ziel-Buckets zuzuweisen, mit denen Sie Inventarberichte verwalten, um die erforderlichen Berechtigungen zum Erstellen und Verwalten von Inventarberichten zu erhalten.

  • So erstellen und verwalten Sie Konfigurationen für Inventarberichte:

    • roles/storage.admin für den Quell-Bucket und Ziel-Bucket

    • roles/storageinsights.admin für das Projekt

  • So lesen und laden Sie Inventarberichte herunter:

    • roles/storage.objectViewer für den Ziel-Bucket

    • roles/storageinsights.viewer für das Projekt

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen und Verwalten von Inventarberichten und -konfigurationen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

So erstellen und verwalten Sie Konfigurationen für Inventarberichte:

  • storage.buckets.get für den Quell-Bucket
  • storage.objects.list für den Quell-Bucket
  • storage.buckets.getObjectInsights für den Quell-Bucket
  • storage.buckets.get für den Ziel-Bucket
  • storage.objects.create für den Ziel-Bucket
  • storageinsights.reportConfigs.delete für das Projekt
  • storageinsights.reportConfigs.get für das Projekt
  • storageinsights.reportConfigs.create für das Projekt
  • storageinsights.reportConfigs.list für das Projekt
  • storageinsights.reportConfigs.update für das Projekt

So lesen und laden Sie Inventarberichte herunter:

  • storage.objects.get für den Ziel-Bucket
  • storageinsights.reportDetails.get für das Projekt
  • storageinsights.reportDetails.list für das Projekt

Sie können diese Berechtigungen auch mit anderen vordefinierten Rollen erhalten. Informationen dazu, welche Rollen mit welchen Berechtigungen verknüpft sind, finden Sie unter IAM-Rollen für Cloud Storage.

Eine Anleitung zur Verwendung von Rollen zur Steuerung des Zugriffs auf Buckets finden Sie unter IAM verwenden. Eine Anleitung zum Verwenden von Rollen zur Steuerung des Zugriffs auf Projekte finden Sie unter Zugriff verwalten.

Storage Insights API aktivieren

Console

Folgen Sie der Anleitung unter Dienste aktivieren, um die storageinsights.googleapis.com API zu aktivieren.

Befehlszeile

Führen Sie den folgenden Befehl aus, um die Storage Insights API in Ihrem aktuellen Projekt zu aktivieren:

gcloud services enable storageinsights.googleapis.com

Weitere Informationen zum Aktivieren von Diensten für ein Google Cloud-Projekt finden Sie unter Dienste aktivieren und deaktivieren.

REST APIs

JSON API

Verwenden Sie die Google Cloud Console oder die Google Cloud CLI, um die Storage Insights API zu aktivieren.

Inventarberichtskonfiguration erstellen

Console

Führen Sie die folgenden Schritte aus, um eine Konfiguration für einen Inventarbericht zu erstellen:

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, den Sie als Quell-Bucket verwenden möchten.

  3. Klicken Sie auf der Seite Bucket-Details auf den Tab Inventarberichte.

  4. Klicken Sie auf Berichtskonfiguration erstellen.

  5. Erstellen Sie im Bereich Berichtskonfiguration identifizieren einen Anzeigenamen für die Inventarberichtskonfiguration. Der Anzeigename kann bis zu 256 Zeichen enthalten.

  6. Wählen Sie im Bereich Metadatenfelder auswählen die Metadatenfelder aus, die Sie in Ihre Inventarberichte aufnehmen möchten.

  7. Klicken Sie auf Weiter.

  8. Wählen Sie im Bereich Dateiformat auswählen das Dateiformat aus, in dem Sie Inventarberichte generieren möchten.

  9. Wählen Sie im Bereich Ziel-Bucket auswählen den Bucket aus, den Sie als Ziel-Bucket verwenden möchten.

    Im Bereich Zielpfad eingeben (optional) können Sie optional einen Zielpfad angeben, unter dem Inventarberichte generiert werden.

  10. Geben Sie im Bereich Planungsoptionen die Häufigkeit, das Startdatum und das Enddatum für die Erstellung von Berichten an.

  11. Klicken Sie auf Erstellen.

    Die Seite Berichtskonfigurationsdetails wird angezeigt. Die Metadaten der generierten Inventarberichte werden auf der Seite angezeigt.

Befehlszeile

  1. Führen Sie zum Erstellen einer Inventarberichtskonfiguration den Befehl gcloud storage insights inventory-reports create aus:

    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

    Ersetzen Sie:

    • SOURCE_BUCKET_URL durch die URL des Quell-Buckets. Beispiel: gs://my_example_source_bucket.

    • SEPARATOR durch das Trennzeichen für die Datensätze in der CSV-Datei des Inventarberichts. Muss entweder \n oder \r\n sein. Der Standardwert ist \n. Optional. Wenn das Flag --csv-separator verwendet wird, kann --parquet nicht verwendet werden.

    • DELIMITER durch das Trennzeichen, das die Felder in der CSV-Datei des Inventarberichts trennt. Der Wert kann genau ein Zeichen enthalten und darf nicht derselbe Wert wie SEPARATOR sein. Der Standardwert ist ,. Optional. Wenn --csv-delimiter verwendet wird, kann --parquet nicht verwendet werden.

    • --[no]-csv-header durch das Flag, das angibt, ob Überschriften in der CSV-Datei des Inventarberichts enthalten sind. Verwenden Sie --csv-header, um Überschriften einzuschließen, und --no-csv-header, um Überschriften auszuschließen. Wenn eines der Flags verwendet wird, kann --parquet nicht verwendet werden.

    • DISPLAY_NAME durch den bearbeitbaren Name der Inventarberichtskonfiguration. Optional.

    • --parquet durch das Flag, das Inventarberichte im Apache Parquet-Format anstelle von CSV generiert. Wenn verwendet werden --csv-delimiter, --csv-separator und --[no-]csv-header nicht verwendet.

    • DESTINATION_PATH durch den Bucket oder den Ordner in dem Bucket, in dem Inventarberichte generiert werden. Beispiel: gs://my_example_destination_bucket oder gs://my_example_destination_bucket/path/to/inventory/report.

      Wenn Sie einen Pfad zu einem Ordner in einem Bucket angeben, können Sie Suchbegriffe im Pfad verwenden, die beim Generieren des Berichts durch die entsprechenden Werte ersetzt werden. Auf diese Weise können Sie Berichte in einem nach Hive partitionierten Format generieren und die Daten in BigQuery ohne zusätzliche Verarbeitung laden oder abfragen.

    • METADATA_FIELD durch eine durch Kommas getrennte Liste von Metadatenfeldern, die im Inventarbericht enthalten sein sollen.

    • START_DATE durch das UTC-Datum, an dem Sie mit dem Generieren von Inventarberichten beginnen möchten. Beispiel: 2022-01-15.

    • FREQUENCY durch die Angabe, wie oft Inventarberichte generiert werden sollen. Mögliche Werte sind daily und weekly.

    • END_DATE durch das UTC-Datum, ab dem Sie die Erstellung von Inventarberichten beenden möchten. Muss ein Wert nach START_DATE sein. Wenn Sie beispielsweise 2022-02-15 angeben, werden ab dem 16. Februar 2022 Inventarberichte nicht mehr generiert.

Clientbibliotheken

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.


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());
    }
  }
}

REST APIs

JSON API

Führen Sie die folgenden Schritte aus, um eine Konfiguration für einen Inventarbericht zu erstellen:

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

  2. Erstellen Sie eine JSON-Datei, die die folgenden Informationen enthält, wobei alle Felder erforderlich sind, sofern nicht anders angegeben:

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

    Ersetzen Sie:

    Im folgenden Codebeispiel wird eine Inventarberichtskonfiguration mit dem Namen "Beispiel für die Konfiguration eines Inventarberichts" erstellt, mit der jede Woche Berichte erstellt werden:

    {
      "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. Um die Konfiguration des Inventarberichts anzuwenden, verwenden Sie cURL, um die JSON API mit einer Insert-ReportConfig-Anfrage aufzurufen:

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

    Ersetzen Sie:

    • JSON_FILE_NAME durch den Pfad zur JSON-Datei, die Sie im vorherigen Schritt erstellt haben.

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.

    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1

Dem Dienst-Agent die erforderlichen Rollen zuweisen

Ein Dienst-Agent auf Projektebene wird automatisch erstellt, wenn Sie zum ersten Mal eine Inventarberichtskonfiguration einrichten. Der Dienst-Agent folgt dem Namensformat service-PROJECT_NUMBER@gcp-sa-storageinsights.iam.gserviceaccount.com und wird auf der IAM-Seite der Google Cloud Console angezeigt, wenn Sie Von Google bereitgestellte Rollenzuweisungen auswählen.

Bitten Sie Ihren Administrator, dem Dienst-Agent die folgenden IAM-Rollen zuzuweisen, damit Storage Insights Inventarberichte generieren und schreiben kann:

  • roles/storage.insightsCollectorService für den Quell-Bucket, einschließlich der Berechtigungen storage.buckets.getObjectInsights und storage.buckets.get
  • roles/storage.objectCreator für den Ziel-Bucket, der die Berechtigung storage.objects.create enthält

Eine Anleitung zum Zuweisen von Rollen finden Sie unter IAM verwenden. Sie können die Rolle roles/storage.insightsCollectorService mithilfe der Google Cloud Console oder der Google Cloud CLI zuweisen. Beispiel:

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

Nachdem dem Dienst-Agent die erforderlichen Berechtigungen erteilt wurden, dauert es bis zu 24 Stunden, bis der erste Inventarbericht in den Ziel-Bucket geschrieben wird.

Konfiguration eines Inventarberichts bearbeiten

Nachdem eine Inventarberichtskonfiguration erstellt wurde, können Sie bestimmte Attribute der Konfiguration ändern.

Console

So bearbeiten Sie die Konfiguration eines Inventarberichts:

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Quell-Buckets, der die Inventarberichtskonfiguration enthält, die Sie bearbeiten möchten.

  3. Klicken Sie auf der Seite Bucket-Details Ihres Quell-Buckets auf den Tab Inventarberichte.

  4. Klicken Sie auf den Namen der Inventarberichtskonfiguration, die Sie bearbeiten möchten.

  5. Bearbeiten Sie auf der Seite Konfigurationsdetails für Berichte die gewünschten Attribute. Verwenden Sie dazu die Schaltfläche Bearbeiten.

Befehlszeile

So bearbeiten Sie die Konfiguration eines Inventarberichts:

  1. Um den Namen der zu bearbeitenden Inventarberichtskonfiguration zu ermitteln, listen Sie alle Inventarkonfigurationen im Quell-Bucket mit dem Befehl gcloud storage insights inventory-reports list auf:

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

    Ersetzen Sie:

    • SOURCE_BUCKET durch die URL des Quell-Buckets, der die Inventarberichtskonfiguration enthält.

    • EXPRESSION durch einen booleschen Filter, der auf jedes aufzulistende Ressourcenelement angewendet werden soll. Wenn der Ausdruck "True" ergibt, wird das Element aufgelistet. Führen Sie für weitere Informationen und Beispiele zu Filterausdrücken $ gcloud topic filters aus.

    • SIZE durch die maximale Anzahl an Ressourcen pro Seite. Der Standardwert ist 50.

    • FIELD durch eine durch Kommas getrennte Liste von Schlüsselnamen für Ressourcenfelder, nach denen sortiert werden soll. Die Standardreihenfolge ist aufsteigend. Stellen Sie einem Feld ~ für eine absteigende Reihenfolge in diesem Feld voran.

    1. Bearbeiten Sie die Konfigurationsfelder des Inventarberichts, die Sie aktualisieren möchten, mit dem Befehl gcloud storage insights inventory-reports update. Im folgenden Beispiel wird die Konfiguration des Inventarberichts aktualisiert, um täglich Inventarberichte im Apache Parquet-Format zu generieren:

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

Clientbibliotheken

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.


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);
    }
  }
}

REST APIs

JSON API

Führen Sie die folgenden Schritte aus, um eine Konfiguration für einen Inventarbericht zu bearbeiten:

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

  2. Rufen Sie den Namen der zu bearbeitenden Inventarberichtskonfiguration ab. Verwenden Sie dazu cURL, um die JSON API mit einer Get-ReportConfig-Anfrage aufzurufen:

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

    Ersetzen Sie:

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.

    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1

    Wenn Sie alle Inventarberichtskonfigurationen in einem bestimmten Quell-Bucket abrufen möchten, hängen Sie den Abfrageparameter filter an Ihre Anfrage an:

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

    Ersetzen Sie:

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.
    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1
    • BUCKET_NAME durch den Namen des Quell-Buckets, der die zu bearbeitenden Inventarberichtskonfigurationen des Inventarberichts enthält.
  3. Erstellen Sie eine JSON-Datei, die Änderungen an den Attributen enthält, die Sie bearbeiten möchten. Im folgenden Beispiel wird die Konfiguration des Inventarberichts aktualisiert, um täglich Inventarberichte im Apache Parquet-Format zu generieren:

    {
      "ReportConfig": {
        "frequency_options": {
          "frequency": "DAILY"
        },
        "parquet_options": {
        }
      }
  4. Um die Konfiguration des Inventarberichts anzuwenden, verwenden Sie cURL, um die JSON API mit einer Patch-ReportConfig-Anfrage aufzurufen:

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

    Ersetzen Sie:

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.

    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1

    • REPORT_CONFIG_UUID durch die automatisch generierte UUID der Inventarberichtskonfiguration.

Inventarberichtskonfigurationen auflisten

Console

Führen Sie die folgenden Schritte aus, um die Inventarberichtskonfigurationen in einem Quell-Bucket aufzulisten:

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Quell-Buckets, der die Inventarberichtskonfigurationen enthält, die Sie aufrufen möchten.

  3. Klicken Sie auf der Seite Bucket-Details auf den Tab Inventarberichte.

    Die Konfigurationen des Inventarberichts im Quell-Bucket werden angezeigt.

Befehlszeile

Mit dem Befehl gcloud storage insights inventory-reports list können Sie alle Inventarkonfigurationen in einem Quell-Bucket auflisten:

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

Ersetzen Sie:

  • SOURCE_BUCKET durch die URL des Quell-Buckets, der die Inventarberichtskonfiguration enthält.

  • EXPRESSION durch einen booleschen Filter, der auf jedes aufzulistende Ressourcenelement angewendet werden soll. Wenn der Ausdruck "True" ergibt, wird das Element aufgelistet. Führen Sie für weitere Informationen und Beispiele zu Filterausdrücken $ gcloud topic filters aus.

  • SIZE durch die maximale Anzahl an Ressourcen pro Seite. Der Standardwert ist 50.

  • FIELD durch eine durch Kommas getrennte Liste von Schlüsselnamen für Ressourcenfelder, nach denen sortiert werden soll. Die Standardreihenfolge ist aufsteigend. Stellen Sie einem Feld ~ für eine absteigende Reihenfolge in diesem Feld voran.

Clientbibliotheken

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.


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());
      }
    }
  }
}

REST APIs

JSON API

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

  2. Sie können alle Inventarberichtskonfigurationen in einem Projekt für einen bestimmten Standort auflisten, indem Sie eine Anfrage zum Auflisten der Konfigurationen von Inventarberichten verwenden:

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

    Ersetzen Sie:

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.

    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1

    Wenn Sie alle Inventarberichtskonfigurationen in einem bestimmten Quell-Bucket auflisten möchten, hängen Sie den Abfrageparameter filter an Ihre Anfrage an:

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

    Ersetzen Sie:

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.

    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1

    • BUCKET_NAME durch den Namen des Quell-Buckets, der die zu aktualisierenden Inventarberichtskonfigurationen enthält, die Sie, die Sie auflisten möchten.

Inventarbericht herunterladen

Console

Einzelne Berichte herunterladen

Inventarberichte werden als Objekte im Ziel-Bucket generiert und gespeichert, sodass Sie sie wie ein reguläres Objekt herunterladen können.

Führen Sie die folgenden Schritte aus, um einen Inventarbericht herunterzuladen:

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Ziel-Buckets, der den Inventarbericht enthält, den Sie herunterladen möchten.

  3. Achten Sie darauf, dass auf der Seite Bucket-Details der Tab Objekte ausgewählt ist.

  4. Klicken Sie für den Inventarbericht, den Sie herunterladen möchten, auf Herunterladen.

Wenn Sie den Ziel-Bucket nicht kennen, können Sie auch einen Inventarbericht über die Inventarberichtskonfiguration herunterladen, aus der er generiert wurde:

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Quell-Buckets, der die Inventarberichtskonfiguration enthält, die den Bericht generiert hat, den Sie herunterladen möchten.

  3. Klicken Sie auf der Seite Bucket-Details auf den Namen der Inventarberichtskonfiguration.

  4. Wechseln Sie auf der Seite Details zur Berichtskonfiguration zum Bereich Verlauf der Inventarberichte und klicken Sie dann auf den Zielobjektpfad des Inventarberichts, den Sie herunterladen möchten.

    Die Seite Bucket-Details wird für den Ziel-Bucket angezeigt, der den Inventarbericht enthält.

  5. Klicken Sie für den Inventarbericht, den Sie herunterladen möchten, auf Herunterladen.

Bericht-Shards herunterladen

Führen Sie die folgenden Schritte aus, um einen Inventarbericht herunterzuladen, der in ein oder mehrere Shards aufgeteilt ist:

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Ziel-Buckets, den Sie beim Erstellen der Inventarberichtskonfiguration angegeben haben.

  3. Prüfen Sie auf der Seite Bucket-Details, ob eine Manifestdatei vorhanden ist. Das Vorhandensein einer Manifestdatei weist darauf hin, dass alle Shards eines Inventarberichts generiert wurden.

    Ein Beispiel für eine Manifestdatei ist fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:00_manifest.json.

  4. Klicken Sie im Ziel-Bucket auf die Schaltfläche Herunterladen, die der Manifestdatei zugeordnet ist. Notieren Sie sich die Namen der Shard-Dateien, die Sie aus dem Feld report_shards_file_names herunterladen möchten.

  5. Klicken Sie im Ziel-Bucket auf die Schaltfläche Herunterladen, die den Shard-Dateien zugeordnet ist, die Sie herunterladen möchten.

Befehlszeile

Einzelne Berichte herunterladen

Führen Sie die folgenden Schritte aus, um einen Inventarbericht herunterzuladen:

  1. Verwenden Sie den Befehl gcloud storage insights inventory-reports details list, um alle Inventarberichte aufzulisten, die durch eine Inventarberichtskonfiguration generiert wurden, und um deren REPORT_DETAIL_ID abzurufen:

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

    Ersetzen Sie:

    • CONFIG_NAME durch den eindeutigen Namen der Inventarberichtskonfiguration im Format projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

    • EXPRESSION durch einen booleschen Filter, der auf jedes aufzulistende Ressourcenelement angewendet werden soll. Wenn die Auswertung des Ausdrucks "Wahr" ergibt, wird dieses Element aufgeführt. Führen Sie für weitere Informationen und Beispiele zu Filterausdrücken $ gcloud topic filters aus.

    • SIZE durch die maximale Anzahl an Ressourcen pro Seite. Der Standardwert ist 50.

    • FIELD durch eine durch Kommas getrennte Liste von Schlüsselnamen für Ressourcenfelder, nach denen sortiert werden soll. Die Standardreihenfolge ist aufsteigend. Stellen Sie einem Feld ~ für eine absteigende Reihenfolge in diesem Feld voran.

    Wenn der Prozess erfolgreich war, sollte die Ausgabe in etwa so aussehen:

    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. Um einen Inventarbericht herunterzuladen, müssen Sie zuerst das Attribut reportPathPrefix des ReportDetail-Objekts abrufen. Verwenden Sie den Befehl gcloud storage insights inventory-reports details describe, um die reportPathPrefix eines Berichts abzurufen:

    gcloud storage insights inventory-reports details describe REPORT_DETAIL_NAME

    Ersetzen Sie REPORT_DETAIL_NAME durch den Namen des Inventarberichts im Format projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID/reportDetails/REPORT_DETAIL_ID.

Bericht-Shards herunterladen

Führen Sie die folgenden Schritte aus, um einen Inventarbericht herunterzuladen, der in ein oder mehrere Shards aufgeteilt ist:

  1. Laden Sie die Manifestdatei des Inventarberichts mit dem Befehl gcloud storage cp herunter:

    gcloud storage cp gs://BUCKET_NAME/MANIFEST_FILE_NAME DOWNLOAD_PATH

    Ersetzen Sie:

    • BUCKET_NAME durch den Namen des Ziel-Buckets.

    • MANIFEST_FILE_NAME durch den Namen der Manifestdatei im Ziel-Bucket in der folgenden Namenskonvention:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Dabei gilt:

      • REPORT_CONFIG_UUID ist die automatisch generierte UUID der Inventarberichtskonfiguration, über die die Bericht-Shards generiert wurde, die Sie herunterladen möchten.

      • TARGET_DATETIME ist der Datum/Uhrzeit-Wert, zu dem der Inventarbericht generiert wurde.

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

    • DOWNLOAD_PATH durch den Pfad zu Ihrem Dateisystem, in dem Sie den Inventarbericht speichern möchten. Beispiel: ./example_report.csv

  2. Verwenden Sie zum Herunterladen einer Shard-Datei den Befehl gcloud storage cp:

    gcloud storage cp gs://BUCKET_NAME/SHARD_FILE_NAME DOWNLOAD_PATH

    Ersetzen Sie:

    • BUCKET_NAME durch den Namen des Ziel-Buckets.

    • SHARD_FILE_NAME durch den URL-codierten Namen der Shard-Datei, die Sie herunterladen möchten. Beispiel: fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv

    • DOWNLOAD_PATH durch den Pfad zu Ihrem Dateisystem, in dem Sie den Inventarbericht speichern möchten. Beispiel: ./example_report.csv

Clientbibliotheken

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.


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);
        }
      }
    }
  }
}

REST APIs

JSON API

Einzelne Berichte herunterladen

Führen Sie die folgenden Schritte aus, um einen Inventarbericht herunterzuladen:

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

  2. Alle Inventarberichte, die von einer Inventarberichtskonfiguration erstellt wurden, mit cURL auflisten, um die JSON API mit einer Anfrage zum Auflisten von Inventarberichtsdetails aufzurufen:

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

    Ersetzen Sie:

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.

    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1

    • REPORT_CONFIG_UUID durch die automatisch generierte UUID der Inventarberichtskonfiguration, über die der Bericht generiert wurde, den Sie herunterladen möchten.

  3. Wenn Sie die Details eines einzelnen Berichts abrufen möchten, verwenden Sie cURL, um die JSON API mit einer Anfrage für Get-Berichtsdetails aufzurufen:

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

    Ersetzen Sie:

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.

    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1

    • REPORT_CONFIG_UUID durch die automatisch generierte UUID der Inventarberichtskonfiguration, über die der Bericht generiert wurde, den Sie herunterladen möchten.

    • REPORT_DETAIL_ID durch den Namen des Inventarberichts, den Sie herunterladen möchten.

Bericht-Shards herunterladen

Führen Sie die folgenden Schritte aus, um einen Inventarbericht herunterzuladen, der in ein oder mehrere Shards aufgeteilt ist:

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

  2. Verwenden Sie zum Herunterladen der Manifestdatei des Inventarberichts cURL, um die JSON API mit einer GET-Objektanfrage aufzurufen:

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

    Ersetzen Sie:

    • BUCKET_NAME durch den Namen des Ziel-Buckets.

    • MANIFEST_FILE_NAME durch den Namen der Manifestdatei im Ziel-Bucket in der folgenden Namenskonvention:

      REPORT_CONFIG_UUID_TARGET_DATETIME_manifest.json

      Dabei gilt:

      • REPORT_CONFIG_UUID ist die automatisch generierte UUID der Inventarberichtskonfiguration, über die die Bericht-Shards generiert wurden, die Sie herunterladen möchten.

      • TARGET_DATETIME ist das Datum, an dem der Inventarbericht generiert wurde.

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

    Das Feld report_shards_file_names der Manifestdatei enthält die Namen der Inventarbericht-Shards, die Sie herunterladen können.

  3. Verwenden Sie zum Herunterladen der Shard-Dateien des Inventarberichts curl, um die Cloud Storage JSON API mit einer Get-Objektanfrage aufzurufen:

    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"

    Ersetzen Sie:

    • DOWNLOAD_PATH durch den Pfad zu Ihrem lokalen Dateisystem, in dem Sie Ihr Objekt speichern möchten. Beispiel: Desktop/dog.png

    • BUCKET_NAME durch den Namen des Ziel-Buckets, der den Inventarbericht enthält. Beispiel: my-bucket

    • SHARD_FILE_NAME durch den URL-codierten Namen der Shard-Datei, die Sie herunterladen möchten. Beispiel: fc95c52f-157a-494f-af4a-d4a53a69ba66_2022-11-30T00:54_0.csv

Inventarberichtskonfiguration löschen

Console

Führen Sie die folgenden Schritte aus, um eine Inventarberichtskonfiguration zu löschen:

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Quell-Buckets, der die Inventarberichtskonfiguration enthält, die Sie löschen möchten.

  3. Klicken Sie auf der Seite Bucket-Details Ihres Quell-Buckets auf den Tab Inventarberichte.

  4. Klicken Sie auf den Namen der Inventarberichtskonfiguration, die Sie löschen möchten.

  5. Klicken Sie auf der Seite Details zur Berichtskonfiguration auf Löschen.

Befehlszeile

Verwenden Sie zum Löschen einer Inventarberichtskonfiguration den Befehl gcloud storage insights inventory-reports delete:

gcloud storage insights inventory-reports delete CONFIG_NAME
  --force

Ersetzen Sie CONFIG_NAME durch den eindeutigen Namen der Inventarberichtskonfiguration im Format projects/PROJECT/locations/LOCATION/reportConfigs/REPORT_CONFIG_UUID.

Das Flag --force löscht die Metadaten für alle Inventarberichte, die durch die angegebene Konfiguration des Inventarberichts generiert wurden. Die Inventarberichtsobjekte selbst werden nicht gelöscht.

Clientbibliotheken

Java

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei Cloud Storage zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.


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);
    }
  }
}

REST APIs

JSON API

Führen Sie die folgenden Schritte aus, um eine Inventarberichtskonfiguration zu löschen:

  1. Die gcloud CLI installieren und initialisieren, um ein Zugriffstoken für den Header Authorization zu generieren.

  2. Verwenden Sie zum Löschen einer Inventarberichtskonfiguration cURL, um die JSON API mit einer Delete-ReportConfig-Anfrage aufzurufen:

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

    Ersetzen Sie:

    • YOUR_PROJECT durch den Namen des Projekts, in dem sich die Quell- und Ziel-Buckets befinden.

    • LOCATION durch den Standort des Quell- und des Ziel-Buckets. Beispiel: us-west1

    • REPORT_CONFIG_UUID durch die automatisch generierte UUID der Inventarberichtskonfiguration, die Sie löschen möchten.

Mit dem Abfrageparameter force werden die Metadaten für alle Inventarberichte gelöscht, die durch die angegebene Konfiguration für Inventarberichte generiert wurden. Die Inventarberichtsobjekte selbst werden nicht gelöscht.

Erweitert: Inventarberichte in einem hive-partitionierten Format generieren

Wenn Sie eine Inventarberichtskonfiguration erstellen, können Sie einen Zielpfad angeben. Dies ist ein Speicherort in Ihrem Ziel-Bucket, an dem Inventarberichte generiert werden. Auf diese Weise können Sie Inventarberichte in einem nach Hive partitionierten Format generieren.

Den Zielpfad geben Sie mithilfe von Platzhalter-Keywords an. Keywords im Zielpfad werden bei der Erstellung des Inventarberichts durch die entsprechenden Werte ersetzt. Beispielsweise kann der Zielpfad config={{report-config-id}}/date={{date}} in config=1A34-F2E456-12B456-1C3D/date=2022-05-20 aufgelöst werden.

Zielpfad-Keywords

Sie können das Keyword report-config-id, date oder datetime angeben, eingeschlossen in {{ und }}. Dabei gilt:

  • report-config-id ist die UUID der Inventarberichtskonfiguration.

  • date ist das Datum, an dem der Inventarbericht generiert wird. Entspricht dem ISO 8601-Format.

  • datetime ist das Datum und die Uhrzeit, zu der der Inventarbericht generiert wird. Entspricht dem ISO 8601-Format.

Keywords können mit einem der folgenden Tools angegeben werden:

  • Geben Sie bei Verwendung der Google Cloud Console Suchbegriffe im Abschnitt Zielpfad eingeben (optional) an. Dieser Abschnitt wird angezeigt, wenn Sie eine Inventarberichtskonfiguration erstellen.

  • Geben Sie bei Verwendung der Google Cloud CLI Platzhalter-Keywords mit dem Flag --destination an.

  • Wenn Sie die JSON API verwenden, geben Sie Platzhalter-Keywords im Feld storage_destination_options.destination_path des ReportConfig-Objekts an.

Zugriffssteuerung und Sicherheit

Die folgenden Empfehlungen und Überlegungen beziehen sich auf die Sicherheit und Nutzung von Inventarberichten und Konfigurationen:

  • Wir empfehlen, dass Nutzer mit der Rolle roles/storage.admin auch die Berechtigung storageinsights.reportConfigs.* haben, damit sie die Kontrolle über die Nutzung aller Ressourcen in ihren Buckets behalten, z. B. das Lesen von Objekten und deren Metadaten.

  • Wir empfehlen, den Zugriff auf Ihre Inventarberichtsressourcen zu beschränken, indem Sie die Berechtigungen storageinsights.reportConfigs.* nur den erforderlichen Personen gewähren.

  • Nachdem eine Inventarberichtskonfiguration erstellt wurde, werden weiterhin Inventarberichte generiert, auch wenn der Nutzer, der die Konfiguration erstellt hat, nicht mehr über die erforderlichen Berechtigungen verfügt. Wenn Sie das Erstellen von Inventarberichten beenden möchten, können Sie das Enddatum in der Konfiguration des Inventarberichts bearbeiten oder die Konfiguration vollständig löschen.

Nächste Schritte

  • Sollten beim Generieren von Inventarberichten Probleme auftreten, lesen Sie die Informationen unter Fehlerbehebung.