Crea y administra trabajos de operaciones por lotes

En esta página, se describe cómo crear, ver, enumerar, cancelar y borrar trabajos de operaciones por lotes de almacenamiento. También se describe cómo usar los registros de auditoría de Cloud con trabajos de operaciones por lotes de almacenamiento.

Antes de comenzar

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

Configura Storage Intelligence

Para crear y administrar trabajos de operaciones por lotes de almacenamiento, configura Storage Intelligence en el bucket en el que deseas ejecutar el trabajo.

Configura Google Cloud CLI

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

Configura el proyecto predeterminado

Establece el proyecto en el que deseas crear el trabajo de operaciones por lotes de almacenamiento.

gcloud config set project PROJECT_ID

En el ejemplo anterior, 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

Crea un manifiesto

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

Crea un trabajo 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

    Aquí:

    • JOB_NAME es el nombre del trabajo de operaciones por lotes de almacenamiento.
    • BUCKET_NAME es el nombre del bucket que contiene uno o más objetos que deseas procesar.
    • OBJECT_SELECTION_FLAG es una de las siguientes marcas:

      • --included-object-prefixes: Especifica uno o más prefijos de objetos. Por ejemplo:

        • Para hacer coincidir un solo prefijo, usa: --included-object-prefixes='prefix1'.
        • Para hacer coincidir varios prefijos, usa una lista de prefijos separados 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, según el tipo de trabajo.

API de REST

API de JSON

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

  2. Crea un archivo JSON que contenga la configuración del trabajo de operaciones por lotes de almacenamiento. A continuación, se indican las opciones de configuración comunes 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
        }
     }
         

    Aquí:

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

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

    • BUCKET_NAME es el nombre del bucket que contiene uno o más objetos que deseas procesar.

    • Para especificar los objetos que deseas procesar, usa 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 más prefijos de objetos. Para que coincida con todos los objetos, usa una lista vacía.

    • Según el trabajo que quieras procesar, especifica cualquiera de las siguientes opciones:

      • Borra objetos:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        En el ejemplo anterior, OBJECT_DELETION_VALUE es TRUE para borrar objetos.

      • Actualiza la clave de encriptación administrada 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 deseas actualizar.

      • Actualiza los metadatos de los objetos:

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

        Donde METADATA_VALUE es el valor de clave de los metadatos del objeto. Puedes especificar uno o más pares clave-valor como una lista.

      • Actualiza las conservaciones de objetos:

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

        Aquí:

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

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

  3. Usa cURL para llamar a la API de JSON con una solicitud de trabajo de operaciones por lotes de almacenamiento 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"

    Aquí:

    • 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.

Obtén detalles de los trabajos de operaciones por lotes de almacenamiento

En esta sección, se describe cómo obtener los detalles de los trabajos 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

    Aquí:

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

API de REST

API de JSON

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

  2. Usa cURL para llamar a la API de JSON con una solicitud de trabajo de operaciones por lotes de almacenamiento 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"

    Aquí:

    • 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.

Enumera los trabajos de operaciones por lotes de almacenamiento

En esta sección, se describe cómo enumerar las tareas de operaciones por lotes de almacenamiento dentro 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

API de REST

API de JSON

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

  2. Usa cURL para llamar a la API de 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"

    Aquí:

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

Cancela un trabajo de operaciones por lotes de almacenamiento

En esta sección, se describe cómo cancelar una tarea de operaciones por lotes de almacenamiento dentro 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 cancel.

    gcloud storage batch-operations jobs cancel JOB_ID

    Aquí:

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

API de REST

API de JSON

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

  2. Usa cURL para llamar a la API de JSON con una solicitud de CANCEL un 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"

    Aquí:

    • 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.

Borra un trabajo de operaciones por lotes de almacenamiento

En esta sección, se describe cómo borrar 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

    Aquí:

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

API de REST

API de JSON

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

  2. Usa cURL para llamar a la API de JSON con una solicitud de DELETE un 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"

    Aquí:

    • 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.

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

Para crear una tarea de operaciones por lotes de almacenamiento con conjuntos de datos de Storage Insights, completa los pasos que se indican en las siguientes secciones.

Crea un manifiesto con conjuntos de datos de Storage Insights

Para crear el manifiesto de tu trabajo de operaciones por lotes de almacenamiento, extrae datos de BigQuery. Para ello, deberás consultar el conjunto de datos vinculado, exportar los datos resultantes como un archivo CSV y guardarlo en un bucket de Cloud Storage. Luego, el trabajo de operaciones por lotes de almacenamiento puede usar este archivo CSV como manifiesto.

Ejecutar la siguiente consulta de SQL en BigQuery en una vista de conjunto de datos de Storage Insights recupera 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
  

Aquí:

  • URI es el URI del bucket que contiene el manifiesto. Por ejemplo, gs://bucket_name/path_to_csv_file/*.csv Cuando usas el comodín *.csv, BigQuery exporta el resultado a varios archivos CSV.
  • OVERWRITE_VALUE es un valor booleano. Si se establece en true, la operación de exportación reemplazará los archivos existentes en la ubicación especificada.
  • DATASET_VIEW_NAME es el nombre completamente calificado de la vista del conjunto de datos de Storage Insights en formato PROJECT_ID.DATASET_ID.VIEW_NAME. Para encontrar el nombre de tu conjunto de datos, consulta el conjunto de datos vinculado.

    Aquí:

    • 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 depósito. Por ejemplo, my-bucket

  • SNAPSHOT_TIME es la hora de la instantánea de la vista del conjunto de datos de Storage Insights. Por ejemplo, 2024-09-10T00:00:00Z

Crea un trabajo de operaciones por lotes de almacenamiento

Para crear un trabajo de operaciones por lotes de almacenamiento que procese los objetos contenidos en el manifiesto, completa los siguientes 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

    Aquí:

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

    • SOURCE_BUCKET_NAME es el bucket que contiene uno o más objetos que deseas procesar. Por ejemplo, my-bucket

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

    • JOB_TYPE_FLAG es una de las siguientes marcas, según el tipo de trabajo.

Usa los Registros de auditoría de Cloud para las tareas de operaciones por lotes de almacenamiento

Las operaciones por lotes de almacenamiento registran transformaciones en los objetos de Cloud Storage en los registros de auditoría de Cloud Storage. Puedes usar Registros de auditoría de Cloud con Cloud Storage para hacer un seguimiento de las transformaciones de objetos que realizan las tareas de operaciones por lotes de almacenamiento. Para obtener más información sobre cómo habilitar los registros de auditoría, consulta Habilita los 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.

Próximos pasos