Jobs für Batchvorgänge erstellen und verwalten

Auf dieser Seite wird beschrieben, wie Sie Jobs für Batchvorgänge für Speicher erstellen, ansehen, auflisten, abbrechen und löschen. Außerdem wird beschrieben, wie Sie Cloud-Audit-Logs mit Speicher-Batchvorgängen verwenden.

Hinweise

Führen Sie die Schritte in den folgenden Abschnitten aus, um Speicher-Batchvorgänge zu erstellen und zu verwalten.

Storage Intelligence konfigurieren

Wenn Sie Jobs für Storage-Batchvorgänge erstellen und verwalten möchten, müssen Sie Storage Intelligence für den Bucket konfigurieren, in dem Sie den Job ausführen möchten.

Google Cloud CLI einrichten

Sie müssen die Google Cloud CLI-Version 516.0.0 oder höher verwenden.

Standardprojekt festlegen

Legen Sie das Projekt fest, in dem Sie den Batchvorgangsjob für den Speicher erstellen möchten.

gcloud config set project PROJECT_ID

Dabei entspricht PROJECT_ID der ID des Projekts.

API aktivieren

Aktivieren Sie die API für Batchvorgänge für Speicher.

gcloud services enable storagebatchoperations.googleapis.com

Manifest erstellen

Wenn Sie ein Manifest für die Objektauswahl verwenden möchten, erstellen Sie ein Manifest.

Storage-Batchvorgangsjob erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen Job für Storage-Batchvorgänge erstellen.

Befehlszeile

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs create aus.

    gcloud storage batch-operations jobs create JOB_NAME --bucket=BUCKET_NAME OBJECT_SELECTION_FLAG JOB_TYPE_FLAG

    Wobei:

    • JOB_NAME ist der Name des Jobs für Storage-Batchvorgänge.
    • BUCKET_NAME ist der Name des Buckets, der ein oder mehrere Objekte enthält, die Sie verarbeiten möchten.
    • OBJECT_SELECTION_FLAG ist eines der folgenden Flags:

      • --included-object-prefixes: Geben Sie ein oder mehrere Objektpräfixe an. Beispiel:

        • Wenn Sie nur ein Präfix abgleichen möchten, verwenden Sie: --included-object-prefixes='prefix1'.
        • Wenn Sie mehrere Präfixe abgleichen möchten, verwenden Sie eine durch Kommas getrennte Präfixliste: --included-object-prefixes='prefix1,prefix2'.
        • Wenn Sie alle Objekte einbeziehen möchten, verwenden Sie ein leeres Präfix: --included-object-prefixes=''.
      • --manifest-location: Geben Sie den Speicherort des Manifests an. Beispiel: gs://bucket_name/path/object_name.csv

    • JOB_TYPE_FLAG ist je nach Jobtyp eines der folgenden Flags.

      • --delete-object: Löscht ein oder mehrere Objekte.

      • --put-metadata: Objektmetadaten aktualisieren. Objektmetadaten werden als Schlüssel/Wert-Paare gespeichert. Geben Sie das Schlüssel/Wert-Paar für die Metadaten an, die Sie ändern möchten. Sie können ein oder mehrere Schlüssel/Wert-Paare als Liste angeben.

      • --rewrite-object: Aktualisieren Sie die vom Kunden verwalteten Verschlüsselungsschlüssel für ein oder mehrere Objekte.

      • --put-object-event-based-hold: Eventbasierte Aufbewahrungspflichten für Objekte aktivieren.

      • --no-put-object-event-based-hold: Deaktivieren Sie ereignisbasierte Objekt-Holds.

      • --put-object-temporary-hold: Temporäre Objekt-Holds aktivieren.

      • --no-put-object-temporary-hold: Deaktivieren Sie temporäre Objektreservierungen.

REST APIs

