Crear y gestionar tareas de operaciones por lotes

En esta página se describe cómo crear, ver, listar, cancelar y eliminar trabajos de operaciones por lotes de almacenamiento. También se describe cómo usar Cloud Audit Logs con trabajos de operaciones por lotes de almacenamiento.

Antes de empezar

Para crear y gestionar trabajos de operaciones por lotes de almacenamiento, sigue los pasos que se indican en las siguientes secciones.

Configurar Storage Intelligence

Para crear y gestionar tareas de operaciones por lotes de almacenamiento, configure Storage Intelligence en el segmento en el que quiera ejecutar la tarea.

Configurar Google Cloud CLI

Debes usar la versión 516.0.0 o una posterior de Google Cloud CLI.

Definir el proyecto predeterminado

Define el proyecto en el que quieras crear el trabajo de operaciones por lotes de almacenamiento.

gcloud config set project PROJECT_ID

donde PROJECT_ID es el ID de tu proyecto.

Habilitar API

Habilita la API de operaciones por lotes de almacenamiento.

gcloud services enable storagebatchoperations.googleapis.com

Crear un archivo de manifiesto

Para usar un archivo de manifiesto para la selección de objetos, crea un archivo de manifiesto.

Crear una tarea de operaciones por lotes de almacenamiento

En esta sección se describe cómo crear un trabajo de operaciones por lotes de almacenamiento.

