Criar e gerenciar jobs de operação em lote

Esta página descreve como criar, visualizar, listar, cancelar e excluir jobs de operações em lote de armazenamento. Também descreve como usar os registros de auditoria do Cloud com trabalhos de operações em lote de armazenamento.

Antes de começar

Para criar e gerenciar trabalhos de operações em lote de armazenamento, siga as etapas nas seções a seguir.

Configurar o Storage Intelligence

Para criar e gerenciar jobs de operações em lote de armazenamento, configure o Storage Intelligence no bucket em que você quer executar o job.

Configurar a Google Cloud CLI

É necessário usar a Google Cloud CLI versão 516.0.0 ou mais recente.

Definir o projeto padrão

Defina o projeto em que você quer criar o job de operações em lote de armazenamento.

gcloud config set project PROJECT_ID

onde PROJECT_ID é o código de seu projeto.

Ativar API

Ative a API Storage Batch Operations.

gcloud services enable storagebatchoperations.googleapis.com

Criar um manifesto

Para usar um manifesto para a seleção de objetos, crie um manifesto.

Criar um job de operações em lote de armazenamento

Esta seção descreve como criar um job de operações em lote de armazenamento.

Linha de 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. No ambiente de desenvolvimento, execute o comando gcloud storage batch-operations jobs create.

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

    Em que:

    • JOB_NAME é o nome do job de operações em lote do armazenamento.
    • BUCKET_NAME é o nome do bucket que contém um ou mais objetos que você quer processar.
    • OBJECT_SELECTION_FLAG é uma das seguintes flags:

      • --included-object-prefixes: especifique um ou mais prefixos de objeto. Exemplo:

        • Para corresponder a um único prefixo, use: --included-object-prefixes='prefix1'.
        • Para corresponder a vários prefixos, use uma lista de prefixos separados por vírgulas: --included-object-prefixes='prefix1,prefix2'.
        • Para incluir todos os objetos, use um prefixo vazio: --included-object-prefixes=''.
      • --manifest-location: especifica o local do manifesto. Por exemplo, gs://bucket_name/path/object_name.csv.

    • JOB_TYPE_FLAG é uma das flags a seguir, dependendo do tipo de job.

APIs REST

API JSON

  1. Ter a gcloud CLI instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Crie um arquivo JSON com as configurações do job de operações em lote de armazenamento. Veja a seguir configurações comuns a serem incluídas:

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

    Em que:

    • JOB_NAME é o nome do job de operações em lote de armazenamento.

    • JOB_DESCRIPTION é a descrição do job de operações em lote do armazenamento.

    • BUCKET_NAME é o nome do bucket que contém um ou mais objetos que você quer processar.

    • Para especificar os objetos que você quer processar, use um dos seguintes atributos no arquivo JSON:

      • MANIFEST_LOCATION é o local do manifesto. Por exemplo, gs://bucket_name/path/object_name.csv.

      • OBJECT_PREFIXES é a lista separada por vírgulas que contém um ou mais prefixos de objeto. Para corresponder a todos os objetos, use uma lista vazia.

    • Dependendo do job que você quer processar, especifique uma das seguintes opções:

      • Excluir objetos:

        "DeleteObject":
        {
        "permanent_object_deletion_enabled": OBJECT_DELETION_VALUE
        }

        Em que OBJECT_DELETION_VALUE é TRUE para excluir objetos.

      • Atualize a chave de criptografia gerenciada pelo cliente para objetos:

        "RewriteObject":
        {
        "kms_key": KMS_KEY_VALUE
        }

        Em que KMS_KEY_VALUE é o valor da chave KMS do objeto que você quer atualizar.

      • Atualize os metadados do objeto:

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

        Em que METADATA_VALUE é o valor da chave dos metadados do objeto. É possível especificar um ou mais pares de chave-valor como uma lista.

      • Atualize as retenções de objetos:

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

        Em que:

        • TEMPORARY_HOLD_VALUE é usado para ativar ou desativar a retenção temporária de objetos. Um valor de 1 ativa a retenção, e um valor de 2 a desativa.

        • EVENT_BASED_HOLD_VALUE é usado para ativar ou desativar a retenção de objeto baseada em eventos. Um valor de 1 ativa a retenção, e um valor de 2 a desativa.

  3. Use cURL para chamar a API JSON com uma solicitação de POST job de operações em lote de armazenamento:

    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"

    Em que:

    • JSON_FILE_NAME é o nome do arquivo JSON.
    • PROJECT_ID é o ID ou o número do projeto. Por exemplo, my-project.
    • JOB_ID é o nome do job de operações em lote do armazenamento.

Receber detalhes do job de operações em lote de armazenamento

Esta seção descreve como conferir os detalhes do job de operações em lote de armazenamento.

Linha de 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. No ambiente de desenvolvimento, execute o comando gcloud storage batch-operations jobs describe.

    gcloud storage batch-operations jobs describe JOB_ID

    Em que:

    JOB_ID é o nome do job de operações em lote de armazenamento.

APIs REST

API JSON

  1. Ter a gcloud CLI instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com uma solicitação de GETjob de operações em lote de armazenamento:

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

    Em que:

    • PROJECT_ID é o ID ou o número do projeto. Por exemplo, my-project.
    • JOB_ID é o nome do job de operações em lote do armazenamento.

Listar jobs de operações em lote do armazenamento