JSON API

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

  2. Erstellen Sie eine JSON-Datei mit den Einstellungen für den Storage-Batchvorgangsjob. Folgende Einstellungen können verwendet werden:

    {
        "Description": "JOB_DESCRIPTION",
        "BucketList":
        {
        "Buckets":
        [
         {
           "Bucket": "BUCKET_NAME",
           "Manifest": {
              "manifest_location": "MANIFEST_LOCATION"
               }
           "PrefixList": {
              "include_object_prefixes": "OBJECT_PREFIXES"
               }
         }
        ]
        },
        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
         }
        "RewriteObject": {
          "kms_key":"KMS_KEY_VALUE"
          }
        "PutMetadata": {
          METADATA_KEY= METADATA_VALUE,
          ...,
          }
        "PutObjectHold": {
          "temporary_hold": TEMPORARY_HOLD_VALUE,
          "event_based_hold": EVENT_BASED_HOLD_VALUE
        }
     }
         

    Wobei:

    • JOB_NAME ist der Name des Jobs für Storage-Batchvorgänge.

    • JOB_DESCRIPTION ist die Beschreibung des Jobs für Storage-Batchvorgänge.

    • BUCKET_NAME ist der Name des Buckets, der ein oder mehrere Objekte enthält, die Sie verarbeiten möchten.

    • Verwenden Sie eines der folgenden Attribute in der JSON-Datei, um die zu verarbeitenden Objekte anzugeben:

      • MANIFEST_LOCATION ist der Speicherort des Manifests. Beispiel: gs://bucket_name/path/object_name.csv

      • OBJECT_PREFIXES ist die durch Kommas getrennte Liste mit einem oder mehreren Objektpräfixen. Verwenden Sie eine leere Liste, um alle Objekte abzugleichen.

    • Geben Sie je nach dem Job, den Sie verarbeiten möchten, eine der folgenden Optionen an:

      • Objekte löschen:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        Dabei ist OBJECT_DELETION_VALUE TRUE, um Objekte zu löschen.

      • Vom Kunden verwalteten Verschlüsselungsschlüssel für Objekte aktualisieren:

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        Dabei ist KMS_KEY_VALUE der Wert des KMS-Schlüssels des Objekts, den Sie aktualisieren möchten.

      • Objektmetadaten aktualisieren:

        "PutMetadata": {
        METADATA_KEY= METADATA_VALUE,
        ...,
        }

        Dabei ist METADATA_VALUE der Schlüsselwert der Metadaten des Objekts. Sie können ein oder mehrere Schlüssel/Wert-Paare als Liste angeben.

      • Objekt-Holds aktualisieren:

        "PutObjectHold": {
        "temporary_hold": TEMPORARY_HOLD_VALUE,
        "event_based_hold": EVENT_BASED_HOLD_VALUE
        }

        Wobei:

        • Mit TEMPORARY_HOLD_VALUE wird die temporäre Objektreservierung aktiviert oder deaktiviert. Ein Wert von 1 aktiviert die Zurückstellung und ein Wert von 2 deaktiviert sie.

        • EVENT_BASED_HOLD_VALUE wird verwendet, um den ereignisbasierten Objekt-Hold zu aktivieren oder zu deaktivieren. Ein Wert von 1 aktiviert die Zurückstellung und ein Wert von 2 deaktiviert sie.

  3. Verwenden Sie cURL, um die JSON API mit einer POST-Speicher-Batchvorgangsaufgabe aufzurufen:

    curl -X POST --data-binary @JSON_FILE_NAME \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     "https://storagebatchoperations.googleapis.com/v1/project=PROJECT_ID/locations/global/jobs?job_id=JOB_ID"

    Wobei:

    • JSON_FILE_NAME ist der Name der JSON-Datei.
    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.
    • JOB_ID ist der Name des Jobs für Storage-Batchvorgänge.

Details zu Storage-Batchvorgangsjobs abrufen

In diesem Abschnitt wird beschrieben, wie Sie die Jobdetails für Storage-Batchvorgänge abrufen.

Befehlszeile

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs describe aus.

    gcloud storage batch-operations jobs describe JOB_ID

    Wobei:

    JOB_ID ist der Name des Jobs für Storage-Batchvorgänge.

REST APIs

JSON API

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

  2. Verwenden Sie cURL, um die JSON API mit einer Anfrage für einen GET-Speicher-Batchvorgang aufzurufen:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs?JOB_ID"

    Wobei:

    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.
    • JOB_ID ist der Name des Jobs für Storage-Batchvorgänge.