Línea de comandos

  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. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs create.

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

    Donde:

    • JOB_NAME es el nombre del trabajo de operaciones por lotes de almacenamiento.
    • BUCKET_NAME es el nombre del segmento que contiene uno o varios objetos que quieres procesar.
    • OBJECT_SELECTION_FLAG es una de las siguientes marcas:

      • --included-object-prefixes: especifica uno o varios prefijos de objeto. Por ejemplo:

        • Para que coincida con un solo prefijo, usa --included-object-prefixes='prefix1'.
        • Para que coincidan varios prefijos, utilice una lista de prefijos separada por comas: --included-object-prefixes='prefix1,prefix2'.
        • Para incluir todos los objetos, usa un prefijo vacío: --included-object-prefixes=''.
      • --manifest-location: especifica la ubicación del manifiesto. Por ejemplo, gs://bucket_name/path/object_name.csv.

    • JOB_TYPE_FLAG es una de las siguientes marcas, en función del tipo de trabajo.

      • --delete-object: elimina uno o varios objetos.

      • --put-metadata: actualiza los metadatos de un objeto. Los metadatos de los objetos se almacenan como pares clave-valor. Especifique el par clave-valor de los metadatos que quiera modificar. Puedes especificar uno o varios pares clave-valor en forma de lista.

      • --rewrite-object: actualiza las claves de cifrado gestionadas por el cliente de uno o varios objetos.

      • --put-object-event-based-hold: habilita los bloqueos de objetos basados en eventos.

      • --no-put-object-event-based-hold: inhabilita las retenciones de objetos basadas en eventos.

      • --put-object-temporary-hold: habilita las retenciones de objetos temporales.

      • --no-put-object-temporary-hold: inhabilita los bloqueos de objetos temporales.

  3. Bibliotecas de cliente

    C++

    Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    [](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
           client,
       std::string const& project_id, std::string const& job_id,
       std::string const& target_bucket_name, std::string const& object_prefix) {
      auto const parent =
          std::string{"projects/"} + project_id + "/locations/global";
      namespace sbo = google::cloud::storagebatchoperations::v1;
      sbo::Job job;
      sbo::BucketList* bucket_list = job.mutable_bucket_list();
      sbo::BucketList::Bucket* bucket_config = bucket_list->add_buckets();
      bucket_config->set_bucket(target_bucket_name);
      sbo::PrefixList* prefix_list_config = bucket_config->mutable_prefix_list();
      prefix_list_config->add_included_object_prefixes(object_prefix);
      sbo::DeleteObject* delete_object_config = job.mutable_delete_object();
      delete_object_config->set_permanent_object_deletion_enabled(false);
      auto result = client.CreateJob(parent, job, job_id).get();
      if (!result) throw result.status();
      std::cout << "Created job: " << result->name() << "\n";
    }

    PHP

    Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
    use Google\Cloud\StorageBatchOperations\V1\CreateJobRequest;
    use Google\Cloud\StorageBatchOperations\V1\Job;
    use Google\Cloud\StorageBatchOperations\V1\BucketList;
    use Google\Cloud\StorageBatchOperations\V1\BucketList\Bucket;
    use Google\Cloud\StorageBatchOperations\V1\PrefixList;
    use Google\Cloud\StorageBatchOperations\V1\DeleteObject;
    
    /**
     * Create a new batch job.
     *
     * @param string $projectId Your Google Cloud project ID.
     *        (e.g. 'my-project-id')
     * @param string $jobId A unique identifier for this job.
     *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
     * @param string $bucketName The name of your Cloud Storage bucket to operate on.
     *        (e.g. 'my-bucket')
     * @param string $objectPrefix The prefix of objects to include in the operation.
     *        (e.g. 'prefix1')
     */
    function create_job(string $projectId, string $jobId, string $bucketName, string $objectPrefix): void
    {
        // Create a client.
        $storageBatchOperationsClient = new StorageBatchOperationsClient();
    
        $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
    
        $prefixListConfig = new PrefixList(['included_object_prefixes' => [$objectPrefix]]);
        $bucket = new Bucket(['bucket' => $bucketName, 'prefix_list' => $prefixListConfig]);
        $bucketList = new BucketList(['buckets' => [$bucket]]);
    
        $deleteObject = new DeleteObject(['permanent_object_deletion_enabled' => false]);
    
        $job = new Job(['bucket_list' => $bucketList, 'delete_object' => $deleteObject]);
    
        $request = new CreateJobRequest([
            'parent' => $parent,
            'job_id' => $jobId,
            'job' => $job,
        ]);
        $response = $storageBatchOperationsClient->createJob($request);
    
        printf('Created job: %s', $response->getName());
    }

    APIs REST

    API JSON

    1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

    2. Crea un archivo JSON que contenga los ajustes del trabajo de operaciones por lotes de almacenamiento. A continuación se indican algunos ajustes habituales que puedes incluir:

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

      Donde:

      • JOB_NAME es el nombre del trabajo de operaciones por lotes de almacenamiento.

      • JOB_DESCRIPTION es la descripción de la tarea de operaciones por lotes de almacenamiento.

      • BUCKET_NAME es el nombre del segmento que contiene uno o varios objetos que quieres procesar.

      • Para especificar los objetos que quiere procesar, utilice cualquiera de los siguientes atributos en el archivo JSON:

        • MANIFEST_LOCATION es la ubicación del manifiesto. Por ejemplo, gs://bucket_name/path/object_name.csv.

        • OBJECT_PREFIXES es la lista separada por comas que contiene uno o varios prefijos de objeto. Para que coincidan todos los objetos, usa una lista vacía.

      • En función del trabajo que quieras procesar, especifica una de las siguientes opciones:

        • Eliminar objetos:

          "DeleteObject":
          {
          "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
          }

          Donde OBJECT_DELETION_VALUE es TRUE para eliminar objetos.

        • Actualiza la clave de cifrado gestionada por el cliente de los objetos:

          "RewriteObject":
          {
          "kms_key": KMS_KEY_VALUE
          }

          Donde KMS_KEY_VALUE es el valor de la clave de KMS del objeto que quieres actualizar.

        • Actualiza los metadatos del objeto:

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

          Donde METADATA_VALUE es el valor de la clave de los metadatos del objeto. Puedes especificar uno o varios pares clave-valor en forma de lista.

        • Actualiza las retenciones de objetos:

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

          Donde:

          • TEMPORARY_HOLD_VALUE se usa para habilitar o inhabilitar la retención temporal de objetos. El valor 1 habilita la retención y el valor 2 la inhabilita.

          • EVENT_BASED_HOLD_VALUE se usa para habilitar o inhabilitar la retención de objetos basada en eventos. El valor 1 habilita la retención y el valor 2 la inhabilita.

    3. Usa cURL para llamar a la API JSON con una solicitud de POST trabajo de operaciones por lotes de almacenamiento:

      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/projects/PROJECT_ID/locations/global/jobs?job_id=JOB_ID"

      Donde:

      • JSON_FILE_NAME es el nombre del archivo JSON.
      • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project.
      • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

