Definir uma configuração do Ciclo de Vida do S3 em um bucket
É possível definir uma configuração do Ciclo de Vida do Amazon S3 em um bucket usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI), os SDKs da AWS ou a API REST do Amazon S3. Para obter informações sobre a configuração do S3 Lifecycle, consulte Gerenciar o ciclo de vida dos objetos.
Na configuração do Ciclo de Vida do S3, você usa regras de ciclo de vida para definir ações que você deseja que o Amazon S3 realize durante a vida útil de um objeto. Por exemplo, é possível definir regras para fazer a transição de objetos a outra classe de armazenamento, arquivá-los ou expirá-los (excluí-los) após um período especificado.
Considerações sobre o Ciclo de Vida do S3
Antes de definir uma configuração de ciclo de vida, observe o seguinte:
Atraso de propagação da configuração do ciclo de vida
Quando você adiciona uma configuração do S3 Lifecycle a um bucket, costuma haver algum atraso antes que uma configuração nova ou atualizada do ciclo de vida seja totalmente propagada para todos os sistemas do Amazon S3. Considere um atraso de alguns minutos antes que a configuração entre totalmente em vigor. Esse atraso também pode ocorrer quando você exclui uma configuração do S3 Lifecycle.
Atraso na transição ou na expiração
Há um atraso entre quando uma regra do ciclo de vida é cumprida e quando a ação para a regra é concluída. Por exemplo, suponha que um conjunto de objetos tenha expirado por uma regra de ciclo de vida em 1.º de janeiro. Mesmo que a regra de expiração tenha sido cumprida em 1º de janeiro, o Amazon S3 pode não excluir esses objetos até dias ou até semanas depois. Esse atraso ocorre porque o ciclo de vida do S3 enfileira objetos para transições ou expirações de forma assíncrona. No entanto, as alterações no faturamento geralmente são aplicadas quando a regra do ciclo de vida é cumprida, mesmo que a ação não seja concluída. Consulte mais informações em Alterações no faturamento. Para monitorar o efeito das atualizações feitas pelas regras de ciclo de vida ativas, consulte Como monitorar as ações realizadas pelas minhas regras de ciclo de vida?
Atualizar, desabilitar ou excluir regras de ciclo de vida
Quando você desabilita ou exclui regras de ciclo de vida, o Amazon S3 para de programar a exclusão ou transição de novos objetos depois de um pequeno atraso. Todos os objetos que já foram agendados não são agendados e não são excluídos ou transicionados.
nota
Antes de atualizar, desabilitar ou excluir regras de ciclo de vida, use as operações de API LIST
(como ListObjectsV2, ListObjectVersions e ListMultipartUploads) ou Catalogar e analisar seus dados com o Inventário S3 para verificar se o Amazon S3 fez a transição e descontinuou os objetos elegíveis com base em seus casos de uso. Se você estiver enfrentando problemas com a atualização, a desabilitação ou a exclusão de regras de ciclo de vida, consulte Solucionar problemas de ciclo de vida do Amazon S3.
Objetos existentes e novos
Quando você adiciona uma configuração do ciclo de vida a um bucket, as regras de configuração se aplicam aos objetos existentes e aos objetos que serão adicionados no futuro. Por exemplo, se você adicionar uma regra de configuração da funcionalidade Ciclo de Vida hoje com uma ação de expiração que faz com que os objetos com um prefixo específico expirem 30 dias após sua criação, o Amazon S3 organizará para exclusão todos os objetos existentes com o prefixo especificado e com mais de 30 dias.
Monitorar o efeito de regras de ciclo de vida
Para monitorar o efeito das atualizações feitas pelas regras de ciclo de vida ativas, consulte Como monitorar as ações realizadas pelas minhas regras de ciclo de vida?
Alterações no faturamento
Pode haver um atraso entre o momento em que as regras de configuração da funcionalidade Ciclo de Vida são satisfeitas e o momento em que a ação, ativada pela satisfação da regra, é tomada. No entanto, as alterações na cobrança acontecem assim que a regra de configuração da funcionalidade Ciclo de Vida é satisfeita, mesmo que a ação ainda não tenha sido tomada.
Por exemplo, não haverá cobrança pelo armazenamento após o tempo de expiração do objeto, mesmo que o objeto não seja excluído imediatamente. Da mesma maneira, assim que o tempo de transição do objeto terminar, você receberá cobrança segundo as taxas de armazenamento da classe S3 Glacier Flexible Retrieval, mesmo que a transição do objeto para a classe de armazenamento S3 Glacier Flexible Retrieval não seja feita imediatamente.
No entanto, as transições do ciclo de vida para a classe de armazenamento S3 Intelligent-Tiering são a exceção. As alterações no faturamento só acontecerão depois da transição do objeto para a classe de armazenamento S3 Intelligent-Tiering.
Regras múltiplas ou conflitantes
Quando você tem várias regras em uma configuração do ciclo de vida do S3, um objeto pode se tornar elegível para várias ações do ciclo de vida do S3 no mesmo dia. Nesses casos, o Amazon S3 segue estas regras gerais:
-
A exclusão permanente tem precedência sobre a transição.
-
A transição tem precedência sobre a criação de marcadores de exclusão.
-
Quando um objeto é elegível para transição às classes S3 Glacier Flexible Retrieval e S3 Standard-IA (ou S3 One Zone-IA), o Amazon S3 escolhe a transição para a classe S3 Glacier Flexible Retrieval.
Para ver exemplos, consulte Exemplos de filtros sobrepostos e ações de ciclo de vida conflitantes.
Como definir uma configuração do Ciclo de Vida do S3
É possível definir uma configuração do Ciclo de Vida do Amazon S3 em um bucket usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI), os SDKs da AWS ou a API REST do Amazon S3.
Consulte informações sobre modelos e exemplos do AWS CloudFormation em Trabalhar com modelos do AWS CloudFormation e AWS::S3::Bucket no Guia do usuário do AWS CloudFormation.
É possível definir regras de ciclo de vida para todos os objetos ou para um subconjunto de objetos em um bucket usando um prefixo compartilhado (nomes de objetos que começam com uma string comum) ou uma tag. Na regra de ciclo de vida, é possível definir ações específicas para versões atuais e não atuais do objeto. Para obter mais informações, consulte as informações a seguir.
Como criar uma regra de ciclo de vida
-
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
Na lista Buckets, escolha o nome do bucket para o qual você deseja criar uma regra de ciclo de vida.
-
Escolha a guia Management (Gerenciamento) e escolha Create lifecycle rule (Criar regra de ciclo de vida).
-
Em Lifecycle rule name (Nome da regra do ciclo de vida), insira um nome para sua regra.
O nome deve ser exclusivo dentro do bucket.
-
Escolha o escopo da regra do ciclo de vida:
-
Para aplicar essa regra de ciclo de vida a todos os objetos com um prefixo ou uma tag específica, escolha Limitar o escopo a prefixos ou tags específicos.
-
Para limitar o escopo por prefixo, em Prefix (Prefixo), insira o prefixo.
-
Para limitar o escopo por tag, escolha Add tag (Adicionar tag) e insira a chave e o valor da tag.
Para obter mais informações sobre prefixos de nome de objeto, consulte Nomear objetos do Amazon S3. Para obter mais informações sobre tags de objeto, consulte Categorizar seu armazenamento usando tags.
-
-
Para aplicar essa regra de ciclo de vida a todos os objetos no bucket, escolha Esta regra se aplica a todos os objetos no bucket e Eu reconheço que esta regra se aplica a todos os objetos no bucket.
-
-
Para filtrar uma regra por tamanho de objeto, selecione Especificar o tamanho mínimo do objeto, Especificar o tamanho máximo do objeto ou as duas opções.
-
Ao especificar um valor para Tamanho mínimo do objeto ou Tamanho máximo do objeto, o valor deverá ser maior que 0 byte e no máximo 5 TB. É possível especificar esse valor em bytes, KB, MB ou GB.
-
Ao especificar ambos os valores, o tamanho máximo do objeto deverá ser maior que o tamanho mínimo do objeto.
nota
Os filtros Tamanho mínimo do objeto e Tamanho máximo do objeto excluem os valores especificados. Por exemplo, se você definir um filtro para expirar objetos que tenham um Tamanho mínimo do objeto de 128 KB, os objetos com exatamente 128 KB não expirarão. Em vez disso, a regra se aplica somente a objetos com tamanho maior que 128 KB.
-
-
Em Lifecycle rule actions (Ações de regra do ciclo de vida), escolha as ações que você deseja que sua regra de ciclo de vida execute:
-
Transição de versões atuais de objetos entre classes de armazenamento
-
Transição de versões anteriores de objetos entre classes de armazenamento
-
Expirar as versões atuais dos objetos
nota
Para buckets que não têm o versionamento do S3 habilitado, a expiração das versões atuais faz com que o Amazon S3 exclua permanentemente os objetos. Para ter mais informações, consulte Ações de ciclo de vida e estado de versionamento do bucket.
-
Excluir permanentemente versões anteriores de objetos
-
Excluir marcadores de exclusão expirados ou multipart uploads incompletos
Dependendo das ações que você escolher, diferentes opções serão exibidas.
-
-
Para fazer a transição de versões atuais de objetos entre classes de armazenamento, em Transição de versões atuais de objetos entre classes de armazenamento, faça o seguinte:
-
Em Transições de classe de armazenamento, escolha a classe de armazenamento para a qual fazer a transição. Consulte uma lista de possíveis transições em Transições de ciclo de vida com suporte. É possível escolher entre as seguintes classes de armazenamento:
-
S3 Standard – IA
-
S3 Intelligent-Tiering
-
S3 One Zone-IA
-
S3 Glacier Instant Retrieval
-
S3 Glacier Flexible Retrieval
-
S3 Glacier Deep Archive
-
-
Em Days after object creation (Dias após a criação do objeto), insira o número de dias após a criação para fazer a transição do objeto.
Para obter mais informações sobre classes de armazenamento, consulte Compreender e gerenciar classes de armazenamento do Amazon S3. É possível definir transições para a versão atual ou as versões anteriores do objeto, ou para ambas. O versionamento permite que você mantenha várias versões de um objeto em um bucket. Para obter mais informações sobre versionamento, consulte Uso do console do S3.
Importante
Quando você escolhe a classe de armazenamento S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval ou Glacier Deep Archive, os objetos permanecem no Amazon S3. Não será possível acessá-los diretamente por meio do serviço separado do Amazon S3 Glacier. Para ter mais informações, consulte Transição de objetos usando o Amazon S3 Lifecycle.
-
-
Para fazer a transição de versões não atuais de objetos entre classes de armazenamento, em Transição de versões não atuais de objetos entre classes de armazenamento, faça o seguinte:
-
Em Transições de classe de armazenamento, escolha a classe de armazenamento para a qual fazer a transição. Consulte uma lista de possíveis transições em Transições de ciclo de vida com suporte. É possível escolher entre as seguintes classes de armazenamento:
-
S3 Standard – IA
-
S3 Intelligent-Tiering
-
S3 One Zone-IA
-
S3 Glacier Instant Retrieval
-
S3 Glacier Flexible Retrieval
-
S3 Glacier Deep Archive
-
-
Em Dias após o objeto ficar desatualizado, insira o número de dias após a criação para fazer a transição do objeto.
-
-
Para expirar as versões atuais dos objetos, em Expire current versions of objects (Expirar versões atuais de objetos), em Number of days after object creation (Número de dias após a criação do objeto), insira o número de dias.
Importante
Em um bucket sem versionamento, a ação de expiração faz com que o Amazon S3 remova permanentemente o objeto. Para obter mais informações sobre ações de ciclo de vida, consulte Elementos para descrever ações de ciclo de vida.
-
Para excluir permanentemente versões anteriores de objetos, em Permanently delete previous versions of objects (Excluir permanentemente versões desatualizadas de objetos), em Days after objects become noncurrent (Dias após os objetos ficarem desatualizados), insira o número de dias. Opcionalmente, você pode especificar o número de versões mais recentes a serem retidas inserindo um valor em Number of newer versions to retain (Número de versões mais novas a serem mantidas).
-
Em Delete expired delete markers or incomplete multipart uploads (Excluir marcadores de exclusão expirados ou multipart uploads incompletos), escolha Delete expired object delete markers (Excluir marcadores de exclusão de objetos expirados) e Delete incomplete multipart uploads (Excluir multipart uploads incompletos). Depois, insira o número de dias após o início do multipart upload que você deseja encerrar e limpar multipart uploads incompletos.
Para obter mais informações sobre multipart uploads, consulte Carregar e copiar objetos usando multipart upload.
-
Selecione Criar regra.
Se a regra não contiver erros, o Amazon S3 a habilitará e você poderá vê-la na guia Management (Gerenciamento) em Lifecycle rules (Regras de ciclo de vida).
Use os comandos da AWS CLI a seguir para gerenciar as configurações do S3 Lifecycle:
-
put-bucket-lifecycle-configuration
-
get-bucket-lifecycle-configuration
-
delete-bucket-lifecycle
Consulte instruções sobre como configurar a AWS CLI em Developing with Amazon S3 using the AWS CLI na Referência de API do Amazon S3.
A configuração do ciclo de vida do Amazon S3 é um arquivo XML. Porém, ao usar a AWS CLI, você não pode especificar o formado XML. Em vez disso, você deve especificar o formato JSON. Veja a seguir exemplos de configurações de ciclo de vida em XML e as configurações JSON equivalentes que podem ser especificadas em um comando da AWS CLI.
Considere o seguinte exemplo de configuração do S3 Lifecycle.
exemplo Exemplo 1
exemplo Exemplo 2
Teste o comando put-bucket-lifecycle-configuration
da seguinte forma.
Como testar a configuração
-
Salve a configuração de ciclo de vida JSON em um arquivo (por exemplo,
).lifecycle.json
-
Execute o comando da AWS CLI a seguir para definir a configuração do ciclo de vida no bucket. Substitua os
por suas próprias informações.user input placeholders
$
aws s3api put-bucket-lifecycle-configuration \ --bucketamzn-s3-demo-bucket
\ --lifecycle-configuration file://lifecycle.json
-
Para verificar, recupere a configuração do S3 Lifecycle usando o comando
get-bucket-lifecycle-configuration
da AWS CLI da seguinte maneira:$
aws s3api get-bucket-lifecycle-configuration \ --bucketamzn-s3-demo-bucket
-
Para excluir a configuração do S3 Lifecycle, use o comando
delete-bucket-lifecycle
da AWS CLI da seguinte maneira:aws s3api delete-bucket-lifecycle \ --bucket
amzn-s3-demo-bucket
Os tópicos a seguir na Referência da API do Amazon Simple Storage Service descrevem as operações da API REST relacionada à configuração do Ciclo de Vida do S3:
Solução de problemas de ciclo de vida do S3
Consulte problemas comuns que podem ocorrer ao trabalhar com o ciclo de vida do S3 em Solucionar problemas de ciclo de vida do Amazon S3.