Storage-Batchvorgangsjobs auflisten

In diesem Abschnitt wird beschrieben, wie Sie die Jobs für Storage-Batchvorgänge in einem Projekt auflisten.

Befehlszeile

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs list aus.

    gcloud storage batch-operations jobs list

REST APIs

JSON API

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

  2. Verwenden Sie cURL, um die JSON API mit einer Anfrage für LIST-Speicher-Batchvorgänge aufzurufen:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs"

    Wobei:

    PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.

Storage-Batchvorgangsjob abbrechen

In diesem Abschnitt wird beschrieben, wie Sie einen Storage-Batchvorgangsjob in einem Projekt abbrechen.

Befehlszeile

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs cancel aus.

    gcloud storage batch-operations jobs cancel JOB_ID

    Wobei:

    JOB_ID ist der Name des Jobs für Storage-Batchvorgänge.

REST APIs

JSON API

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

  2. Verwenden Sie cURL, um die JSON API mit einer CANCEL-Anfrage für einen Speichervorgang im Batch aufzurufen:

    curl -X CANCEL \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    Wobei:

    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.

    • JOB_ID ist der Name des Jobs für Storage-Batchvorgänge.

Storage-Batchvorgangsjob löschen

In diesem Abschnitt wird beschrieben, wie Sie einen Job für Storage-Batchvorgänge löschen.

Befehlszeile

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs delete aus.

    gcloud storage batch-operations jobs delete JOB_ID

    Wobei:

    JOB_ID ist der Name des Jobs für Storage-Batchvorgänge.

REST APIs

JSON API

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

  2. Verwenden Sie cURL, um die JSON API mit einer DELETE-Anfrage für einen Speichervorgang im Batch aufzurufen:

    curl -X DELETE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storagebatchoperations.googleapis.com/v1/projects/PROJECT_ID/locations/global/jobs/JOB_ID"

    Wobei:

    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.

    • JOB_ID ist der Name des Jobs für Storage-Batchvorgänge.

Speicher-Batchvorgangsjob mit Storage Insights-Datasets erstellen

Führen Sie die Schritte in den folgenden Abschnitten aus, um einen Batchvorgang für Speicher mit Storage Insights-Datasets zu erstellen.

Manifest mit Storage Insights-Datasets erstellen

Sie können das Manifest für Ihren Storage-Batchvorgangsjob erstellen, indem Sie Daten aus BigQuery extrahieren. Dazu müssen Sie das verknüpfte Dataset abfragen, die resultierenden Daten als CSV-Datei exportieren und in einem Cloud Storage-Bucket speichern. Der Batchvorgangsjob für den Speicher kann diese CSV-Datei dann als Manifest verwenden.

Wenn Sie die folgende SQL-Abfrage in BigQuery für eine Dataset-Ansicht von Storage Insights ausführen, werden Objekte abgerufen, die größer als 1 KiB sind und den Namen Temp_Training haben:

  EXPORT DATA OPTIONS(
   uri=`URI`,
   format=`CSV`,
   overwrite=OVERWRITE_VALUE,
   field_delimiter=',') AS
  SELECT bucket, name, generation
  FROM DATASET_VIEW_NAME
  WHERE bucket = BUCKET_NAME
  AND name LIKE (`Temp_Training%`)
  AND size > 1024 * 1024
  AND snapshotTime = SNAPSHOT_TIME
  