Obtener detalles de una tarea de operaciones por lotes de almacenamiento

En esta sección se describe cómo obtener los detalles de un trabajo de operaciones por lotes de almacenamiento.

Línea de comandos

  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. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs describe.

    gcloud storage batch-operations jobs describe JOB_ID

    Donde:

    JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

  3. Bibliotecas de cliente

    C++

    Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    [](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
           client,
       std::string const& project_id, std::string const& job_id) {
      auto const parent =
          std::string{"projects/"} + project_id + "/locations/global";
      auto const name = parent + "/jobs/" + job_id;
      auto job = client.GetJob(name);
      if (!job) throw job.status();
      std::cout << "Got job: " << job->name() << "\n";
    }

    PHP

    Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
    use Google\Cloud\StorageBatchOperations\V1\GetJobRequest;
    
    /**
     * Gets a batch job.
     *
     * @param string $projectId Your Google Cloud project ID.
     *        (e.g. 'my-project-id')
     * @param string $jobId A unique identifier for this job.
     *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
     */
    function get_job(string $projectId, string $jobId): void
    {
        // Create a client.
        $storageBatchOperationsClient = new StorageBatchOperationsClient();
    
        $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
        $formattedName = $parent . '/jobs/' . $jobId;
    
        $request = new GetJobRequest([
            'name' => $formattedName,
        ]);
    
        $response = $storageBatchOperationsClient->getJob($request);
    
        printf('Got job: %s', $response->getName());
    }

    APIs REST

    API JSON

    1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

    2. Usa cURL para llamar a la API JSON con una solicitud de GET trabajo de operaciones por lotes de almacenamiento:

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

      Donde:

      • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project.
      • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

Mostrar trabajos de operaciones por lotes de almacenamiento

En esta sección se describe cómo enumerar los trabajos de operaciones por lotes de almacenamiento de un proyecto.

Línea de comandos

  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. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs list.

    gcloud storage batch-operations jobs list
  3. Bibliotecas de cliente

    C++

    Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    [](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
           client,
       std::string const& project_id) {
      auto const parent =
          std::string{"projects/"} + project_id + "/locations/global";
      for (auto const& job : client.ListJobs(parent)) {
        if (!job) throw job.status();
        std::cout << job->name() << "\n";
      }
    }

    PHP

    Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
    use Google\Cloud\StorageBatchOperations\V1\ListJobsRequest;
    
    /**
     * List Jobs in a given project.
     *
     * @param string $projectId Your Google Cloud project ID.
     *        (e.g. 'my-project-id')
     */
    function list_jobs(string $projectId): void
    {
        // Create a client.
        $storageBatchOperationsClient = new StorageBatchOperationsClient();
    
        $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
    
        $request = new ListJobsRequest([
            'parent' => $parent,
        ]);
    
        $jobs = $storageBatchOperationsClient->listJobs($request);
    
        foreach ($jobs as $job) {
            printf('Job name: %s' . PHP_EOL, $job->getName());
        }
    }

    APIs REST

    API JSON

    1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

    2. Usa cURL para llamar a la API JSON con una solicitud de LIST trabajos de operaciones por lotes de almacenamiento:

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

      Donde:

      PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project.

Cancelar una tarea de operaciones por lotes de almacenamiento

En esta sección se describe cómo cancelar un trabajo de operaciones por lotes de almacenamiento en un proyecto.

