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 jobs d'opérations par lot Storage, 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 le job 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 un fichier manifeste.

Créer un job d'opérations par lot de stockage

Cette section explique comment créer un job 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 du job 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 : supprime 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 pour un ou plusieurs objets.

      • --put-object-event-based-hold : activez les retenues d'objet basées sur des événements.

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

      • --put-object-temporary-hold : active les retenues d'objets temporaires.

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

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLIafin 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 du job d'opérations par lot Storage. 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 du job d'opérations par lot de stockage.

    • JOB_DESCRIPTION est la description du job 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 manifeste. Par exemple, gs://bucket_name/path/object_name.csv.

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

    • En fonction du job que vous souhaitez traiter, spécifiez l'une des options suivantes :

      • Supprimer 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 la clé des métadonnées de l'objet. Vous pouvez spécifier une ou plusieurs paires clé-valeur sous forme de liste.

      • Mettez à jour 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 préservation temporaire de l'objet. La valeur 1 active le report, tandis que la valeur 2 le désactive.

        • EVENT_BASED_HOLD_VALUE permet d'activer ou de désactiver la préservation d'objet basée sur des événements. La valeur 1 active le report, tandis que la valeur 2 le désactive.

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

    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 est le nom du fichier JSON.
    • PROJECT_ID correspond à l'ID ou au numéro du projet. Exemple :my-project
    • JOB_ID est le nom du job d'opérations par lot de stockage.

Obtenir les détails d'un job d'opérations par lot de stockage

Cette section explique comment obtenir les détails du job d'opérations par lot Storage.

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 du job d'opérations par lot de stockage.

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLIafin 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 GET de job d'opérations 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?JOB_ID"

    Où :

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

Lister les jobs d'opérations Storage par lot

Cette section explique comment lister les jobs d'opérations par lot Storage 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 CLIafin 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 de tâches d'opérations 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 un job d'opération par lot de stockage

Cette section explique comment annuler une tâche d'opération par lots Storage 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 du job d'opérations par lot de stockage.

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLIafin 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 de job d'opérations 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 du job d'opérations par lot de stockage.

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

Cette section explique comment supprimer un job 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 du job d'opérations par lot de stockage.

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLIafin 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 de job d'opérations 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 du job d'opérations par lot de stockage.

Créer un job d'opérations par lot Storage à l'aide d'ensembles de données Storage Insights

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

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

Vous pouvez créer le fichier manifeste pour 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 sous forme de fichier CSV et les enregistrer dans un bucket Cloud Storage. La tâche d'opérations par lot Storage 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 récupère les objets de plus de 1 Kio 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 le caractère générique *.csv, BigQuery exporte le résultat dans plusieurs fichiers CSV.
  • OVERWRITE_VALUE est une valeur booléenne. Si la valeur est définie sur 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 un job d'opérations par lot de stockage

Pour créer un job d'opérations par lot Storage permettant 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 du job 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 le caractère 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 : supprime 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 pour un ou plusieurs objets.

      • --put-object-event-based-hold : activez les retenues d'objet basées sur des événements.

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

      • --put-object-temporary-hold : active les retenues d'objets temporaires.

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

Intégration à VPC Service Controls

Vous pouvez fournir un niveau de sécurité supplémentaire pour les ressources d'opérations par lot de stockage à l'aide de VPC Service Controls. Lorsque vous utilisez VPC Service Controls, vous ajoutez des projets aux périmètres de service afin de protéger les ressources et les services des requêtes provenant de l'extérieur du périmètre. Pour en savoir plus sur les détails du périmètre de service VPC Service Controls pour les opérations par lot de stockage, consultez Produits compatibles et limites.

Utiliser Cloud Audit Logs pour les jobs d'opérations par lot de stockage

Les jobs d'opérations par lot de stockage enregistrent les transformations apportées aux objets Cloud Storage dans les journaux d'audit Cloud de Cloud Storage. Vous pouvez utiliser Cloud Audit Logs 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 Activer les journaux d'audit. Dans l'entrée de journal d'audit, le champ de métadonnées callUserAgent avec la valeur StorageBatchOperations indique une transformation des opérations par lot de stockage.

Étapes suivantes