Wobei:

  • URI ist der URI des Buckets, der das Manifest enthält. Beispiel: gs://bucket_name/path_to_csv_file/*.csv. Wenn Sie den Platzhalter *.csv verwenden, exportiert BigQuery das Ergebnis in mehrere CSV-Dateien.
  • OVERWRITE_VALUE ist ein boolescher Wert. Wenn der Wert auf true gesetzt ist, werden vorhandene Dateien am angegebenen Speicherort durch den Exportvorgang überschrieben.
  • DATASET_VIEW_NAME ist der vollständig qualifizierte Name der Storage Insights-Datasetansicht im Format PROJECT_ID.DATASET_ID.VIEW_NAME. So finden Sie den Namen Ihres Datasets

    Wobei:

    • PROJECT_ID ist die ID oder Nummer des Projekts. Beispiel: my-project.
    • DATASET_ID ist der Name des Datasets. Beispiel: objects-deletion-dataset.
    • VIEW_NAME ist der Name der Dataset-Ansicht. Beispiel: bucket_attributes_view.
  • BUCKET_NAME ist der Name des Buckets. Beispiel: my-bucket.

  • SNAPSHOT_TIME ist der Snapshot-Zeitpunkt der Storage Insights-Datasetansicht. Beispiel: 2024-09-10T00:00:00Z.

Storage-Batchvorgangsjob erstellen

So erstellen Sie einen Speicher-Batchvorgangsjob zum Verarbeiten von Objekten, die im Manifest enthalten sind:

Befehlszeile

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Führen Sie in Ihrer Entwicklungsumgebung den Befehl gcloud storage batch-operations jobs create aus:

    gcloud storage batch-operations jobs create \
    JOB_ID \
    --bucket=SOURCE_BUCKET_NAME \
    --manifest-location=URI \
    --JOB_TYPE_FLAG

    Wobei:

    • JOB_ID ist der Name des Jobs für Storage-Batchvorgänge.

    • SOURCE_BUCKET_NAME ist der Bucket, der ein oder mehrere Objekte enthält, die Sie verarbeiten möchten. Beispiel: my-bucket.

    • URI ist der URI des Buckets, der das Manifest enthält. Beispiel: gs://bucket_name/path_to_csv_file/*.csv. Wenn Sie den Platzhalter *.csv verwenden, exportiert BigQuery das Ergebnis in mehrere CSV-Dateien.

    • JOB_TYPE_FLAG ist je nach Jobtyp eines der folgenden Flags.

      • --delete-object: Löscht ein oder mehrere Objekte.

      • --put-metadata: Objektmetadaten aktualisieren. Objektmetadaten werden als Schlüssel/Wert-Paare gespeichert. Geben Sie das Schlüssel/Wert-Paar für die Metadaten an, die Sie ändern möchten. Sie können ein oder mehrere Schlüssel/Wert-Paare als Liste angeben.

      • --rewrite-object: Aktualisieren Sie die vom Kunden verwalteten Verschlüsselungsschlüssel für ein oder mehrere Objekte.

      • --put-object-event-based-hold: Eventbasierte Aufbewahrungspflichten für Objekte aktivieren.

      • --no-put-object-event-based-hold: Deaktivieren Sie ereignisbasierte Objekt-Holds.

      • --put-object-temporary-hold: Temporäre Objekt-Holds aktivieren.

      • --no-put-object-temporary-hold: Deaktivieren Sie temporäre Objektreservierungen.

VPC Service Controls einbinden

Mit VPC Service Controls können Sie eine zusätzliche Sicherheitsebene für Ressourcen für Storage-Batchvorgänge bereitstellen. Wenn Sie VPC Service Controls verwenden, fügen Sie Projekte in Dienstperimeter ein, die Ressourcen und Dienste vor Anfragen schützen, die ihren Ursprung außerhalb des Perimeters haben. Weitere Informationen zu den Details von VPC Service Controls-Dienstperimetern für Storage-Batchvorgänge finden Sie unter Unterstützte Produkte und Einschränkungen.

Cloud-Audit-Logs für Speicher-Batchvorgänge verwenden

Bei Storage-Batchvorgängen werden Transformationen von Cloud Storage-Objekten in Cloud Storage-Cloud-Audit-Logs aufgezeichnet. Mit Cloud-Audit-Logs für Cloud Storage können Sie die Objekttransformationen nachverfolgen, die von Storage-Batchvorgangs-Jobs ausgeführt werden. Informationen zum Aktivieren von Audit-Logs finden Sie unter Audit-Logs aktivieren. Im Audit-Log-Eintrag gibt das Metadatenfeld callUserAgent mit dem Wert StorageBatchOperations eine Transformation von Storage-Batchvorgängen an.

Nächste Schritte