Línea de comandos

  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. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs cancel.

    gcloud storage batch-operations jobs cancel JOB_ID

    Donde:

    JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

  3. Bibliotecas de cliente

    C++

    Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    [](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
           client,
       std::string const& project_id, std::string const& job_id) {
      auto const parent =
          std::string{"projects/"} + project_id + "/locations/global";
      auto const name = parent + "/jobs/" + job_id;
      auto response = client.CancelJob(name);
      if (!response) throw response.status();
      std::cout << "Cancelled job: " << name << "\n";
    }

    PHP

    Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
    use Google\Cloud\StorageBatchOperations\V1\CancelJobRequest;
    
    /**
     * Cancel a batch job.
     *
     * @param string $projectId Your Google Cloud project ID.
     *        (e.g. 'my-project-id')
     * @param string $jobId A unique identifier for this job.
     *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
     */
    function cancel_job(string $projectId, string $jobId): void
    {
        // Create a client.
        $storageBatchOperationsClient = new StorageBatchOperationsClient();
    
        $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
        $formattedName = $parent . '/jobs/' . $jobId;
    
        $request = new CancelJobRequest([
            'name' => $formattedName,
        ]);
    
        $storageBatchOperationsClient->cancelJob($request);
    
        printf('Cancelled job: %s', $formattedName);
    }

    APIs REST

    API JSON

    1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

    2. Usa cURL para llamar a la API JSON con una solicitud de CANCEL trabajo de operaciones por lotes de almacenamiento:

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

      Donde:

      • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project.

      • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

Eliminar una tarea de operaciones por lotes de almacenamiento

En esta sección se describe cómo eliminar un trabajo de operaciones por lotes de almacenamiento.

Línea de comandos

  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. En tu entorno de desarrollo, ejecuta el comando gcloud storage batch-operations jobs delete.

    gcloud storage batch-operations jobs delete JOB_ID

    Donde:

    JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

  3. Bibliotecas de cliente

    C++

    Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    [](google::cloud::storagebatchoperations_v1::StorageBatchOperationsClient
           client,
       std::string const& project_id, std::string const& job_id) {
      auto const parent =
          std::string{"projects/"} + project_id + "/locations/global";
      auto const name = parent + "/jobs/" + job_id;
      auto status = client.DeleteJob(name);
      if (!status.ok()) throw status;
      std::cout << "Deleted job: " << name << "\n";
    }

    PHP

    Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.

    Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

    use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient;
    use Google\Cloud\StorageBatchOperations\V1\DeleteJobRequest;
    
    /**
     * Delete a batch job.
     *
     * @param string $projectId Your Google Cloud project ID.
     *        (e.g. 'my-project-id')
     * @param string $jobId A unique identifier for this job.
     *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5')
     */
    function delete_job(string $projectId, string $jobId): void
    {
        // Create a client.
        $storageBatchOperationsClient = new StorageBatchOperationsClient();
    
        $parent = $storageBatchOperationsClient->locationName($projectId, 'global');
        $formattedName = $parent . '/jobs/' . $jobId;
    
        $request = new DeleteJobRequest([
            'name' => $formattedName,
        ]);
    
        $storageBatchOperationsClient->deleteJob($request);
    
        printf('Deleted job: %s', $formattedName);
    }

    APIs REST

    API JSON

    1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

    2. Usa cURL para llamar a la API JSON con una solicitud de DELETE trabajo de operaciones por lotes de almacenamiento:

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

      Donde:

      • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project.

      • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

Crear una tarea de operaciones por lotes de almacenamiento con conjuntos de datos de Storage Insights

Para crear un trabajo de operaciones por lotes de almacenamiento mediante conjuntos de datos de Estadísticas de almacenamiento, sigue los pasos que se indican en las siguientes secciones.

Crear un manifiesto con conjuntos de datos de Estadísticas de almacenamiento

Para crear el manifiesto de tu trabajo de operaciones por lotes de almacenamiento, puedes extraer datos de BigQuery. Para ello, debes consultar el conjunto de datos vinculado, exportar los datos resultantes como un archivo CSV y guardarlo en un segmento de Cloud Storage. El trabajo de operaciones por lotes de almacenamiento puede usar este archivo CSV como manifiesto.

Al ejecutar la siguiente consulta de SQL en BigQuery en una vista de conjunto de datos de Estadísticas de almacenamiento, se obtienen los objetos de más de 1 KiB que se llaman 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
  

