Tenho um bucket do Amazon Simple Storage Service (Amazon S3) que armazena milhões de objetos. Quero usar uma regra de configuração de ciclo de vida para esvaziar o bucket para não ser cobrado pelo armazenamento.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Observação: Essa orientação de configuração do ciclo de vida se aplica somente aos buckets de uso geral do Amazon S3. Os buckets de diretório têm diferentes requisitos de gerenciamento do ciclo de vida. Os buckets de tabela não oferecem suporte às regras de configuração do ciclo de vida.
Importante: A resolução a seguir exclui permanentemente todos os dados do seu bucket do Amazon S3. Como não é possível recuperar os dados, revise os objetos e dados do bucket antes de excluí-los.
Para esvaziar um bucket com uma regra de configuração de ciclo de vida, use o console ou a AWS CLI.
Usando o console
Crie uma regra de configuração de ciclo de vida no console que expire as versões atuais dos objetos e exclua permanentemente as versões anteriores dos objetos. Para criar a regra, conclua as seguintes etapas:
- Abra o console do Amazon S3.
- Na lista de buckets de uso geral, selecione o bucket que você deseja esvaziar.
- Clique na guia Gerenciamento.
- Escolha Criar regra de ciclo de vida.
- Em Nome da regra de ciclo de vida, insira um nome para a regra.
- Em Escolher um escopo de regra, escolha Aplicar a todos os objetos do bucket.
- Selecione Reconheço que esta regra se aplicará a todos os objetos do bucket.
- Para Ações de regras de ciclo de vida, selecione as seguintes opções:
Expirar versões atuais de objetos
Excluir permanentemente versões não atuais de objetos
Excluir marcadores de exclusão de objetos expirados ou carregamentos fracionados incompletos
- No campo Expirar versões atuais de objetos, no campo Dias após a criação do objeto, insira 1.
- No campo Excluir permanentemente versões não atuais de objetos, no campo Dias após os objetos se tornarem não atuais, insira 1.
- Para excluir todas as versões, deixe o campo Número de versões mais recentes a serem retidas (Opcional) vazio.
- Selecione Excluir carregamentos fracionados incompletos e, em seguida, insira 1 no campo Número de dias.
- Selecione Criar regra.
- Para criar uma segunda regra de ciclo de vida, repita as etapas de 4 a 7.
- Selecione Excluir marcadores de exclusão de objetos expirados ou carregamentos fracionados incompletos.
- Selecione Excluir marcadores de exclusão de objeto expirados.
- Selecione Criar regra.
As regras de configuração de ciclo de vida do Amazon S3 são executadas uma vez por dia. Depois da primeira vez que o Amazon S3 executa as regras, todos os objetos qualificados para expiração são marcados para exclusão. Você não será mais cobrado por objetos marcados para exclusão.
O Amazon S3 expira versões de objetos e remove marcadores de exclusão de forma assíncrona. As regras podem levar alguns dias para serem executadas até que o bucket fique vazio. Para obter mais informações sobre remoção assíncrona de objetos no Amazon S3, consulte Expirando objetos.
Como usar a AWS CLI
É possível usar a AWS CLI para criar uma regra de ciclo de vida para esvaziar seu bucket do S3. Conclua as etapas a seguir:
-
Crie um arquivo com seu conteúdo JSON, como lifecycle-rules.json. O exemplo do código a seguir mostra um conjunto de regras de ciclo de vida:
{ "Rules": [{
"Expiration": {
"Days": 1
},
"ID": "FullDelete",
"Filter": {
"Prefix": ""
},
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 1
},
"AbortIncompleteMultipartUpload": {
"DaysAfterInitiation": 1
}
},
{
"Expiration": {
"ExpiredObjectDeleteMarker": true
},
"ID": "DeleteMarkers",
"Filter": {
"Prefix": ""
},
"Status": "Enabled"
}
]
}
-
Execute o comando put-bucket-lifecycle-configuration para criar ou atualizar sua configuração de ciclo de vida. O comando a seguir usa um arquivo JSON chamado lifecycle-rules.json:
aws s3api put-bucket-lifecycle-configuration --bucket delete-marker-testing-demo --lifecycle-configuration file://lifecycle-rules.json
Observação: É possível adicionar um filtro de prefixo ao conteúdo JSON para aplicar a regra somente no nível do prefixo. A seguir há um comando de exemplo:
"Filter": { "Prefix": "folder1/"
},
Informações relacionadas
Remover marcadores de exclusão de objetos expirados em um bucket com versionamento habilitado
Gerenciar o ciclo de vida dos objetos
Como excluo objetos e buckets do Amazon S3?
Excluir um bucket de uso geral
Definir uma configuração do ciclo de vida do S3 em um bucket