Auf dieser Seite wird beschrieben, wie Sie Logs für Speicher-Batchvorgänge mit Cloud Logging konfigurieren und ansehen. Ein Job für Speicher-Batchvorgänge kann so konfiguriert werden, dass für jeden Transformationsjob Logeinträge in Cloud Logging generiert werden. Jeder Logeintrag entspricht der versuchten Transformation eines Objekts.
Speicher-Batchvorgänge 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 Protokollanalyse, das Echtzeit-Monitoring und erweiterte Filterfunktionen und ist damit eine robuste Lösung für die Verwaltung und Analyse Ihrer Batchvorgänge.
Hinweis
Prüfen Sie, ob Sie Zugriff auf Cloud Logging haben. Wenn Sie Cloud Logging verwenden möchten, empfehlen wir, die IAM-Rolle Logs Viewer (roles/logging.viewer) zu gewähren. Die Rolle Logs Viewer (roles/logging.viewer) des Identity and Access Management bietet die Berechtigungen, 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 Speicher-Batchvorgängen die folgenden Details erfasst:
Protokollierbare Aktion: Der Wert für die protokollierbare Aktion ist immer
transform.Protokollierbare Statuswerte: Für jede Aktion können Sie festlegen, ob einer oder beide der folgenden Statuswerte protokolliert werden sollen:
SUCCEEDED: Die Aktion wurde erfolgreich ausgeführt.FAILED: Die Aktion ist fehlgeschlagen.
Logging aktivieren
Geben Sie die Aktionen und Statuswerte an, die protokolliert werden sollen, um das Logging zu aktivieren.
Befehlszeile
Wenn Sie mit gcloud
storage batch-operations jobs create einen Job für Speicher-Batchvorgänge 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
Dabei gilt:
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 Statuswerte. Beispiel:succeeded,failed.
REST API
Create a storage batch operations
job
mit
LoggingConfig.
{ "loggingConfig": { "logActions": ["TRANSFORM"], "logActionStates": ["LOG_ACTION_STATES"], } }
Dabei gilt:
LOG_ACTION_STATES ist eine durch Kommas getrennte Liste der zu protokollierenden Statuswerte. Beispiel: "SUCCEEDED","FAILED".
Logs ansehen
So rufen Sie Logs für Speicher-Batchvorgänge auf:
Console
Rufen Sie das Cloud de Confiance Navigationsmenümenu auf und wählen Sie Logging > Log-Explorer aus:<br\></br\>
Wählen Sie ein Projekt in Cloud de Confiance aus.
Wechseln Sie im Menü Upgrade von Legacy-Loganzeige zu Log-Explorer.
Wenn Sie Ihre Logs so filtern möchten, dass nur Einträge zu Speicher-Batchvorgängen 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\""
}
Dabei gilt:
my-project-name ist der Name Ihres Projekts.
Logformat für Speicher-Batchvorgä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 @typeString Gibt den Typ der Nutzlast des Logeintrags an und weist darauf hin, dass das Log einen TransformActivityLogfür Speicher-Batchvorgänge darstellt.completeTimeZeitstempel Der ISO 8601-konforme Zeitstempel, zu dem der Vorgang abgeschlossen wurde. statusObjekt Enthält Informationen zum Ergebnis der Batchvorgangsaktivität. status.errorMessageString Eine Fehlermeldung, wenn der Vorgang fehlschlägt. Die Fehlermeldung wird nur angezeigt, wenn der Wert status.statusCodenichtOKist.status.errorTypeString Der Fehlertyp. Der Fehlertyp wird nur angezeigt, wenn der Wert status.statusCodenichtOKist.status.statusCodeString Der Statuscode des Vorgangs. Der Vorgang ist erfolgreich, wenn der Wert OKist. Jeder andere Wert weist auf einen Fehler hin.logNameString Der vollständige Ressourcenname des Logs, der das Projekt und den Logstream angibt. receiveTimestampZeitstempel Der Zeitstempel, der angibt, wann der Logeintrag vom Logging-System empfangen wurde. resourceObjekt Informationen zur Ressource, die den Logeintrag generiert hat. resource.labelsObjekt Schlüssel/Wert-Paare mit zusätzlichen personenidentifizierbaren Informationen zur Ressource. resource.typeString Der Ressourcentyp, der das Log generiert hat. objectMetadataBeforeObjekt Enthält Metadaten des Objekts, bevor das Ausführen des Batchvorgangs versucht wurde. objectMetadataBefore.gcsObjectObjekt Details zum Objekt. objectMetadataBefore.gcsObject.bucketString Der Name des Buckets, in dem sich das Objekt befindet. objectMetadataBefore.gcsObject.generationString Die Generationsnummer des Objekts vor dem Vorgang. objectMetadataBefore.gcsObject.objectKeyString Der vollständige Pfad des Objekts im Bucket. Betriebsspezifische
jsonPayload-InhalteDer 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" } } } }Objekt-Hold festlegen (
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 vorgangsspezifischen Logfelder beschrieben:
Vorgangsspezifische Logfelder Typ Beschreibung PutObjectHoldObjekt Gibt einen Hold-Vorgang für ein Objekt an. PutObjectHold.temporaryHoldAfterBoolescher Wert Wenn der Wert Trueist, bedeutet dies, dass nach Abschluss des Jobs für Storage-Batchvorgänge ein temporärer Hold für das Objekt angewendet wurde. Gültige Werte sindTrueundFalse.PutObjectHold.eventBasedHoldAfterBoolescher Wert Wenn der Wert Trueist, bedeutet das, dass nach Abschluss des Jobs für Storage-Batchvorgänge ein ereignisbasierter Hold auf das Objekt angewendet wurde. Gültige Werte sindTrueundFalse.RewriteObjectObjekt Gibt einen Umschreibevorgang für ein Objekt an. RewriteObject.kmsKeyVersionAfterString Die Schlüsselversion von Cloud Key Management Service, die nach dem Umschreiben verwendet wird. Das Feld kmsKeyVersionAfterwird ausgefü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.PutMetadataObjekt Gibt eine Metadatenaktualisierung für ein Objekt an. PutMetadata.content_disposition_afterString Gibt den Content-Disposition-Headerwert nach Abschluss desPutMetadata-Jobs an. Dieses Feld ist optional und wird nur ausgefüllt, wenn die Content-Disposition festgelegt oder geändert wurde.PutMetadata.content_encoding_afterString Gibt den Content-Encoding-Headerwert nach Abschluss desPutMetadata-Jobs an. Dieses Feld ist optional und wird nur ausgefüllt, wenn Content-Encoding festgelegt oder geändert wurde.PutMetadata.content_language_afterString Gibt den Content-Language-Headerwert nach Abschluss desPutMetadata-Jobs an. Dieses Feld ist optional und wird nur ausgefüllt, wenn die Content-Sprache festgelegt oder geändert wurde.PutMetadata.content_type_afterString Gibt den Content-Type-Headerwert nach Abschluss desPutMetadata-Jobs an. Dies ist ein optionales Feld, das nur ausgefüllt wird, wenn der Content-Typ festgelegt oder geändert wurde.PutMetadata.cache_control_afterString Gibt den Cache-Control-Headerwert nach Abschluss desPutMetadata-Jobs an. Dies ist ein optionales Feld und wird nur ausgefüllt, wenn die Cachesteuerung festgelegt oder geändert wurde.PutMetadata.custom_time_afterString Gibt den Custom-Time-Headerwert nach Abschluss desPutMetadata-Jobs an. Dieses Feld ist optional und wird nur ausgefüllt, wenn der benutzerdefinierte Zeitraum festgelegt oder geändert wurde.PutMetadata.custom_metadata_afterZuordnen (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.