Nesta página, descrevemos 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 jobs 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 de operações em lote de armazenamento.
gcloud services enable storagebatchoperations.googleapis.com
Criar um manifesto
Para usar um manifesto para seleção de objetos, crie um manifesto.
Criar um job de operações em lote de armazenamento
Nesta seção, descrevemos como criar um job de operações em lote de armazenamento.
Linha de comando
-
In the Google Cloud console, 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.
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 de 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 separada por vírgulas:
--included-object-prefixes='prefix1,prefix2'
. - Para incluir todos os objetos, use um prefixo vazio:
--included-object-prefixes=''
.
- Para corresponder a um único prefixo, use:
--manifest-location
: especifique o local do manifesto. Por exemplo,gs://bucket_name/path/object_name.csv
.
JOB_TYPE_FLAG
é uma das seguintes flags, dependendo do tipo de job.--delete-object
: exclua um ou mais objetos.--put-metadata
: atualize os metadados do objeto. Os metadados do objeto são armazenados como pares chave-valor. Especifique o par chave-valor dos metadados que você quer modificar. É possível especificar um ou mais pares chave-valor como uma lista.--rewrite-object
: atualize as chaves de criptografia gerenciadas pelo cliente de um ou mais objetos.--put-object-event-based-hold
: ative as retenções de objetos com base em eventos.--no-put-object-event-based-hold
: desativa as retenções de objetos com base em eventos.--put-object-temporary-hold
: ativa retenções de objetos temporárias.--no-put-object-temporary-hold
: desativa as retenções de objetos temporárias.
APIs REST
API JSON
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um arquivo JSON com as configurações do job de operações em lote do Storage. 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 de 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 chave-valor como uma lista.Atualizar 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 de1
ativa a retenção, e um valor de2
a desativa.EVENT_BASED_HOLD_VALUE
é usado para ativar ou desativar a retenção de objeto baseada em eventos. Um valor de1
ativa a retenção, e um valor de2
a desativa.
Use
cURL
para chamar a API JSON com uma solicitação dePOST
trabalho 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 de armazenamento.
Receber detalhes do job de operações em lote de armazenamento
Esta seção descreve como acessar os detalhes do job de operações em lote de armazenamento.
Linha de comando
-
In the Google Cloud console, 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.
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
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação deGET
trabalho 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 de armazenamento.
Listar jobs de operações em lote do Storage
Nesta seção, descrevemos como listar os jobs de operações em lote de armazenamento em um projeto.
Linha de comando
-
In the Google Cloud console, 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.
No ambiente de desenvolvimento, execute o comando
gcloud storage batch-operations jobs list
.gcloud storage batch-operations jobs list
APIs REST
API JSON
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação deLIST
trabalhos de operações em lote do Storage: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
Nesta seção, descrevemos como cancelar um job de operações em lote de armazenamento em um projeto.
Linha de comando
-
In the Google Cloud console, 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.
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
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação deCANCEL
um trabalho 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 de armazenamento.
Excluir um job de operações em lote do Storage
Nesta seção, descrevemos como excluir um job de operações em lote de armazenamento.
Linha de comando
-
In the Google Cloud console, 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.
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 de armazenamento.
APIs REST
API JSON
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação deDELETE
um trabalho 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 de 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 abaixo.
Criar um manifesto usando conjuntos de dados do Storage Insights
Para criar o manifesto do job de operações em lote de armazenamento, extraia dados do BigQuery. Para isso, consulte o conjunto de dados vinculado, exporte os dados resultantes como um arquivo CSV e salve-os em um bucket do Cloud Storage. O job de operações em lote de armazenamento pode usar esse arquivo CSV como manifesto.
Executar a seguinte consulta SQL no BigQuery em uma visualização de conjunto de dados do Storage Insights recupera objetos maiores que 1 KiB chamados 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 comotrue
, a operação de exportação vai substituir os arquivos existentes no local especificado.DATASET_VIEW_NAME
é o nome totalmente qualificado da visualização do conjunto de dados do Storage Insights no formatoPROJECT_ID.DATASET_ID.VIEW_NAME
. Para encontrar o nome do seu conjunto de dados, confira 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 e processar os objetos contidos no manifesto, siga estas etapas:
Linha de comando
-
In the Google Cloud console, 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.
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 seguintes flags, dependendo do tipo de job.--delete-object
: exclua um ou mais objetos.--put-metadata
: atualize os metadados do objeto. Os metadados do objeto são armazenados como pares chave-valor. Especifique o par chave-valor dos metadados que você quer modificar. É possível especificar um ou mais pares chave-valor como uma lista.--rewrite-object
: atualize as chaves de criptografia gerenciadas pelo cliente de um ou mais objetos.--put-object-event-based-hold
: ative as retenções de objetos com base em eventos.--no-put-object-event-based-hold
: desativa as retenções de objetos com base em eventos.--put-object-temporary-hold
: ativa retenções de objetos temporárias.--no-put-object-temporary-hold
: desativa as retenções de objetos temporárias.
Integração com o VPC Service Controls
É possível fornecer uma camada extra de segurança aos recursos de operações em lote de armazenamento usando o VPC Service Controls. Ao usar o VPC Service Controls, você adiciona projetos a perímetros de serviço que protegem recursos e serviços contra solicitações originadas de fora do perímetro. Para saber mais sobre os detalhes do perímetro de serviço do VPC Service Controls para operações em lote de armazenamento, consulte Produtos e limitações compatíveis.
Usar os Registros de auditoria do Cloud para jobs de operações em lote de armazenamento
Os jobs de operações em lote de armazenamento registram transformações em objetos do Cloud Storage nos registros de auditoria do Cloud. Use os registros de auditoria do Cloud com o Cloud Storage para rastrear as transformações de objetos realizadas pelos jobs de operações em lote de armazenamento. Para informações sobre como ativar registros de auditoria, consulte Como ativar registros de auditoria. Na entrada de registro de auditoria, o campo de metadados callUserAgent
com o valor StorageBatchOperations
indica uma transformação de operações em lote do Storage.
Próximas etapas
- Saiba mais sobre os conjuntos de dados do Storage Insights