Monitoramento de relatórios de status e conclusão
Com o S3 Batch Operations, você pode exibir e atualizar o status do trabalho, adicionar notificações e registro em log, rastrear falhas de trabalho e gerar relatórios de conclusão.
Tópicos
Status de trabalhos
Depois de criar um trabalho, ele passa por diversos status. A tabela a seguir descreve os status e as possíveis transições entre eles.
Status | Descrição | Transições |
---|---|---|
New |
Ao ser criado, o trabalho ganha o status New . |
Um trabalho passa automaticamente para o estado Preparing quando o Amazon S3 começa a processar o objeto do manifesto. |
Preparing |
O Amazon S3 está processando o objeto do manifesto e outros parâmetros do trabalho para configurar e executar o trabalho. | O trabalho passa automaticamente para o estado Ready depois que o Amazon S3 termina de processar o manifesto e outros parâmetros. Então, o trabalho está pronto para começar a executar a operação especificada nos objetos listados no manifesto.Se o trabalho exigir confirmação antes da execução, como ao criar um trabalho usando o console do Amazon S3, ele passará do estado |
Suspended |
O trabalho exige confirmação, mas você ainda não confirmou que deseja executá-lo. Somente os trabalhos criados pelo console do Amazon S3 exigem confirmação. Um trabalho criado pelo console entra no estado Suspended imediatamente depois de Preparing . Depois de confirmar que deseja executar o trabalho e ele entra no estado Ready , ele não retorna mais a Suspended . |
Depois de confirmar que deseja executar o trabalho, o status muda para Ready . |
Ready |
O Amazon S3 está pronto para executar as operações do objeto solicitadas. | Um trabalho passa automaticamente para Active quando o Amazon S3 começa a executá-lo. O tempo que o trabalho permanece no estado Ready depende do fato de outros trabalhos de maior prioridade estarem sendo executados e do tempo necessários para conclui-los. |
Active |
O Amazon S3 está executando a operação solicitada nos objetos listados no manifesto. Enquanto um trabalho está no status Active , é possível monitorar seu progresso usando o console do Amazon S3 ou a operação DescribeJob por meio da API REST, AWS CLI ou AWS SDKs. |
Um trabalho sai do estado Active quando para de executar operações nos objetos. Esse comportamento pode acontecer automaticamente, como quando um trabalho é concluído com êxito ou apresenta falha. Ou esse comportamento pode ocorrer como resultado de ações do usuário, como ao cancelar um trabalho. O estado que o trabalho passa a apresentar depende do motivo da transição. |
Pausing |
O trabalho está passando de outro estado para Paused . |
O trabalho passa automaticamente para Paused quando o estado Pausing é concluído. |
Paused |
O trabalho pode assumir o estado Paused se você enviar outro trabalho de maior prioridade enquanto o atual está sendo executado. |
O trabalho Paused volta automaticamente para Active depois que os trabalhos de prioridade mais alta que estavam bloqueando sua execução são concluídos, suspensos ou falham. |
Complete |
O trabalho terminou a execução da operação solicitada em todos os objetos do manifesto. A operação pode ter sido concluída com êxito ou ter apresentado falha para cada objeto. Se você configurar a criação do relatório de conclusão, o relatório estará disponível assim que o trabalho estiver em Complete . |
Complete é um estado terminal. Quando um trabalho atinge Complete , ele não muda mais de estado. |
Cancelling |
O trabalho está passando para o estado Cancelled . |
O trabalho passa automaticamente para Cancelled quando o estado Cancelling é concluído. |
Cancelled |
Você solicitou que o trabalho fosse cancelado e o Operações em Lote do S3 fez o cancelamento com sucesso. O trabalho não enviará novas solicitações ao Amazon S3. | Cancelled é um estado terminal. Quando o trabalho atinge Cancelled , ele não muda mais de estado. |
Failing |
O trabalho está passando para o estado Failed . |
O trabalho passa automaticamente para Failed quando o estado Failing é concluído. |
Failed |
O trabalho apresentou falha e não está mais em execução. Para obter mais informações sobre falhas em trabalhos, consulte Monitorar falhas nos trabalhos. | Failed é um estado terminal. Quando o trabalho atinge Failed , ele não muda mais de estado. |
Atualizar status do trabalho
Os exemplos da AWS CLI e do AWS SDK for Java a seguir atualizam o status de um trabalho do Operações em Lote. Consulte mais informações sobre como usar o console do Amazon S3 para gerenciar trabalhos do Operações em lote em Usar o console do Simple Storage Service (Amazon S3) para gerenciar trabalhos do S3 Batch Operations.
Para usar os comandos a seguir, substitua os
por suas próprias informações. user input
placeholders
-
Se você não tiver especificado o parâmetro
--no-confirmation-required
no comandocreate-job
, o trabalho permanecerá em um estado suspenso até você confirmar o trabalho definindo o status dele comoReady
. O Amazon S3 torna o trabalho qualificado para execução.aws s3control update-job-status \ --region
us-west-2
\ --account-id123456789012
\ --job-id00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c
\ --requested-job-status 'Ready' -
Para cancelar o trabalho, defina o status do trabalho como
Cancelled
.aws s3control update-job-status \ --region
us-west-2
\ --account-id123456789012
\ --job-id00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c
\ --status-update-reason "No longer needed
" \ --requested-job-status Cancelled
O exemplo a seguir atualiza o status de um trabalho do Operações em Lote do S3 usando o AWS SDK for Java.
Para obter mais informações sobre o status de trabalhos, consulte Monitoramento de relatórios de status e conclusão.
package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.UpdateJobStatusRequest; import static com.amazonaws.regions.Regions.US_WEST_2; public class UpdateJobStatus { public static void main(String[] args) { String accountId = "Account ID"; String jobId = "00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c"; try { AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); s3ControlClient.updateJobStatus(new UpdateJobStatusRequest() .withAccountId(accountId) .withJobId(jobId) .withRequestedJobStatus("Ready")); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
Notificações e registro em log
Além de solicitar relatórios de conclusão, você também pode capturar, revisar e auditar as atividades de operações em lote usando o AWS CloudTrail. Como o Operações em Lote usa operações de API existentes do Amazon S3 para realizar tarefas, essas tarefas também emitem os mesmos eventos que emitiriam se você as chamasse diretamente. Portanto, você pode monitorar e registrar o andamento do trabalho e todas as tarefas usando as mesmas ferramentas de notificação, registro em log e auditoria, além dos processos já usados com o Amazon S3. Para obter mais informações, consulte os exemplos nas seções a seguir.
nota
O Operações em Lote gera eventos de gerenciamento e dados no CloudTrail durante a execução do trabalho. O volume desses eventos é escalado com o número de chaves no manifesto de cada trabalho. Consulte mais informações na página Definição de preço do AWS CloudTrail
Para obter mais informações sobre eventos do Amazon S3, consulte Notificações de eventos do Amazon S3.
Monitorar falhas nos trabalhos
Se uma operação em lote do S3 encontrar um problema que o impeça de ser executado com êxito, como não ser capaz de ler o manifesto especificado, o trabalho falhará. Quando um trabalho falha, ele gera um ou mais códigos de falha ou motivos de falha. O Operações em Lote do S3 armazena os códigos e os motivos da falha com o trabalho para que você possa visualizá-los solicitando os detalhes do trabalho. Caso você tenha solicitado um relatório de conclusão para o trabalho, os códigos e os motivos de falha também são exibidos.
Para evitar que trabalhos executem um grande número de operações malsucedidas, o Amazon S3 impõe um limite de falhas por tarefa em cada trabalho de operações em lote. O Amazon S3 monitora a taxa de falhas das tarefas depois que o trabalho executa pelo menos 1.000 tarefas. Se, a qualquer momento, a taxa de falha (o número de tarefas que falharam em proporção ao número total de tarefas executadas) exceder 50%, o trabalho vai falhar. Se o trabalho falhar porque excedeu o limite de falhas da tarefa, você poderá identificar a causa das falhas. Por exemplo, você pode ter incluído por acidente alguns objetos no manifesto que não existem no bucket especificado. Depois de corrigir os erros, você pode reenviar o trabalho.
nota
O Operações em Lote do S3 funciona de maneira assíncrona e não necessariamente executa tarefas na ordem em que os objetos estão listados no manifesto. Portanto, não é possível usar a ordem do manifesto para determinar quais tarefas dos objetos foram bem-sucedidas e quais falharam. Em vez disso, examine o relatório de conclusão do trabalho (caso você tenha solicitado um) ou exiba os logs de evento do AWS CloudTrail para ajudar a determinar a origem das falhas.
Relatórios de conclusão
Ao criar um trabalho, você solicita um relatório de conclusão. Desde que o Operações em Lote do S3 invoque com êxito pelo menos uma tarefa, o Amazon S3 gerará um relatório de conclusão depois que o trabalho concluir a execução de tarefas, falhar ou ser cancelado. Configure o relatório de conclusão para incluir todas as tarefas ou somente tarefas com falha.
O relatório de conclusão inclui a configuração do trabalho, o status e as informações de cada tarefa, inclusive a chave e a versão do objeto, status, códigos de erro e descrições de eventuais erros. Os relatórios de conclusão oferecem uma maneira fácil de visualizar os resultados das tarefas em um formato consolidado, sem a necessidade de configurações adicionais. Os relatórios de conclusão são criptografados usando a criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3). Para obter um exemplo de um relatório de conclusão, consulte Exemplos: relatórios de conclusão de operações em lote do S3.
Mesmo que você não configure um relatório de conclusão, ainda poderá monitorar e auditar o trabalho e suas tarefas usando o CloudTrail e o Amazon CloudWatch. Para obter mais informações, consulte os tópicos a seguir.