Eu defini uma regra de configuração do ciclo de vida no meu bucket do Amazon Simple Storage Service (Amazon S3) para fazer a transição de objetos para outra classe de armazenamento, expirar ou excluir objetos. No entanto, os objetos não mudaram de acordo com a regra. Preciso confirmar se a regra está funcionando para gerenciar custos ou para fins de conformidade.
Resolução
Uma ação do ciclo de vida do S3 é assíncrona. As ações assíncronas podem atrasar a remoção de um objeto após a data de expiração ou transição em uma regra de configuração do ciclo de vida. No entanto, depois de atender às condições da regra do ciclo de vida, a AWS altera o faturamento, mesmo quando a ação não está concluída.
As regras de ciclo de vida do S3 são executadas apenas uma vez por dia, à meia-noite UTC. Além disso, o Amazon S3 arredonda a data de transição ou expiração de um objeto para a meia-noite UTC do dia seguinte. Por exemplo, você cria um objeto em 01/01/2020 às 10h30 UTC com uma regra de ciclo de vida para fazer a transição do objeto após 3 dias. Portanto, a data de transição é 05/01/2020 às 00h UTC.
Antes de verificar se uma regra de ciclo de vida foi concluída, verifique se já passou tempo suficiente. Se tiver decorrido tempo suficiente e sua regra de ciclo de vida não for concluída, verifique se você definiu corretamente o filtro de prefixo para objetos na regra de ciclo de vida.
Os filtros de prefixo determinam os objetos que a regra do ciclo de vida afeta. Por exemplo, se você especificar um filtro de prefixo como images/, a regra do ciclo de vida será aplicada somente aos objetos sob o prefixo images/.
Observação: certifique-se de especificar o caractere / no final do filtro de prefixo. Se você especificar o caractere / no início do filtro de prefixo, o Amazon S3 não avaliará corretamente a regra do ciclo de vida.
É possível usar a API HeadObject, a AWS Command Line Interface (AWS CLI) ou o console do Amazon S3 para verificar quando um objeto da versão atual está programado para expirar.
Observação: se você receber erros ao executar comandos da AWS CLI, consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Use a AWS CLI
Execute o seguinte comando head-object da AWS CLI para saber quando o objeto expira:
aws s3api head-object --bucket bucketname --key file.txt
Exemplo de saída:
{
"AcceptRanges": "bytes",
"Expiration": "expiry-date=\"Wed, 15 Mar 2023 00:00:00 GMT\", rule-id=\"MyExpirationRule\"",
"LastModified": "2023-02-22T17:20:34+00:00",
"ContentLength": 6,
"ETag": "\"edae42exa0d2b93b123346740107dacf\"",
"VersionId": "SoshCRUrlabc1v4ZzYEA123PvWcaeF6F",
"ContentType": "text/plain",
"ServerSideEncryption": "AES256",
"Metadata": {}
}
O cabeçalho da resposta de Expiração informa a expiry-date e o rule-id. O campo expiry-date indica a data em que o Amazon S3 coloca o objeto em fila para remoção e remove o objeto de forma assíncrona. O campo rule-id indica a regra de ciclo de vida que você aplicou ao objeto.
Use o console do Amazon S3
Conclua as seguintes etapas:
- Abra o console do Amazon S3.
- Na lista Buckets, selecione o nome do seu bucket.
- Escolha o nome do objeto que você deseja verificar.
- Escolha o guia Propriedades.
- Na seção Visão geral do gerenciamento de objetos, em Configurações de gerenciamento, revise os campos Regra de expiração e Data de expiração.
O campo Data de expiração indica a data em que o Amazon S3 coloca o objeto em fila para remoção e remove o objeto de forma assíncrona. O campo Regra de expiração indica a regra do ciclo de vida aplicada ao objeto.
Observação: somente objetos da versão atual retornam o cabeçalho da resposta de Expiração para solicitações HEAD ou GET. As versões anteriores e os marcadores de exclusão não retornam o cabeçalho de resposta. Além disso, não há um cabeçalho de resposta específico para verificar a data de transição de objetos que são elegíveis para transições.
Informações relacionadas
Definindo a configuração do ciclo de vida do S3 em um bucket
Como faço para monitorar as ações tomadas pelas minhas regras do ciclo de vida?