Esta seção descreve como listar os jobs de operações em lote de armazenamento em um projeto.

Linha de 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. No ambiente de desenvolvimento, execute o comando gcloud storage batch-operations jobs list.

    gcloud storage batch-operations jobs list

APIs REST

API JSON

  1. Ter a gcloud CLI instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com uma solicitação de LISTjobs de operações em lote de armazenamento:

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

    Em que:

    PROJECT_ID é o ID ou o número do projeto. Por exemplo, my-project.

Cancelar um job de operações em lote de armazenamento

Esta seção descreve como cancelar um job de operações em lote de armazenamento em um projeto.

Linha de 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. No ambiente de desenvolvimento, execute o comando gcloud storage batch-operations jobs cancel.

    gcloud storage batch-operations jobs cancel JOB_ID

    Em que:

    JOB_ID é o nome do job de operações em lote de armazenamento.

APIs REST

API JSON

  1. Ter a gcloud CLI instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com uma solicitação de CANCEL um job de operações em lote de armazenamento:

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

    Em que:

    • PROJECT_ID é o ID ou o número do projeto. Por exemplo, my-project.

    • JOB_ID é o nome do job de operações em lote do armazenamento.

Excluir um job de operações em lote de armazenamento

Esta seção descreve como excluir um job de operações em lote de armazenamento.

Linha de 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. No ambiente de desenvolvimento, execute o comando gcloud storage batch-operations jobs delete.

    gcloud storage batch-operations jobs delete JOB_ID

    Em que:

    JOB_ID é o nome do job de operações em lote do armazenamento.

APIs REST

API JSON

  1. Ter a gcloud CLI instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho Authorization.

  2. Use cURL para chamar a API JSON com uma solicitação de DELETE um job de operações em lote de armazenamento:

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

    Em que:

    • PROJECT_ID é o ID ou o número do projeto. Por exemplo, my-project.

    • JOB_ID é o nome do job de operações em lote do armazenamento.

Criar um job de operações em lote de armazenamento usando conjuntos de dados do Storage Insights

Para criar um job de operações em lote de armazenamento usando conjuntos de dados do Storage Insights, siga as etapas nas seções a seguir.

Criar um manifesto usando conjuntos de dados do Storage Insights

É possível criar o manifesto para o job de operações em lote de armazenamento extraindo dados do BigQuery. Para isso, consulte o conjunto de dados vinculado, exporte os dados resultantes como um arquivo CSV e salve-o em um bucket do Cloud Storage. O job de operações em lote do armazenamento pode usar esse arquivo CSV como manifesto.

A execução da consulta SQL a seguir no BigQuery em uma visualização de conjunto de dados do Storage Insights recupera objetos maiores que 1 KiB com o nome 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
  

Em que:

  • URI é o URI do bucket que contém o manifesto. Por exemplo, gs://bucket_name/path_to_csv_file/*.csv. Quando você usa o caractere curinga *.csv, o BigQuery exporta o resultado para vários arquivos CSV.
  • OVERWRITE_VALUE é um valor booleano. Se definido como true, a operação de exportação substitui os arquivos atuais no local especificado.
  • DATASET_VIEW_NAME é o nome totalmente qualificado da visualização do conjunto de dados do Storage Insights no formato PROJECT_ID.DATASET_ID.VIEW_NAME. Para encontrar o nome do conjunto de dados, acesse o conjunto de dados vinculado.

    Em que:

    • PROJECT_ID é o ID ou o número do projeto. Por exemplo, my-project.
    • DATASET_ID é o nome do conjunto de dados. Por exemplo, objects-deletion-dataset.
    • VIEW_NAME é o nome da visualização do conjunto de dados. Por exemplo, bucket_attributes_view.
  • BUCKET_NAME é o nome do bucket. Por exemplo, my-bucket.

  • SNAPSHOT_TIME é o horário do snapshot da visualização do conjunto de dados do Storage Insights. Por exemplo, 2024-09-10T00:00:00Z.

Criar um job de operações em lote de armazenamento

Para criar um job de operações em lote de armazenamento para processar objetos contidos no manifesto, siga estas etapas:

Linha de 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. No ambiente para desenvolvedores, execute o 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

    Em que:

    • JOB_ID é o nome do job de operações em lote de armazenamento.

    • SOURCE_BUCKET_NAME é o bucket que contém um ou mais objetos que você quer processar. Por exemplo, my-bucket.

    • URI é o URI do bucket que contém o manifesto. Por exemplo, gs://bucket_name/path_to_csv_file/*.csv. Quando você usa o caractere curinga *.csv, o BigQuery exporta o resultado para vários arquivos CSV.

    • JOB_TYPE_FLAG é uma das flags a seguir, dependendo do tipo de job.

Usar os Registros de auditoria do Cloud para trabalhos de operações em lote de armazenamento

Os jobs de operações em lote do armazenamento registram transformações em objetos do Cloud Storage nos Registros de auditoria do Cloud Storage. Use os Registros de auditoria do Cloud com o Cloud Storage para acompanhar as transformações de objetos que os jobs de operações em lote de armazenamento executam. Para informações sobre como ativar os registros de auditoria, consulte Como ativar os registros de auditoria. Na entrada do registro de auditoria, o campo de metadados callUserAgent com o valor StorageBatchOperations indica uma transformação de operações em lote de armazenamento.

Próximas etapas