Crea e gestisci i job di operazioni batch

Questa pagina descrive come creare, visualizzare, elencare, annullare ed eliminare i job di operazioni batch di archiviazione. Descrive inoltre come utilizzare Cloud Audit Logs con i job di operazioni batch di archiviazione.

Prima di iniziare

Per creare e gestire i job di operazioni batch di archiviazione, completa i passaggi descritti nelle sezioni seguenti.

Configura Storage Intelligence

Per creare e gestire i job di operazioni batch di archiviazione, configura Storage Intelligence nel bucket in cui vuoi eseguire il job.

Configura Google Cloud CLI

Devi utilizzare Google Cloud CLI versione 516.0.0 o successive.

Impostare il progetto predefinito

Imposta il progetto in cui vuoi creare il job di operazioni batch di archiviazione.

gcloud config set project PROJECT_ID

dove PROJECT_ID è l'ID del tuo progetto.

Abilita API

Attiva l'API Storage Batch Operations.

gcloud services enable storagebatchoperations.googleapis.com

Creare un manifest

Per utilizzare un manifest per la selezione degli oggetti, crea un manifest.

Crea un job di operazioni batch di archiviazione

Questa sezione descrive come creare un job di operazioni batch di archiviazione.

Riga di comando

  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. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs create.

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

    Dove:

    • JOB_NAME è il nome del job di operazioni batch di archiviazione.
    • BUCKET_NAME è il nome del bucket che contiene uno o più oggetti da elaborare.
    • OBJECT_SELECTION_FLAG è uno dei seguenti flag:

      • --included-object-prefixes: specifica uno o più prefissi oggetto. Ad esempio:

        • Per far corrispondere un singolo prefisso, utilizza: --included-object-prefixes='prefix1'.
        • Per trovare corrispondenze con più prefissi, utilizza un elenco di prefissi separati da virgole: --included-object-prefixes='prefix1,prefix2'.
        • Per includere tutti gli oggetti, utilizza un prefisso vuoto: --included-object-prefixes=''.
      • --manifest-location: specifica la posizione del manifest. Ad esempio: gs://bucket_name/path/object_name.csv.

    • JOB_TYPE_FLAG è uno dei seguenti flag, a seconda del tipo di lavoro.

      • --delete-object: elimina uno o più oggetti.

      • --put-metadata: aggiorna i metadati dell'oggetto. I metadati dell'oggetto vengono archiviati come coppie chiave-valore. Specifica la coppia chiave-valore per i metadati che vuoi modificare. Puoi specificare una o più coppie chiave-valore come elenco.

      • --rewrite-object: aggiorna le chiavi di crittografia gestite dal cliente per uno o più oggetti.

      • --put-object-event-based-hold: attiva il blocco di oggetti basato sugli eventi.

      • --no-put-object-event-based-hold: disattiva i blocchi di oggetti basati su eventi.

      • --put-object-temporary-hold: attiva i blocchi di oggetti temporanei.

      • --no-put-object-temporary-hold: disattiva i blocchi di oggetti temporanei.

API REST

API JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Crea un file JSON contenente le impostazioni per il job di operazioni batch di archiviazione. Di seguito sono riportate le impostazioni comuni da includere:

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

    Dove:

    • JOB_NAME è il nome del job di operazioni batch di archiviazione.

    • JOB_DESCRIPTION è la descrizione del job di operazione batch di archiviazione.

    • BUCKET_NAME è il nome del bucket che contiene uno o più oggetti da elaborare.

    • Per specificare gli oggetti che vuoi elaborare, utilizza uno dei seguenti attributi nel file JSON:

      • MANIFEST_LOCATION è la posizione del manifest. Ad esempio: gs://bucket_name/path/object_name.csv.

      • OBJECT_PREFIXES è l'elenco separato da virgole contenente uno o più prefissi oggetto. Per trovare la corrispondenza di tutti gli oggetti, utilizza un elenco vuoto.

    • A seconda del job che vuoi elaborare, specifica una delle seguenti opzioni:

      • Elimina oggetti:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        Dove OBJECT_DELETION_VALUE è TRUE per eliminare gli oggetti.

      • Aggiorna la chiave di crittografia gestita dal cliente per gli oggetti:

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        Dove KMS_KEY_VALUE è il valore della chiave KMS dell'oggetto che vuoi aggiornare.

      • Aggiorna i metadati dell'oggetto:

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

        Dove METADATA_VALUE è il valore della chiave dei metadati dell'oggetto. Puoi specificare una o più coppie chiave-valore come elenco.

      • Aggiorna blocchi di oggetti:

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

        Dove:

        • TEMPORARY_HOLD_VALUE viene utilizzato per attivare o disattivare la sospensione temporanea dell'oggetto. Il valore 1 attiva la sospensione, mentre il valore 2 la disattiva.

        • EVENT_BASED_HOLD_VALUE viene utilizzato per attivare o disattivare il blocco basato su eventi dell'oggetto. Il valore 1 attiva la sospensione, mentre il valore 2 la disattiva.

  3. Utilizza cURL per chiamare l'API JSON con una richiesta di POSTjob di operazioni batch di archiviazione:

    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"

    Dove:

    • JSON_FILE_NAME è il nome del file JSON.
    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.
    • JOB_ID è il nome del job di operazioni batch di archiviazione.

Recuperare i dettagli del job di operazioni batch di archiviazione

Questa sezione descrive come ottenere i dettagli del job delle operazioni batch di archiviazione.

Riga di comando

  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. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs describe.

    gcloud storage batch-operations jobs describe JOB_ID

    Dove:

    JOB_ID è il nome del job di operazioni batch di archiviazione.

API REST

API JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di GETjob di operazioni batch di archiviazione:

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

    Dove:

    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.
    • JOB_ID è il nome del job di operazioni batch di archiviazione.

Elenca i job di operazioni batch di archiviazione

Questa sezione descrive come elencare i job di operazioni batch di archiviazione all'interno di un progetto.

Riga di comando

  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. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs list.

    gcloud storage batch-operations jobs list

API REST

API JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di LIST job di operazioni batch di archiviazione:

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

    Dove:

    PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.

Annullamento di un job di operazioni batch di archiviazione

Questa sezione descrive come annullare un job di operazioni batch di archiviazione all'interno di un progetto.

Riga di comando

  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. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs cancel.

    gcloud storage batch-operations jobs cancel JOB_ID

    Dove:

    JOB_ID è il nome del job di operazioni batch di archiviazione.

API REST

API JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di CANCEL un job di operazioni batch di archiviazione:

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

    Dove:

    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.

    • JOB_ID è il nome del job di operazioni batch di archiviazione.

Elimina un job di operazioni batch di archiviazione

Questa sezione descrive come eliminare un job di operazioni batch di archiviazione.

Riga di comando

  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. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs delete.

    gcloud storage batch-operations jobs delete JOB_ID

    Dove:

    JOB_ID è il nome del job di operazioni batch di archiviazione.

API REST

API JSON

  1. Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di DELETE un job di operazioni batch di archiviazione:

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

    Dove:

    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.

    • JOB_ID è il nome del job di operazioni batch di archiviazione.

Crea un job di operazioni batch di archiviazione utilizzando i set di dati Storage Insights

Per creare un job di operazioni batch di archiviazione utilizzando i set di dati Storage Insights, completa i passaggi nelle sezioni seguenti.

Crea un manifest utilizzando i set di dati Storage Insights

Puoi creare il manifest per il job di operazioni batch di archiviazione estraendo i dati da BigQuery. Per farlo, devi interrogare il set di dati collegato, esportare i dati risultanti come file CSV e salvarli in un bucket Cloud Storage. Il job di operazioni batch di archiviazione può quindi utilizzare questo file CSV come manifest.

L'esecuzione della seguente query SQL in BigQuery su una vista del set di dati Storage Insights recupera gli oggetti di dimensioni superiori a 1 KiB denominati Temp_Training:

  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
  

