Definir a configuração do ciclo de vida em um bucket
Esta seção explica como você pode definir uma configuração do S3 Lifecycle em um bucket usando AWS SDKs, a AWS CLI ou o console do Amazon S3. Para obter informações sobre a configuração do S3 Lifecycle, consulte Gerenciando seu ciclo de vida de armazenamento.
É possível usar regras de ciclo de vida para definir ações que você deseja que o Amazon S3 realize durante o ciclo de vida de um objeto (por exemplo, fazer a transição de objetos para outra classe de armazenamento, arquivá-los, ou excluí-los após um período especificado).
Antes de definir uma configuração de ciclo de vida, observe o seguinte:
Atraso de propagação
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.
Desabilitando ou excluindo regras de ciclo de vida
Quando você desabilita ou exclui regras do ciclo de vida, depois de um pequeno atraso o Amazon S3 para de agendar a exclusão ou transição de novos objetos. 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 as regras da funcionalidade Ciclo de Vida, use as operações da API LIST
(como ListObjectsV2, ListObjectVersions e ListMultipartUploads) ou Inventário do Amazon S3 para verificar se o Amazon S3 fez a transição e expirou 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 da funcionalidade Ciclo de Vida, consulte Solução de problemas do 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 do 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 mais de 30 dias.
Alterações no faturamento
Pode haver um atraso entre o momento em que as regras de configuração do 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 do ciclo de vida é satisfeita, mesmo que a ação ainda não tenha sido tomada.
Por exemplo, você não será cobrado pelo armazenamento após o tempo de expiração do objeto, mesmo que o objeto não seja excluído imediatamente. Outro exemplo é a cobrança das taxas de armazenamento do S3 Glacier Flexible Retrieval assim que o tempo de transição do objeto termina, mesmo que não seja feita a transição do objeto para a classe de armazenamento S3 Glacier Flexible Retrieval imediatamente. 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 não acontecem até que o objeto tenha transitado para a classe de armazenamento S3 Intelligent-Tiering.
É possível definir uma regra de ciclo de vida para todos os objetos ou para um subconjunto de objetos no bucket usando um prefixo compartilhado (nomes de objetos que começam com uma string comum) ou uma tag. Usando uma regra de ciclo de vida, é possível definir ações específicas para versões atuais e anteriores do objeto. Para obter mais informações, consulte:
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 Criar nomes de chave de objeto. Para obter mais informações sobre tags de objeto, consulte Categorizando seu armazenamento usando tags.
-
-
Para aplicar essa regra de ciclo de vida a todos os objetos no bucket, escolha This rule applies to all objects in the bucket e escolha I acknowledge that this rule applies to all objects in the bucket (Eu reconheço que essa regra se aplica a todos os objetos no bucket).
-
-
Para filtrar uma regra por tamanho de objeto, você pode marcar Specify minimum object size (Especificar o tamanho mínimo de objeto), Specify maximum object size (Especificar o tamanho máximo do objeto) ou as duas opções.
-
Quando você especificar um tamanho mínimo do objeto ou tamanho máximo do objeto, o valor deverá ser maior que 0 byte e até 5 TB. É possível especificar esse valor em bytes, KB, MB ou GB.
-
Quando você especificar ambos, o tamanho máximo do objeto deverá ser maior que o tamanho mínimo do objeto.
-
-
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
-
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 Transition current versions of objects between storage classes (Transição de versões atuais de objetos entre classes de armazenamento):
-
Em Storage class transitions (Transições de classe de armazenamento), escolha a classe de armazenamento para a qual fazer a transição:
-
Standard-IA
-
Intelligent-Tiering
-
One Zone-IA
-
S3 Glacier Flexible Retrieval
-
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 Uso de 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 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 obter 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 Transition non-current versions of objects between storage classes (Transição de versões não atuais de objetos entre classes de armazenamento):
-
Em Storage class transitions (Transições de classe de armazenamento), escolha a classe de armazenamento para a qual fazer a transição:
-
Standard-IA
-
Intelligent-Tiering
-
One Zone-IA
-
S3 Glacier Flexible Retrieval
-
Glacier Deep Archive
-
-
Em Days after object becomes non-current (Dias após o objeto se tornar não atual), 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 permanente 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).
Para obter informações sobre modelos e exemplos do CloudFormation, consulte Como trabalhar com modelos do AWS CloudFormation e AWS::S3::Bucket no Guia do usuário do AWS CloudFormation.
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
Para obter instruções de configuração da AWS CLI, consulte Desenvolvimento com o Amazon S3 usando a AWS CLI.
A configuração do ciclo de vida do Amazon S3 é um arquivo XML. Mas ao usar a AWS CLI, você não pode especificar o XML. Você deve especificar o JSON em vez disso. Veja a seguir exemplos de configurações do ciclo de vida em XML e o JSON equivalente que pode ser especificado 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 do ciclo de vida JSON em um arquivo (
lifecycle.json
). -
Execute o comando da AWS CLI a seguir para definir a configuração do ciclo de vida no bucket.
$
aws s3api put-bucket-lifecycle-configuration \ --bucketbucketname
\ --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 \ --bucketbucketname
-
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
bucketname
As seções a seguir na Referência da API do Amazon Simple Storage Service descrevem a API REST relacionada à configuração do S3 Lifecycle.