Auf dieser Seite wird beschrieben, wie Sie Logs für Storage-Batchvorgänge mit Cloud Logging konfigurieren und ansehen. Ein Batchvorgangsjob für den Speicher kann so konfiguriert werden, dass für jeden Transformationsjob Cloud Logging-Logeinträge generiert werden. Jeder Logeintrag entspricht der versuchten Transformation eines Objekts.
Batchvorgänge für Speicher unterstützen das Logging sowohl in Cloud Logging als auch in Cloud-Audit-Logs für Cloud Storage. Mit beiden Optionen werden Aktionen für Storage-Batchvorgänge erfasst. Wir empfehlen jedoch die Verwendung von Cloud Logging. Cloud Logging bietet eine zentrale Plattform für die Loganalyse, das Echtzeit-Monitoring und erweiterte Filterfunktionen und ist damit eine robuste Lösung für die Verwaltung und Analyse Ihrer Batchvorgänge.
Hinweise
Prüfen Sie, ob Sie Zugriff auf Cloud Logging haben. Wenn Sie Cloud Logging verwenden möchten, empfehlen wir, Identity and Access Management-Rolle Logs Viewer (roles/logging.viewer) zu gewähren. Die Rolle Logs Viewer (roles/logging.viewer) der Identity and Access Management bietet die Berechtigungen der Identity and Access Management, die zum Aufrufen Ihrer Cloud Logging-Daten erforderlich sind.
Weitere Informationen zu Logging-Zugriffsberechtigungen finden Sie unter Zugriffssteuerung mit IAM.
Führen Sie die folgenden Schritte aus, um die IAM-Berechtigungen zu überprüfen und zu erteilen:
- Sehen Sie sich die aktuellen Zugriffsrechte an, um den Zugriff der einzelnen Hauptkonten zu prüfen.
- Weisen Sie den entsprechenden Hauptkonten in Ihrem Projekt eine Rolle zu.
Details zum Logging
Wenn die Protokollierung aktiviert ist, werden bei Speicherbatchvorgängen die folgenden Details erfasst:
- Protokollierbare Aktion: Der Wert für die protokollierbare Aktion ist immer - transform.
- Protokollierbare Status: Für jede Aktion können Sie festlegen, ob einer oder beide der folgenden Status protokolliert werden sollen: - SUCCEEDED: Die Aktion wurde erfolgreich ausgeführt.
- FAILED: Die Aktion ist fehlgeschlagen.
 
