Créer et gérer des tâches d'opération par lot

Cette page explique comment créer, afficher, lister, annuler et supprimer des jobs d' opérations par lot de stockage. Il explique également comment utiliser Cloud Audit Logs avec les jobs d'opérations par lot de stockage.

Avant de commencer

Pour créer et gérer des tâches d'opérations par lot de stockage, suivez les étapes décrites dans les sections suivantes.

Configurer Storage Intelligence

Pour créer et gérer des jobs d'opérations par lot de stockage, configurez Storage Intelligence sur le bucket dans lequel vous souhaitez exécuter le job.

Configurer Google Cloud CLI

Vous devez utiliser la version 516.0.0 ou ultérieure de Google Cloud CLI.

Définir le projet par défaut

Définissez le projet dans lequel vous souhaitez créer la tâche d'opérations par lot de stockage.

gcloud config set project PROJECT_ID

PROJECT_ID correspond à l'ID de votre projet.

Activer l'API

Activez l'API Storage Batch Operations.

gcloud services enable storagebatchoperations.googleapis.com

Créer un fichier manifeste

Pour utiliser un fichier manifeste pour la sélection d'objets, créez-en un.

Créer une tâche d'opérations par lot de stockage

Cette section explique comment créer une tâche d'opérations par lot de stockage.

Ligne de commande

  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. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs create.

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

    Où :

    • JOB_NAME est le nom de la tâche d'opérations par lot de stockage.
    • BUCKET_NAME correspond au nom du bucket contenant un ou plusieurs objets que vous souhaitez traiter.
    • OBJECT_SELECTION_FLAG est l'un des indicateurs suivants:

      • --included-object-prefixes: spécifiez un ou plusieurs préfixes d'objet. Exemple :

        • Pour faire correspondre un seul préfixe, utilisez: --included-object-prefixes='prefix1'.
        • Pour faire correspondre plusieurs préfixes, utilisez une liste de préfixes séparés par une virgule: --included-object-prefixes='prefix1,prefix2'.
        • Pour inclure tous les objets, utilisez un préfixe vide: --included-object-prefixes=''.
      • --manifest-location: spécifiez l'emplacement du fichier manifeste. Par exemple, gs://bucket_name/path/object_name.csv.

    • JOB_TYPE_FLAG correspond à l'un des indicateurs suivants, en fonction du type de tâche.

      • --delete-object: supprimez un ou plusieurs objets.

      • --put-metadata: mettez à jour les métadonnées de l'objet. Les métadonnées d'objet sont stockées sous forme de paires clé-valeur. Spécifiez la paire clé-valeur pour les métadonnées que vous souhaitez modifier. Vous pouvez spécifier une ou plusieurs paires clé-valeur sous forme de liste.

      • --rewrite-object: mettez à jour les clés de chiffrement gérées par le client d'un ou de plusieurs objets.

      • --put-object-event-based-hold: activez les rétentions d'objets basées sur les événements.

      • --no-put-object-event-based-hold: désactivez les rétentions d'objets basées sur les événements.

      • --put-object-temporary-hold: active les rétentions d'objets temporaires.

      • --no-put-object-temporary-hold: désactive les rétentions d'objets temporaires.

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Créez un fichier JSON contenant les paramètres de la tâche d'opérations par lot de stockage. Les paramètres les plus courants sont les suivants :

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

    Où :

    • JOB_NAME est le nom de la tâche d'opérations par lot de stockage.

    • JOB_DESCRIPTION est la description de la tâche d'opérations par lot de stockage.

    • BUCKET_NAME correspond au nom du bucket contenant un ou plusieurs objets que vous souhaitez traiter.

    • Pour spécifier les objets que vous souhaitez traiter, utilisez l'un des attributs suivants dans le fichier JSON:

      • MANIFEST_LOCATION correspond à l'emplacement du fichier manifeste. Par exemple, gs://bucket_name/path/object_name.csv.

      • OBJECT_PREFIXES est la liste séparée par une virgule contenant un ou plusieurs préfixes d'objet. Pour faire correspondre tous les objets, utilisez une liste vide.

    • Selon la tâche que vous souhaitez traiter, spécifiez l'une des options suivantes:

      • Supprimez des objets:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        OBJECT_DELETION_VALUE est TRUE pour supprimer des objets.

      • Mettez à jour la clé de chiffrement gérée par le client pour les objets:

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        KMS_KEY_VALUE correspond à la valeur de la clé KMS de l'objet que vous souhaitez mettre à jour.

      • Mettez à jour les métadonnées d'objet:

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

        METADATA_VALUE est la valeur de clé des métadonnées de l'objet. Vous pouvez spécifier une ou plusieurs paires clé-valeur sous forme de liste.

      • Mettez à jour les préservations d'objets à titre conservatoire:

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

        Où :

        • TEMPORARY_HOLD_VALUE permet d'activer ou de désactiver la conservation temporaire des objets. La valeur 1 active la mise en attente, et la valeur 2 la désactive.

        • EVENT_BASED_HOLD_VALUE permet d'activer ou de désactiver la préservation à titre conservatoire basée sur des événements. La valeur 1 active la mise en attente, et la valeur 2 la désactive.

  3. Exécutez cURL pour appeler l'API JSON avec une requête d'opérations par lot de stockage POST:

    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"

    Où :

    • JSON_FILE_NAME correspond au nom du fichier JSON.
    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project
    • JOB_ID est le nom de la tâche d'opérations par lot de stockage.

