Saiba mais sobre a configuração do ciclo de vida do S3 para StorageGRID
Você pode criar uma configuração de ciclo de vida do S3 para controlar quando objetos específicos são excluídos do sistema StorageGRID.
O exemplo simples nesta seção ilustra como uma configuração de ciclo de vida do S3 pode controlar quando determinados objetos são excluídos (expirados) de buckets específicos do S3. O exemplo nesta seção é apenas para fins ilustrativos. Para obter detalhes completos sobre a criação de configurações de ciclo de vida do S3, consulte "Guia do usuário do Amazon Simple Storage Service: gerenciamento de ciclo de vida de objetos". Observe que StorageGRID oferece suporte apenas a ações de Expiração; não oferece suporte a ações de Transição.
O que é configuração de ciclo de vida
Uma configuração de ciclo de vida é um conjunto de regras aplicadas aos objetos em buckets específicos do S3. Cada regra especifica quais objetos são afetados e quando esses objetos expirarão (em uma data específica ou após um determinado número de dias).
StorageGRID suporta até 1.000 regras de ciclo de vida em uma configuração de ciclo de vida. Cada regra pode incluir os seguintes elementos XML:
-
Expiração: exclua um objeto quando uma data específica for atingida ou quando um número específico de dias for alcançado, a partir do momento em que o objeto foi ingerido.
-
NoncurrentVersionExpiration: Exclua um objeto quando um número específico de dias for atingido, a partir do momento em que o objeto deixou de ser atual.
-
Filtro (Prefixo, Tag)
-
Status
-
ID
Cada objeto segue as configurações de retenção de um ciclo de vida do bucket S3 ou de uma política de ILM. Quando um ciclo de vida do bucket S3 é configurado, as ações de expiração do ciclo de vida substituem a política de ILM para objetos que correspondem ao filtro do ciclo de vida do bucket. Objetos que não correspondem ao filtro do ciclo de vida do bucket usam as configurações de retenção da política de ILM. Se um objeto corresponder a um filtro do ciclo de vida do bucket e nenhuma ação de expiração for explicitamente especificada, as configurações de retenção da política de ILM não são usadas e entende-se que as versões do objeto são retidas para sempre. Consulte "Exemplos de prioridades para ciclo de vida de bucket S3 e política ILM".
Como resultado, um objeto pode ser removido da grid mesmo que as instruções de posicionamento em uma regra ILM ainda se apliquem ao objeto. Ou, um objeto pode ser mantido na grid mesmo depois que quaisquer instruções de posicionamento ILM para o objeto tiverem expirado. Para obter detalhes, consulte "Como o ILM opera ao longo do ciclo de vida de um objeto".
|
|
A configuração de ciclo de vida do bucket pode ser usada com buckets que têm o S3 Object Lock ativado, mas a configuração de ciclo de vida do bucket não é compatível com buckets legados Compliant. |
StorageGRID suporta o uso das seguintes operações de bucket para gerenciar configurações de ciclo de vida:
-
DeleteBucketLifecycle
-
GetBucketLifecycleConfiguration
-
PutBucketLifecycleConfiguration
Criar configuração de ciclo de vida
Como primeiro passo para criar uma configuração de ciclo de vida, você cria um arquivo JSON que inclui uma ou mais regras. Por exemplo, este arquivo JSON inclui três regras, como segue:
-
A regra 1 aplica-se apenas a objetos que correspondam ao prefixo
category1/ e que tenham um valor dekey2tag2. O parâmetroExpirationespecifica que os objetos que correspondam ao filtro expirarão à meia-noite de 22 de agosto de 2020. -
A regra 2 aplica-se apenas a objetos que correspondam ao prefixo
category2/. OExpirationparâmetro especifica que objetos que correspondem ao filtro expirarão 100 dias após serem ingeridos.As regras que especificam um número de dias são relativas à data de ingestão do objeto. Se a data atual for posterior à data de ingestão mais o número de dias, alguns objetos podem ser removidos do bucket assim que a configuração do ciclo de vida for aplicada. -
A regra 3 aplica-se apenas a objetos que correspondam ao prefixo
category3/. O `Expiration`parâmetro especifica que quaisquer versões não atuais de objetos correspondentes expirarão 50 dias após se tornarem não atuais.
{
"Rules": [
{
"ID": "rule1",
"Filter": {
"And": {
"Prefix": "category1/",
"Tags": [
{
"Key": "key2",
"Value": "tag2"
}
]
}
},
"Expiration": {
"Date": "2020-08-22T00:00:00Z"
},
"Status": "Enabled"
},
{
"ID": "rule2",
"Filter": {
"Prefix": "category2/"
},
"Expiration": {
"Days": 100
},
"Status": "Enabled"
},
{
"ID": "rule3",
"Filter": {
"Prefix": "category3/"
},
"NoncurrentVersionExpiration": {
"NoncurrentDays": 50
},
"Status": "Enabled"
}
]
}
Aplicar configuração de ciclo de vida ao bucket
Após criar o arquivo de configuração de ciclo de vida, você o aplica a um bucket emitindo uma solicitação PutBucketLifecycleConfiguration.
Esta solicitação aplica a configuração de ciclo de vida no arquivo de exemplo aos objetos em um bucket chamado testbucket.
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
Para validar se uma configuração de ciclo de vida foi aplicada com sucesso ao bucket, emita uma solicitação GetBucketLifecycleConfiguration. Por exemplo:
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
Uma resposta bem-sucedida lista a configuração de ciclo de vida que você acabou de aplicar.
Valide se a expiração do ciclo de vida do bucket se aplica ao objeto
Você pode determinar se uma regra de expiração na configuração de ciclo de vida se aplica a um objeto específico ao emitir uma solicitação PutObject, HeadObject ou GetObject. Se uma regra se aplicar, a resposta incluirá um parâmetro Expiration que indica quando o objeto expira e qual regra de expiração foi correspondida.
|
|
Como o ciclo de vida do bucket substitui o ILM, a expiry-date data exibida é a data real em que o objeto será excluído. Para obter detalhes, consulte "Como a retenção de objeto é determinada".
|
Por exemplo, esta solicitação PutObject foi emitida em 22 de junho de 2020 e coloca um objeto no bucket testbucket.
aws s3api --endpoint-url <StorageGRID endpoint> put-object --bucket testbucket --key obj2test2 --body bktjson.json
A resposta de sucesso indica que o objeto expirará em 100 dias (01 out 2020) e que corresponde à Regra 2 da configuração do ciclo de vida.
{
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:49 GMT\", rule-id=\"rule2\"",
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
}
Por exemplo, esta solicitação HeadObject foi usada para obter metadados para o mesmo objeto no bucket testbucket.
aws s3api --endpoint-url <StorageGRID endpoint> head-object --bucket testbucket --key obj2test2
A resposta de sucesso inclui os metadados do objeto e indica que o objeto expirará em 100 dias e que corresponde à Regra 2.
{
"AcceptRanges": "bytes",
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:48 GMT\", rule-id=\"rule2\"",
"LastModified": "2020-06-23T09:07:48+00:00",
"ContentLength": 921,
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
"ContentType": "binary/octet-stream",
"Metadata": {}
}
|
|
Para buckets com controle de versão ativado, o x-amz-expiration cabeçalho de resposta se aplica somente às versões atuais dos objetos.
|