Auf dieser Seite wird beschrieben, wie Sie Logs für Storage-Batchvorgänge mit Cloud Logging konfigurieren und ansehen. Ein Batchvorgangsjob für 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 Storage-Cloud-Audit-Logs. 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, die Echtzeitüberwachung und das erweiterte Filtern 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 Storage Batch Operations 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 war erfolgreich.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_NAME
ist der Name, den Sie dem Job geben möchten. Beispiel:my-job
.MANIFEST_LOCATION
ist der Speicherort Ihres Manifests. Beispiel:gs://my-bucket/manifest.csv
.LOG_ACTION_STATES
ist 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_job
ein 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 Speicher-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 TransformActivityLog
fü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.statusCode
nichtOK
ist.status.errorType
String Der Fehlertyp. Der Fehlertyp wird nur angezeigt, wenn der Wert status.statusCode
nichtOK
ist.status.statusCode
String Der Statuscode des Vorgangs. Der Vorgang ist erfolgreich, wenn der Wert OK
ist. 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
-InhalteDer Unterschied zwischen Logeinträgen für verschiedene Batchvorgänge liegt im Objekt der obersten Ebene, das in
jsonPayload
verschachtelt 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 True
ist, bedeutet das, dass nach Abschluss des Jobs für Storage-Batchvorgänge eine vorübergehende Sperre auf das Objekt angewendet wurde. Gültige Werte sindTrue
undFalse
.PutObjectHold.eventBasedHoldAfter
Boolesch Wenn der Wert True
ist, bedeutet das, dass nach Abschluss des Jobs für Storage-Batchvorgänge eine ereignisbasierte Aufbewahrungspflicht auf das Objekt angewendet wurde. Gültige Werte sindTrue
undFalse
.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 kmsKeyVersionAfter
wird gefüllt, wenn sich der Verschlüsselungsschlüssel des Objekts aufgrund des Umschreibens geändert hat. Dies ist ein optionales Feld, das möglicherweise nicht vorhanden ist, wenn die Cloud KMS-Schlüsselversion nach dem Umschreiben unverändert geblieben ist.PutMetadata
Objekt Gibt einen Metadaten-Aktualisierungsvorgang für ein Objekt an. PutMetadata.content_disposition_after
String Gibt den Headerwert Content-Disposition
nach Abschluss des JobsPutMetadata
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 Headerwert Content-Encoding
nach Abschluss des JobsPutMetadata
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 Headerwert Content-Language
nach Abschluss des JobsPutMetadata
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 Headerwert Content-Type
nach Abschluss des JobsPutMetadata
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 desPutMetadata
-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 desPutMetadata
-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.