Obtenir les détails des tâches d'opérations par lot de stockage

Cette section explique comment obtenir les détails des tâches d'opérations par lot de stockage.

Ligne de commande

  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. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs describe.

    gcloud storage batch-operations jobs describe JOB_ID

    Où :

    JOB_ID est le nom de la tâche d'opérations par lot de stockage.

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête d'opérations par lot de stockage GET:

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

    Où :

    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project
    • JOB_ID est le nom de la tâche d'opérations par lot de stockage.

Lister les tâches d'opérations par lot de stockage

Cette section explique comment lister les tâches d'opérations par lot de stockage dans un projet.

Ligne de commande

  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. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs list.

    gcloud storage batch-operations jobs list

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête LIST d'opérations de traitement par lot de stockage:

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

    Où :

    PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project

Annuler une tâche d'opérations par lot de stockage

Cette section explique comment annuler une tâche d'opérations par lot de stockage dans un projet.

Ligne de commande

  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. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs cancel.

    gcloud storage batch-operations jobs cancel JOB_ID

    Où :

    JOB_ID est le nom de la tâche d'opérations par lot de stockage.

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête CANCEL d'opérations de traitement par lot de stockage:

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

    Où :

    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project

    • JOB_ID est le nom de la tâche d'opérations par lot de stockage.

Supprimer un job d'opérations par lot de stockage

Cette section explique comment supprimer une tâche d'opérations par lot de stockage.

Ligne de commande

  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. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs delete.

    gcloud storage batch-operations jobs delete JOB_ID

    Où :

    JOB_ID est le nom de la tâche d'opérations par lot de stockage.

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Utilisez cURL pour appeler l'API JSON avec une requête DELETE d'opérations de traitement par lot de stockage:

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

    Où :

    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project

    • JOB_ID est le nom de la tâche d'opérations par lot de stockage.

Créer une tâche d'opérations par lot de stockage à l'aide d'ensembles de données Storage Insights

Pour créer une tâche d'opérations par lot de stockage à l'aide de ensembles de données Storage Insights, suivez la procédure décrite dans les sections suivantes.

Créer un fichier manifeste à l'aide d'ensembles de données Storage Insights

Vous pouvez créer le fichier manifeste de votre tâche d'opérations par lot de stockage en extrayant des données de BigQuery. Pour ce faire, vous devez interroger l'ensemble de données associé, exporter les données obtenues au format CSV et les enregistrer dans un bucket Cloud Storage. La tâche d'opérations par lot de stockage peut ensuite utiliser ce fichier CSV comme fichier manifeste.