Donde:

  • URI es el URI del grupo que contiene el manifiesto. Por ejemplo, gs://bucket_name/path_to_csv_file/*.csv. Cuando usas el carácter comodín *.csv, BigQuery exporta el resultado a varios archivos CSV.
  • OVERWRITE_VALUE es un valor booleano. Si se le asigna el valor true, la operación de exportación sobrescribe los archivos que ya haya en la ubicación especificada.
  • DATASET_VIEW_NAME es el nombre completo de la vista del conjunto de datos de Estadísticas de almacenamiento en formato PROJECT_ID.DATASET_ID.VIEW_NAME. Para encontrar el nombre de tu conjunto de datos, consulta el conjunto de datos vinculado.

    Donde:

    • PROJECT_ID es el ID o el número del proyecto. Por ejemplo, my-project.
    • DATASET_ID es el nombre del conjunto de datos. Por ejemplo, objects-deletion-dataset.
    • VIEW_NAME es el nombre de la vista del conjunto de datos. Por ejemplo, bucket_attributes_view.
  • BUCKET_NAME es el nombre del segmento. Por ejemplo, my-bucket.

  • SNAPSHOT_TIME es la hora de la captura de la vista del conjunto de datos de Estadísticas de almacenamiento. Por ejemplo, 2024-09-10T00:00:00Z.

Crear una tarea de operaciones por lotes de almacenamiento

Para crear un trabajo de operaciones por lotes de almacenamiento que procese los objetos incluidos en el manifiesto, siga estos pasos:

Línea de comandos

  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. En tu entorno de desarrollo, ejecuta el 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

    Donde:

    • JOB_ID es el nombre del trabajo de operaciones por lotes de almacenamiento.

    • SOURCE_BUCKET_NAME es el contenedor que contiene uno o varios objetos que quieres procesar. Por ejemplo, my-bucket.

    • URI es el URI del grupo que contiene el manifiesto. Por ejemplo, gs://bucket_name/path_to_csv_file/*.csv. Cuando usas el carácter comodín *.csv, BigQuery exporta el resultado a varios archivos CSV.

    • JOB_TYPE_FLAG es una de las siguientes marcas, en función del tipo de trabajo.

      • --delete-object: elimina uno o varios objetos.

      • --put-metadata: actualiza los metadatos de un objeto. Los metadatos de los objetos se almacenan como pares clave-valor. Especifique el par clave-valor de los metadatos que quiera modificar. Puedes especificar uno o varios pares clave-valor en forma de lista.

      • --rewrite-object: actualiza las claves de cifrado gestionadas por el cliente de uno o varios objetos.

      • --put-object-event-based-hold: habilita los bloqueos de objetos basados en eventos.

      • --no-put-object-event-based-hold: inhabilita las retenciones de objetos basadas en eventos.

      • --put-object-temporary-hold: habilita las retenciones de objetos temporales.

      • --no-put-object-temporary-hold: inhabilita los bloqueos de objetos temporales.

Integración con Controles de Servicio de VPC

Puedes proporcionar una capa adicional de seguridad para los recursos de operaciones por lotes de almacenamiento mediante los Controles de Servicio de VPC. Cuando usas Controles de Servicio de VPC, añades proyectos a perímetros de servicio que protegen los recursos y los servicios de las solicitudes que proceden de fuera del perímetro. Para obtener más información sobre los detalles del perímetro de servicio de Controles de Servicio de VPC para operaciones por lotes de almacenamiento, consulta Productos admitidos y limitaciones.

Usar los registros de auditoría de Cloud para trabajos de operaciones por lotes de almacenamiento

Los trabajos de operaciones por lotes de almacenamiento registran las transformaciones de objetos de Cloud Storage en los registros de auditoría de Cloud de Cloud Storage. Puedes usar Cloud Audit Logs con Cloud Storage para monitorizar las transformaciones de objetos que realizan los trabajos de operaciones por lotes de almacenamiento. Para obtener información sobre cómo habilitar los registros de auditoría, consulta el artículo Habilitar registros de auditoría. En la entrada del registro de auditoría, el campo de metadatos callUserAgent con el valor StorageBatchOperations indica una transformación de operaciones por lotes de almacenamiento.

Pasos siguientes