Criar um trabalho de operações em lote do S3
Com a funcionalidade Operações em Lote do Amazon S3, você pode executar operações em lote em grande escala em uma lista de objetos específicos do Amazon S3. Esta seção descreve as informações necessárias para criar um trabalho do Operações em lote do S3 e os resultados de uma solicitação CreateJob
. Ela também fornece instruções para criar um trabalho de Operações em Lote usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI) e o AWS SDK for Java.
Ao criar um trabalho do S3 Batch Operations, você pode solicitar um relatório de conclusão para todas as tarefas ou somente para aquelas que apresentaram falha. Contanto que pelo menos uma tarefa tenha sido invocada com êxito, a funcionalidade Operações em Lote do S3 gera um relatório para tarefas que foram concluídas, que falharam ou que foram canceladas. Para ter mais informações, consulte Exemplos: relatórios de conclusão de operações em lote do S3.
O vídeo a seguir fornece uma breve demonstração de como criar um trabalho de Operações em Lote usando o console do Amazon S3.
Elementos da solicitação de trabalho de Operações em lote
Para criar um trabalho de operações em lote do S3, você deve fornecer as seguintes informações:
- Operação
-
Especifique a operação que deseja que as operações em lote do S3 execute nos objetos no manifesto. Cada tipo de operação aceita parâmetros específicos para essa operação. A funcionalidade Operações em Lote possibilita a execução de uma operação em lote, com os mesmos resultados da operação executada individualmente em cada objeto.
- Manifesto
-
O manifesto é uma lista de todos os objetos em que você deseja que a funcionalidade Operações em Lote do S3 execute a ação especificada. Você pode usar os seguintes métodos para especificar um manifesto para um trabalho de Operações em Lote:
-
Crie manualmente sua própria lista de objetos personalizada em formato CSV.
-
Escolha um relatório do Catalogar e analisar seus dados com o Inventário S3 existente em formato CSV.
-
Instruir a funcionalidade Operações em Lote para que gere um manifesto automaticamente com base nos critérios de filtro de objetos especificados ao criar um trabalho. Essa opção está disponível para trabalhos de replicação em lote criados no console do Amazon S3 ou para qualquer tipo de trabalho criado usando a AWS CLI, SDKs da AWS ou a API REST do Amazon S3.
nota
-
Independentemente de como você especifica o manifesto, a lista em si deve ser armazenada em um bucket de uso geral. A funcionalidade Operações em Lote não pode importar manifestos existentes nem salvar manifestos gerados em buckets de diretório. No entanto, os objetos descritos no manifesto podem ser armazenados em buckets de diretório. Para obter mais informações, consulte Directory buckets.
-
Se os objetos no manifesto estiverem em um bucket com versionamento, especificar os IDs de versão dos objetos instruirá a funcionalidade Operações em Lote a realizar a operação em uma versão específica. Se nenhum ID de versão for especificado, a funcionalidade Operações em Lote realizará a operação na versão mais recente dos objetos. Se o manifesto incluir um campo de ID de versão, você deverá fornecer um ID de versão para todos os objetos no manifesto.
Para ter mais informações, consulte Especificar um manifesto.
-
- Priority
-
Use prioridades de trabalho para indicar a prioridade relativa desse trabalho em relação a outros em execução na conta. Um número maior indica uma prioridade mais alta.
As prioridades de trabalho só têm significado em relação às prioridades definidas para outros trabalhos na mesma conta e região. Você pode escolher qualquer sistema de numeração adequado para você. Por exemplo, talvez você queira atribuir a todos os trabalhos Restaurar (
RestoreObject
) uma prioridade 1, a todos os trabalhos de Copiar (CopyObject
) uma prioridade 2 e a todos os trabalhos de Substituir listas de controle de acesso (ACLs) (PutObjectAcl
) uma prioridade 3.A funcionalidade Operações em Lote do S3 prioriza trabalhos em ordem numérica, mas o rigor dessa ordem não é garantido. Por isso, não use prioridades de trabalho para garantir que um trabalho comece ou termine antes de outro. Caso precise garantir uma ordem rigorosa, aguarde a conclusão de uma tarefa para iniciar a próxima.
- RoleArn
-
Especifique uma função do AWS Identity and Access Management (IAM) para executar o trabalho. A função do IAM usada deve ter permissões suficientes para realizar a operação especificada no trabalho. Por exemplo, para executar um trabalho
CopyObject
, o perfil do IAM deve ter a permissãos3:GetObject
para o bucket de origem e a permissãos3:PutObject
para o bucket de destino. A função também precisa de permissões para ler o manifesto e gravar o relatório de conclusão do trabalho.Para obter mais informações sobre funções do IAM, consulte Funções do IAM no Manual do usuário do IAM.
Para obter mais informações sobre as permissões do Amazon S3, consulte Ações de políticas para o Amazon S3.
nota
Os trabalhos de Operações em Lote que realizam ações em buckets de diretório exigem permissões específicas. Para obter mais informações, consulte AWS Identity and Access Management (IAM) for S3 Express One Zone.
- Relatório
-
Especifique se deseja que as operações em lote do S3 gerem um relatório de conclusão. Caso solicite um relatório de conclusão do trabalho, você deve fornecer os parâmetros para o relatório neste elemento. As informações necessárias incluem o seguinte]:
-
O bucket no qual você deseja armazenar o relatório.
nota
O relatório deve ser armazenado em um bucket de uso geral. A funcionalidade Operações em Lote não pode salvar relatórios em buckets de diretório. Para obter mais informações, consulte Directory buckets.
-
O formato do relatório
-
Se você deseja que o relatório inclua os detalhes de todas as tarefas ou apenas das tarefas que apresentaram falha.
-
Uma string de prefixo opcional.
nota
Os relatórios de conclusão são sempre criptografados com a criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3).
-
- Tags (opcional)
-
Você pode rotular e controlar o acesso aos trabalhos de operações em lote do S3 adicionando tags. Você pode usar etiquetas para identificar quem é responsável por um trabalho de Operações em Lote ou para controlar como os usuários interagem com os trabalhos de Operações em Lote. A presença de marcações de trabalho pode conceder ou limitar a capacidade do usuário de cancelar um trabalho, ativar um trabalho no estado de confirmação ou alterar o nível de prioridade de um trabalho. Por exemplo, você pode conceder a um usuário permissão para invocar a operação
CreateJob
, desde que o trabalho seja criado com a etiqueta"Department=Finance"
.Você pode criar trabalhos com tags anexadas a eles e pode adicionar tags a trabalhos depois de criá-los.
Para ter mais informações, consulte Controlar o acesso e rotular trabalhos usando tags.
- Description (opcional)
-
Para rastrear e monitorar seu trabalho, você também pode fornecer uma descrição de até 256 caracteres. O Amazon S3 inclui essa descrição sempre que retorna informações sobre um trabalho ou exibe detalhes do trabalho no console do Amazon S3. É possível classificar e filtrar os trabalhos com facilidade de acordo com as descrições atribuídas. As descrições não precisam ser exclusivas, de maneira que você possa usar descrições como categorias (por exemplo, "Tarefas de cópia de log semanais") para ajudar a rastrear grupos de tarefas semelhantes.
Especificar um manifesto
Um manifesto é um objeto do Amazon S3 que contém as chaves de objeto em que você deseja que o Amazon S3 atue. Você pode fornecer um manifesto de uma das seguintes maneiras:
-
Crie um arquivo de manifesto manualmente.
-
Use um manifesto existente.
-
Instruir a funcionalidade Operações em Lote para que gere um manifesto automaticamente com base nos critérios de filtro de objetos especificados ao criar um trabalho. Essa opção está disponível para trabalhos de replicação em lote criados no console do Amazon S3 ou para qualquer tipo de trabalho criado usando a AWS CLI, SDKs da AWS ou a API REST do Amazon S3.
nota
O recurso Operações em Lote do Amazon S3 não permite a geração de manifestos entre regiões.
Independentemente de como você especifica o manifesto, a lista em si deve ser armazenada em um bucket de uso geral. A funcionalidade Operações em Lote não pode importar manifestos existentes nem salvar manifestos gerados em buckets de diretório. No entanto, os objetos descritos no manifesto podem ser armazenados em buckets de diretório. Para obter mais informações, consulte Directory buckets.
Criar um arquivo de manifesto
Para criar um arquivo de manifesto manualmente, especifique a chave de objeto do manifesto, a ETag (etiqueta de entidade) e o ID da versão opcional em uma lista em formato CSV. O conteúdo do manifesto deve estar codificado em URL.
Por padrão, o Amazon S3 usa criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) automaticamente para criptografar um manifesto carregado para um bucket do Amazon S3. Os manifestos que usam a criptografia no servidor com chaves fornecidas pelo cliente (SSE-C) não são compatíveis. Manifestos que usam criptografia no lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS) só são compatíveis quando usam relatórios de inventário no formato CSV. Usar um manifesto criado manualmente com o AWS KMS não é compatível.
O manifesto deve conter o nome do bucket, a chave de objeto e, opcionalmente, a versão de cada objeto. Qualquer outro campo no manifesto não é usado pelas operações em lote do S3.
nota
Se os objetos no manifesto estiverem em um bucket com versionamento, especificar os IDs de versão dos objetos instruirá a funcionalidade Operações em Lote a realizar a operação em uma versão específica. Se nenhum ID de versão for especificado, a funcionalidade Operações em Lote realizará a operação na versão mais recente dos objetos. Se o manifesto incluir um campo de ID de versão, você deverá fornecer um ID de versão para todos os objetos no manifesto.
Veja a seguir um exemplo de manifesto no formato CSV sem os IDs de versão.
amzn-s3-demo-bucket1,objectkey1 amzn-s3-demo-bucket1,objectkey2 amzn-s3-demo-bucket1,objectkey3 amzn-s3-demo-bucket1,photos/jpgs/objectkey4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5 amzn-s3-demo-bucket1,object%20key%20with%20spaces
Veja a seguir um exemplo de manifesto em formato CSV que inclui IDs de versão.
amzn-s3-demo-bucket1,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p amzn-s3-demo-bucket1,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF amzn-s3-demo-bucket1,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI amzn-s3-demo-bucket1,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs amzn-s3-demo-bucket1,object%20key%20with%20spaces,9HkPvDaZY5MVbMhn6TMn1YTb5ArQAo3w
Especificar um arquivo de manifesto existente
É possível especificar um arquivo de manifesto na solicitação de criação de um trabalho usando um dos seguintes formatos:
-
Relatório da funcionalidade Inventário Amazon S3: deve ser um relatório da funcionalidade Inventário Amazon S3 em formato CSV. É necessário especificar o arquivo
manifest.json
associado ao relatório de inventário. Para obter mais informações sobre relatórios de inventário, consulte Catalogar e analisar seus dados com o Inventário S3. Se o relatório de inventário incluir IDs de versões, o recurso Operações em lote do S3 operará nas versões especificadas do objeto.nota
-
A funcionalidade Operações em Lote do S3 oferece suporte a relatórios de inventário em CSV criptografados com SSE-KMS.
-
Se você enviar um manifesto de relatório de inventário criptografado com SSE-KMS, a política do IAM deverá incluir as permissões
"kms:Decrypt"
e"kms:GenerateDataKey"
para o objetomanifest.json
e todos os arquivos de dados CSV associados.
-
-
Arquivo CSV: cada linha no arquivo deve incluir o nome do bucket, a chave do objeto e, opcionalmente, a versão do objeto. As chaves de objeto devem ser codificadas em URL conforme mostrado nos exemplos a seguir. O manifesto deve incluir ou omitir IDs de versão para todos os objetos. Para obter mais informações sobre o formato de manifesto CSV, consulte JobManifestSpec na Referência da API do Amazon Simple Storage Service.
nota
A funcionalidade Operações em Lote do S3 não oferece suporte a arquivos de manifesto em CSV criptografados com SSE-KMS.
Importante
Ao usar um manifesto criado manualmente e um bucket com versionamento, recomendamos especificar os IDs de versão dos objetos. Quando você cria um trabalho, o recurso Operações em lote do S3 analisa todo o manifesto antes de executar o trabalho. No entanto, ele não tira snapshots do estado do bucket.
Como os manifestos podem conter bilhões de objetos, os trabalhos podem levar muito tempo para serem executados, o que pode afetar a versão de um objeto em que o trabalho atua. Suponha que você substitua um objeto por uma nova versão enquanto um trabalho estiver em execução e não especifique o ID de versão desse objeto. Nesse caso, o Amazon S3 realizará a operação na versão mais recente do objeto, não na versão que existia quando você criou o trabalho. A única maneira de evitar esse comportamento é especificar o ID de versão do objeto listado no manifesto.
Gerar um manifesto automaticamente
Você pode instruir o Amazon S3 a gerar um manifesto automaticamente com base nos critérios de filtro de objetos especificados ao criar um trabalho. Essa opção está disponível para trabalhos de replicação em lote criados no console do Amazon S3 ou para qualquer tipo de trabalho criado usando a AWS CLI, SDKs da AWS ou a API REST do Amazon S3. Para obter mais informações sobre replicação em lote, consulte Replicar objetos existentes com o Replicação em Lote.
Para gerar um manifesto automaticamente, especifique os seguintes elementos como parte da solicitação de criação de trabalho:
-
Informações sobre o bucket que contém seus objetos de origem, incluindo o proprietário do bucket e o nome do recurso da Amazon (ARN).
-
Informações sobre a saída do manifesto, incluindo um sinalizador para criar um arquivo de manifesto, o proprietário do bucket de saída, o ARN, o prefixo, o formato do arquivo e o tipo de criptografia.
-
Critérios opcionais para filtrar objetos por data de criação, nome da chave, tamanho e classe de armazenamento. No caso de trabalhos de replicação, você também pode usar tags para filtrar objetos.
Critérios de filtro de objetos
Para filtrar a lista de objetos a serem incluídos em um manifesto gerado automaticamente, você pode especificar os critérios a seguir. Para obter mais informações, consulte JobManifestGeneratorFilter na Referência da API do Amazon S3.
- CreatedAfter
-
Se fornecido, o manifesto gerado incluirá somente objetos de bucket de origem que foram criados após esse período.
- CreatedBefore
-
Se fornecido, o manifesto gerado incluirá somente objetos de bucket de origem que foram criados antes desse período.
- EligibleForReplication
-
Se fornecido, o manifesto gerado só incluirá os objetos que estiverem qualificados para replicação de acordo com a configuração de replicação no bucket de origem.
- KeyNameConstraint
-
Se fornecido, o manifesto gerado incluirá somente os objetos do bucket de origem cujas chaves de objeto correspondam às restrições de string especificadas para MatchAnySubstring, MatchAnyPrefix e MatchAnySuffix.
MatchAnySubstring: se fornecido, o manifesto gerado incluirá objetos se a string especificada aparecer em qualquer lugar dentro da string da chave do objeto.
MatchAnyPrefix: se fornecido, o manifesto gerado incluirá objetos se a string especificada aparecer no início da string da chave do objeto.
MatchAnySuffix: se fornecido, o manifesto gerado incluirá objetos se a string especificada aparecer no final da string da chave do objeto.
- MatchAnyStorageClass
-
Se fornecido, o manifesto gerado incluirá somente os objetos do bucket de origem que estiverem armazenados com a classe de armazenamento especificada.
- ObjectReplicationStatuses
-
Se fornecido, o manifesto gerado só incluirá os objetos do bucket de origem que tenham um dos status de replicação especificados.
- ObjectSizeGreaterThanBytes
-
Se fornecido, o manifesto gerado só incluirá os objetos do bucket de origem cujo tamanho de arquivo for maior que o número especificado de bytes.
- ObjectSizeLessThanBytes
-
Se fornecido, o manifesto gerado só incluirá os objetos do bucket de origem cujo tamanho de arquivo for menor que o número especificado de bytes.
nota
Não é possível clonar a maioria dos trabalhos que têm manifestos gerados automaticamente. Os trabalhos de replicação em lote podem ser clonados, exceto quando usam os critérios de filtro de manifesto KeyNameConstraint
, MatchAnyStorageClass
, ObjectSizeGreaterThanBytes
ou ObjectSizeLessThanBytes
.
A sintaxe para especificar os critérios do manifesto varia de acordo com o método usado para criar o trabalho. Para ver exemplos, consulte Criar uma tarefa.
Criar uma tarefa
Você pode criar trabalhos de Operações em Lote do S3 usando o console do Amazon S3, a AWS CLI, AWS SDKs ou a API REST do Amazon S3.
Para obter mais informações sobre como criar uma solicitação de trabalho, consulte Elementos da solicitação de trabalho de Operações em lote.
Pré-requisitos
Antes de criar um trabalho de Operações em Lote, confirme se você configurou as permissões relevantes. Para ter mais informações, consulte Conceder permissões para operações em lote.
Para criar um trabalho em lote
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
Na barra de navegação na parte superior da página, escolha o nome da Região da AWS exibida no momento. Em seguida, escolha a região onde você deseja criar o trabalho.
nota
Para operações de cópia, você deve criar o trabalho na mesma região que o bucket de destino. Para todas as outras operações, você deve criar o trabalho na mesma região que os objetos arquivados no manifesto.
-
Selecione Operações em lotes no painel de navegação do console do Amazon S3.
-
Escolha Criar trabalho.
-
Visualize a Região da AWS onde você deseja criar o trabalho.
-
Em Formato do manifesto, escolha o tipo de objeto do manifesto a ser usado.
-
Se você selecionar S3 inventory report (Relatório de inventário do S3), insira o caminho para o objeto manifest.json gerado pelo Amazon S3 como parte do relatório de inventário em formato CSV e, opcionalmente, o ID de versão do objeto do manifesto a ser usado, se não for a mais recente.
-
Se você selecionar CSV, insira o caminho para o objeto do manifesto formatado em CSV. O objeto do manifesto deve seguir o formato descrito no console. Opcionalmente, inclua o ID de versão do objeto do manifesto que deseja usar, se não for a mais recente.
nota
O console do Amazon S3 oferece suporte à geração automática de manifestos somente para trabalhos de replicação em lote. Para todos os outros tipos de trabalho, se você quiser que o Amazon S3 gere um manifesto automaticamente com base nos critérios de filtro especificados, deverá configurar o trabalho usando a AWS CLI, AWS SDKs ou a API REST do Amazon S3.
-
-
Escolha Next (Próximo).
-
Em Operation (Operação), selecione a operação a ser executada em todos os objetos no manifesto. Preencha as informações da operação escolhida e, depois, selecione Next (Próximo).
-
Preencha as informações para Configure additional options (Configurar opções adicionais) e, depois, selecione Next (Próximo).
-
Em Review (Revisão), verifique as configurações. Se precisar fazer alterações, escolha Previous (Anterior). Caso contrário, selecione Criar trabalho.
Para criar o trabalho de operações em lote com a AWS CLI, escolha um dos exemplos a seguir, dependendo se você está especificando um manifesto existente ou gerando um manifesto automaticamente.
Para criar o trabalho de operações em lote com a AWS SDK for Java, escolha um dos exemplos a seguir, dependendo se você está especificando um manifesto existente ou gerando um manifesto automaticamente.
Você pode usar a API REST para criar um trabalho do Batch Operations. Para obter mais informações, consulte CreateJob na Referência da API do Amazon Simple Storage Service.
Respostas do trabalho
Se a solicitação CreateJob
for bem-sucedida, o Amazon S3 retornará um ID de trabalho. O ID de trabalho é um identificador exclusivo gerado pelo Amazon S3 automaticamente para que você possa identificar as operações em lote e monitorar o status do trabalho.
Quando você cria um trabalho pela AWS CLI, por AWS SDKs ou pela API REST, é possível definir a funcionalidade Operações em Lote do S3 para que comece a processar o trabalho automaticamente. O trabalho é executado assim que fica pronto em vez de aguardar o processamento de trabalhos de prioridade mais alta.
Ao criar um trabalho por meio do console do Amazon S3, você deve examinar os detalhes e confirmar se deseja executá-lo antes que a funcionalidade Operações em Lote comece a processá-lo. Se uma tarefa permanecer no estado suspenso por mais de 30 dias, ela apresentará falha.