L'exécution de la requête SQL suivante dans BigQuery sur une vue d'ensemble de données Storage Insights permet de récupérer les objets de plus de 1 ko nommés 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
  

Où :

  • URI correspond à l'URI du bucket contenant le fichier manifeste. Exemple :gs://bucket_name/path_to_csv_file/*.csv Lorsque vous utilisez l'opérateur générique *.csv, BigQuery exporte le résultat dans plusieurs fichiers CSV.
  • OVERWRITE_VALUE est une valeur booléenne. Si la valeur est true, l'opération d'exportation écrase les fichiers existants à l'emplacement spécifié.
  • DATASET_VIEW_NAME est le nom complet de la vue de l'ensemble de données Storage Insights au format PROJECT_ID.DATASET_ID.VIEW_NAME. Pour trouver le nom de votre ensemble de données, affichez l'ensemble de données associé.

    Où :

    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project
    • DATASET_ID est le nom de l'ensemble de données. Exemple :objects-deletion-dataset
    • VIEW_NAME est le nom de la vue de l'ensemble de données. Exemple :bucket_attributes_view
  • BUCKET_NAME est le nom du bucket. Exemple :my-bucket

  • SNAPSHOT_TIME correspond à l'heure de l'instantané de la vue de l'ensemble de données Storage Insights. Exemple :2024-09-10T00:00:00Z

Créer une tâche d'opérations par lot de stockage

Pour créer une tâche d'opérations par lot de stockage afin de traiter les objets contenus dans le fichier manifeste, procédez comme suit:

Ligne de commande

  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. Dans votre environnement de développement, exécutez la commande gcloud storage batch-operations jobs create :

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

    Où :

    • JOB_ID est le nom de la tâche d'opérations par lot de stockage.

    • SOURCE_BUCKET_NAME est le bucket contenant un ou plusieurs objets que vous souhaitez traiter. Exemple :my-bucket

    • URI correspond à l'URI du bucket contenant le fichier manifeste. Exemple :gs://bucket_name/path_to_csv_file/*.csv Lorsque vous utilisez l'opérateur générique *.csv, BigQuery exporte le résultat dans plusieurs fichiers CSV.

    • JOB_TYPE_FLAG correspond à l'un des indicateurs suivants, en fonction du type de tâche.

      • --delete-object: supprimez un ou plusieurs objets.

      • --put-metadata: mettez à jour les métadonnées de l'objet. Les métadonnées d'objet sont stockées sous forme de paires clé-valeur. Spécifiez la paire clé-valeur pour les métadonnées que vous souhaitez modifier. Vous pouvez spécifier une ou plusieurs paires clé-valeur sous forme de liste.

      • --rewrite-object: mettez à jour les clés de chiffrement gérées par le client d'un ou de plusieurs objets.

      • --put-object-event-based-hold: activez les rétentions d'objets basées sur les événements.

      • --no-put-object-event-based-hold: désactivez les rétentions d'objets basées sur les événements.

      • --put-object-temporary-hold: active les rétentions d'objets temporaires.

      • --no-put-object-temporary-hold: désactive les rétentions d'objets temporaires.

Utiliser Cloud Audit Logs pour les tâches d'opérations par lot de stockage

Les jobs d'opérations par lot de stockage enregistrent les transformations sur les objets Cloud Storage dans les journaux d'audit Cloud de Cloud Storage. Vous pouvez utiliser Cloud Audit Logging avec Cloud Storage pour suivre les transformations d'objets effectuées par les tâches d'opérations par lot de stockage. Pour savoir comment activer les journaux d'audit, consultez la section Activer les journaux d'audit. Dans l'entrée du journal d'audit, le champ de métadonnées callUserAgent avec la valeur StorageBatchOperations indique une transformation des opérations de traitement par lot de stockage.

Étapes suivantes