Logging aktivieren
Geben Sie die Aktionen und Status an, die protokolliert werden sollen, um das Logging zu aktivieren.
Befehlszeile
Wenn Sie mit gcloud
storage batch-operations jobs create einen Batchvorgangsjob für Speicher erstellen, verwenden Sie die Flags --log-actions und --log-action-states, um das Logging zu aktivieren.
gcloud storage batch-operations jobs create JOB_NAME \ --manifest-location=MANIFEST_LOCATION \ --delete-object \ --log-actions=transform \ --log-action-states=LOG_ACTION_STATES
Wobei:
- JOB_NAMEist der Name, den Sie dem Job geben möchten. Beispiel:- my-job.
- MANIFEST_LOCATIONist der Speicherort Ihres Manifests. Beispiel:- gs://my-bucket/manifest.csv.
- LOG_ACTION_STATESist eine durch Kommas getrennte Liste der zu protokollierenden Status. Beispiel:- succeeded,failed.
REST API
Create a storage batch operations
job
mit einem
LoggingConfig.
{ "loggingConfig": { "logActions": ["TRANSFORM"], "logActionStates": ["LOG_ACTION_STATES"], } }
Wobei:
LOG_ACTION_STATES ist eine durch Kommas getrennte Liste der zu protokollierenden Status. Beispiel: "SUCCEEDED","FAILED".
Logs ansehen
So rufen Sie Logs für Batchvorgänge für Speicher auf:
Console
- Rufen Sie das Google Cloud Navigationsmenümenu auf und wählen Sie Logging > Log-Explorer aus:<br\></br\> 
- Ein Google Cloud -Projekt auswählen 
- Wechseln Sie im Menü Upgrade von Legacy-Loganzeige zu Log-Explorer. 
- Wenn Sie Ihre Logs so filtern möchten, dass nur Einträge für Speicher-Batchvorgänge angezeigt werden, geben Sie in das Abfragefeld - storage_batch_operations_jobein und klicken Sie auf Abfrage ausführen.
- Klicken Sie im Bereich Abfrageergebnisse auf Zeit bearbeiten, um den Zeitraum zu ändern, für den Ergebnisse zurückgegeben werden sollen. 
Informationen zur Verwendung des Log-Explorers finden Sie unter Log-Explorer verwenden.
Befehlszeile
Wenn Sie mit der gcloud CLI nach Logs für Storage-Batchvorgänge suchen möchten, verwenden Sie den Befehl gcloud logging read.
Geben Sie einen Filter an, um Ihre Ergebnisse auf Logs von Storage-Batchvorgängen zu beschränken.
gcloud logging read "resource.type=storage_batch_operations_job"
REST API
Verwenden Sie die Cloud Logging API-Methode entries.list.
Verwenden Sie das Feld filter, um Ihre Ergebnisse so zu filtern, dass nur Einträge zu Storage-Batchvorgängen enthalten sind. Das folgende Beispiel zeigt ein JSON-Anfrageobjekt:
{
"resourceNames":
  [
    "projects/my-project-name"
  ],
  "orderBy": "timestamp desc",
  "filter": "resource.type=\"storage_batch_operations_job\""
}
Wobei:
my-project-name ist der Name Ihres Projekts.
Logformat für Speicherbatchvorgänge
Alle spezifischen Felder für Storage-Batchvorgänge sind in einem jsonPayload-Objekt enthalten. Der genaue Inhalt von jsonPayload variiert je nach Jobtyp. Alle TransformActivityLog-Einträge haben jedoch eine gemeinsame Struktur. In diesem Abschnitt werden die allgemeinen Protokollfelder und dann die betriebsspezifischen Felder beschrieben.
- Häufig verwendete Logfelder - Die folgenden Felder sind in allen Logs enthalten: - jsonPayload: { "@type": "type.googleapis.com/google.cloud.storagebatchoperations.logging.TransformActivityLog", "completeTime": "YYYY-MM-DDTHH:MM:SS.SSSSSSSSSZ", "status": { "errorMessage": "String indicating error", "errorType": "ENUM_VALUE", "statusCode": "ENUM_VALUE" }, "logName": "projects/PROJECT_ID/logs/storagebatchoperations.googleapis.com%2Ftransform_activity", "receiveTimestamp": "YYYY-MM-DDTHH:MM:SS.SSSSSSSSSZ", "resource": { "labels": { "location":"us-central1", "job_id": "BATCH_JOB_ID", "resource_container": "RESOURCE_CONTAINER", // ... other labels }, "type": "storagebatchoperations.googleapis.com/Job" }, // Operation-specific details will be nested here (for example, // "DeleteObject", "PutObjectHold", "RewriteObject", "PutMetadata") // Each operation-specific object will also contain the following // object: "objectMetadataBefore": { // "gcsObject": { // "bucket": "BUCKET_NAME", // "generation": "GENERATION_NUMBER", // "objectKey": "OBJECT_PATH" // } // } }- In der folgenden Tabelle werden die einzelnen allgemeinen Logfelder beschrieben: - Häufig verwendete Logfelder - Typ - Beschreibung - @type- String - Gibt den Typ der Nutzlast des Logeintrags an und weist darauf hin, dass das Log einen - TransformActivityLogfür Speicher-Batchvorgänge darstellt.- completeTime- Zeitstempel - Der ISO 8601-konforme Zeitstempel, zu dem der Vorgang abgeschlossen wurde. - status- Objekt - Enthält Informationen zum Ergebnis der Batchvorgangsaktivität. - status.errorMessage- String - Eine Fehlermeldung, wenn der Vorgang fehlschlägt. Die Fehlermeldung wird nur angezeigt, wenn der Wert - status.statusCodenicht- OKist.- status.errorType- String - Der Fehlertyp. Der Fehlertyp wird nur angezeigt, wenn der Wert - status.statusCodenicht- OKist.- status.statusCode- String - Der Statuscode des Vorgangs. Der Vorgang ist erfolgreich, wenn der Wert - OKist. Jeder andere Wert weist auf einen Fehler hin.- logName- String - Der vollständige Ressourcenname des Logs, der das Projekt und den Logstream angibt. - receiveTimestamp- Zeitstempel - Der Zeitstempel, der angibt, wann der Logeintrag vom Logging-System empfangen wurde. - resource- Objekt - Informationen zur Ressource, die den Logeintrag generiert hat. - resource.labels- Objekt - Schlüssel/Wert-Paare mit zusätzlichen Informationen zur Identifizierung der Ressource. - resource.type- String - Der Ressourcentyp, der das Log generiert hat. - objectMetadataBefore- Objekt - Enthält Metadaten des Objekts, bevor der Batchvorgang versucht wurde. - objectMetadataBefore.gcsObject- Objekt - Details zum Objekt. - objectMetadataBefore.gcsObject.bucket- String - Der Name des Buckets, in dem sich das Objekt befindet. - objectMetadataBefore.gcsObject.generation- String - Die Generierungsnummer des Objekts vor dem Vorgang. - objectMetadataBefore.gcsObject.objectKey- String - Der vollständige Pfad des Objekts im Bucket. 
- Betriebsspezifische - jsonPayload-Inhalte- Der Unterschied zwischen Logeinträgen für verschiedene Batchvorgänge liegt im Objekt der obersten Ebene, das in - jsonPayloadverschachtelt ist. In einem bestimmten Logeintrag ist nur eines der folgenden Objekte verfügbar, das dem ausgeführten Batchvorgang entspricht:- Objekt löschen ( - DeleteObject)- jsonPayload: { "DeleteObject": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } } } }
- PUT-Objekt-Hold ( - PutObjectHold)- jsonPayload: { "PutObjectHold": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } }, "temporaryHoldAfter": True, "eventBasedHoldAfter": True } }
- Objekt umschreiben ( - RewriteObject)- jsonPayload: { "RewriteObject": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } }, "kmsKeyVersionAfter": "projects/my-gcp-project/locations/us-central1/keyRings/my-keyring-01/cryptoKeys/my-encryption-key/cryptoKeyVersions/1" } }
- Metadaten einfügen ( - PutMetadata)- jsonPayload: { "PutMetadata": { "objectMetadataBefore": { "gcsObject": { "bucket": "test-bucket", "generation": "1678912345678901", "objectKey": "test_object.txt" } }, "content_disposition_after": "attachment; filename=\"report_final.pdf\"", "content_encoding_after": "gzip", "content_language_after": "en-US", "content_type_after": "application/pdf", "cache_control_after": "public, max-age=3600", "custom_time_after": "2025-06-27T10:00:00Z", "custom_metadata_after": { "project": "marketing", "version": "2.0", "approvedBy": "Admin" } } }
 - In der folgenden Tabelle werden die betriebsspezifischen Logfelder beschrieben: - Vorgangsspezifische Logfelder - Typ - Beschreibung - PutObjectHold- Objekt - Gibt einen Hold-Vorgang für ein Objekt an. - PutObjectHold.temporaryHoldAfter- Boolesch - Wenn der Wert - Trueist, bedeutet das, dass nach Abschluss des Jobs für Storage-Batchvorgänge eine vorübergehende Sperre für das Objekt angewendet wurde. Gültige Werte sind- Trueund- False.- PutObjectHold.eventBasedHoldAfter- Boolesch - Wenn der Wert - Trueist, bedeutet das, dass nach Abschluss des Jobs für Storage-Batchvorgänge eine ereignisbasierte Aufbewahrungspflicht auf das Objekt angewendet wurde. Gültige Werte sind- Trueund- False.- RewriteObject- Objekt - Gibt einen Umschreibevorgang für ein Objekt an. - RewriteObject.kmsKeyVersionAfter- String - Die Cloud Key Management Service-Schlüsselversion, die nach dem Umschreibevorgang verwendet wird. Das Feld - kmsKeyVersionAfterwird gefüllt, wenn sich der Verschlüsselungsschlüssel des Objekts aufgrund des Umschreibens geändert hat. Dies ist ein optionales Feld. Es ist also möglicherweise nicht vorhanden, wenn die Cloud KMS-Schlüsselversion nach dem Umschreiben unverändert geblieben ist.- PutMetadata- Objekt - Gibt einen Metadatenaktualisierungsvorgang für ein Objekt an. - PutMetadata.content_disposition_after- String - Gibt den - Content-Disposition-Headerwert nach Abschluss des- PutMetadata-Jobs an. Dieses Feld ist optional und wird nur ausgefüllt, wenn die Inhaltsverfügung festgelegt oder geändert wurde.- PutMetadata.content_encoding_after- String - Gibt den - Content-Encoding-Headerwert nach Abschluss des- PutMetadata-Jobs an. Dieses Feld ist optional und wird nur ausgefüllt, wenn die Inhaltsverschlüsselung festgelegt oder geändert wurde.- PutMetadata.content_language_after- String - Gibt den - Content-Language-Headerwert nach Abschluss des- PutMetadata-Jobs an. Dieses Feld ist optional und wird nur ausgefüllt, wenn die Sprache des Inhalts festgelegt oder geändert wurde.- PutMetadata.content_type_after- String - Gibt den - Content-Type-Headerwert nach Abschluss des- PutMetadata-Jobs an. Es ist ein optionales Feld und wird nur ausgefüllt, wenn der Inhaltstyp festgelegt oder geändert wurde.- PutMetadata.cache_control_after- String - Gibt den - Cache-Control-Headerwert nach Abschluss des- PutMetadata-Jobs an. Dies ist ein optionales Feld, das nur ausgefüllt wird, wenn die Cache-Steuerung festgelegt oder geändert wurde.- PutMetadata.custom_time_after- String - Gibt den - Custom-Time-Headerwert nach Abschluss des- PutMetadata-Jobs an. Dieses Feld ist optional und wird nur ausgefüllt, wenn die benutzerdefinierte Zeit festgelegt oder geändert wurde.- PutMetadata.custom_metadata_after- Map (key: string, value: string) - Enthält eine Zuordnung von - Custom- Metadata-Schlüssel/Wert-Paaren nach der Transformation. Dieses Feld enthält alle benutzerdefinierten Metadaten, die für das Objekt festgelegt oder geändert wurden. So können zusätzliche Metadaten flexibel gespeichert werden.