Dove:

  • URI è l'URI del bucket che contiene il manifest. Ad esempio, gs://bucket_name/path_to_csv_file/*.csv. Quando utilizzi il carattere jolly *.csv, BigQuery esporta il risultato in più file CSV.
  • OVERWRITE_VALUE è un valore booleano. Se impostato su true, l'operazione di esportazione sovrascrive i file esistenti nella posizione specificata.
  • DATASET_VIEW_NAME è il nome completo della visualizzazione del set di dati Storage Insights nel formato PROJECT_ID.DATASET_ID.VIEW_NAME. Per trovare il nome del set di dati, visualizza il set di dati collegato.

    Dove:

    • PROJECT_ID è l'ID o il numero del progetto. Ad esempio, my-project.
    • DATASET_ID è il nome del set di dati. Ad esempio, objects-deletion-dataset.
    • VIEW_NAME è il nome della visualizzazione del set di dati. Ad esempio, bucket_attributes_view.
  • BUCKET_NAME è il nome del bucket. Ad esempio, my-bucket.

  • SNAPSHOT_TIME è l'ora dello snapshot della visualizzazione del set di dati Storage Insights. Ad esempio, 2024-09-10T00:00:00Z.

Crea un job di operazioni batch di archiviazione

Per creare un job di operazioni batch di archiviazione per elaborare gli oggetti contenuti nel manifest, completa i seguenti passaggi:

Riga di comando

  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. Nell'ambiente di sviluppo, esegui il comando gcloud storage batch-operations jobs create:

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

    Dove:

    • JOB_ID è il nome del job di operazioni batch di archiviazione.

    • SOURCE_BUCKET_NAME è il bucket che contiene uno o più oggetti che vuoi elaborare. Ad esempio, my-bucket.

    • URI è l'URI del bucket che contiene il manifest. Ad esempio, gs://bucket_name/path_to_csv_file/*.csv. Quando utilizzi il carattere jolly *.csv, BigQuery esporta il risultato in più file CSV.

    • JOB_TYPE_FLAG è uno dei seguenti flag, a seconda del tipo di lavoro.

      • --delete-object: elimina uno o più oggetti.

      • --put-metadata: aggiorna i metadati dell'oggetto. I metadati dell'oggetto vengono archiviati come coppie chiave-valore. Specifica la coppia chiave-valore per i metadati che vuoi modificare. Puoi specificare una o più coppie chiave-valore come elenco.

      • --rewrite-object: aggiorna le chiavi di crittografia gestite dal cliente per uno o più oggetti.

      • --put-object-event-based-hold: attiva il blocco di oggetti basato sugli eventi.

      • --no-put-object-event-based-hold: disattiva i blocchi di oggetti basati su eventi.

      • --put-object-temporary-hold: attiva i blocchi di oggetti temporanei.

      • --no-put-object-temporary-hold: disattiva i blocchi di oggetti temporanei.

Integrazione con i Controlli di servizio VPC

Puoi fornire un ulteriore livello di sicurezza per le risorse delle operazioni batch di archiviazione utilizzando i Controlli di servizio VPC. Quando utilizzi Controlli di servizio VPC, aggiungi progetti ai perimetri di servizio che proteggono risorse e servizi dalle richieste provenienti dall'esterno del perimetro. Per scoprire di più sui dettagli del perimetro di servizio dei Controlli di servizio VPC per le operazioni batch di archiviazione, consulta Prodotti supportati e limitazioni.

Utilizzare Cloud Audit Logs per i job di operazioni batch di archiviazione

I job di operazioni batch di archiviazione registrano le trasformazioni sugli oggetti Cloud Storage in Cloud Audit Logs di Cloud Storage. Puoi utilizzare Cloud Audit Logs con Cloud Storage per monitorare le trasformazioni degli oggetti eseguite dai job di operazioni batch di archiviazione. Per informazioni sull'abilitazione degli audit log, vedi Abilitare gli audit log. Nella voce di log di controllo, il campo metadati callUserAgent con il valore StorageBatchOperations indica una trasformazione delle operazioni batch di archiviazione.

Passaggi successivi