Gerenciamento do ciclo de vida de objetos

Para que haja compatibilidade com casos de uso comuns relacionados a objetos, como definir um Time to Live (TTL), arquivar versões antigas ou fazer o "downgrade" das classes de armazenamento para gerenciar custos, o Cloud Storage oferece o recurso Gerenciamento do ciclo de vida de objetos. Nesta página, descrevemos esse recurso e as opções que ele oferece. Para aprender a ativar o "Gerenciamento do ciclo de vida de objetos" e para ver exemplos de políticas de ciclo de vida, consulte Como gerenciar ciclos de vida.

Introdução

É possível atribuir uma configuração de gerenciamento de ciclo de vida a um intervalo. A configuração contém um conjunto de regras que se aplicam a objetos atuais e futuros do intervalo. Quando um objeto atende aos critérios de uma das regras, o Cloud Storage automaticamente executa uma ação específica no objeto. Veja abaixo alguns exemplos de casos de uso:

  • Fazer downgrade da classe de armazenamento de objetos com mais de 365 dias para Coldline Storage.
  • Excluir objetos criados antes de 1º de janeiro de 2013.
  • Manter apenas as três versões mais recentes de cada objeto em um intervalo com controle de versão ativado.

Configuração do ciclo de vida

Cada configuração de gerenciamento do ciclo de vida contém um conjunto de regras. Ao definir uma regra, é possível especificar qualquer conjunto de condições para qualquer ação. Se você especificar várias condições em uma regra, o objeto precisará corresponder a todas as condições para que a ação seja executada. Se você especificar várias regras com a mesma ação, essa ação será executada quando um objeto corresponder às condições em qualquer uma das regras. Cada regra pode conter apenas uma ação.

Se um único objeto estiver sujeito a várias ações, o Cloud Storage executará apenas uma das ações e o objeto será reavaliado antes que novas ações sejam executadas. Uma ação de exclusão tem precedência sobre uma ação de definição de classe de armazenamento (SetStorageClass). Se várias ações SetStorageClass forem especificadas, será escolhida a ação que alternar para a classe de armazenamento com menor preço de armazenamento em repouso.

Assim, por exemplo, se houver uma regra que exclui um objeto e outra que altera a classe de armazenamento do objeto, mas as duas usarem a mesma condição exata, a ação de exclusão sempre ocorrerá quando a condição for atendida. Se houver uma regra que altera a classe do objeto para Nearline Storage e outra que altera a classe do objeto para Coldline Storage, mas as duas usarem a mesma condição, a classe do objeto sempre mudará para Coldline Storage quando a condição for atendida.

Ações de ciclo de vida

As ações a seguir são compatíveis com regras de ciclo de vida:

  • Delete: exclui objetos ativos e/ou arquivados. Objeto ativo é aquele que não é de uma geração arquivada. Consulte Controle de versão de objetos para mais detalhes. Essa ação pode ser aplicada a objetos com e sem controle de versão. Em um intervalo em que o controle de versão está ativado, excluir um objeto ativo faz com que ele seja arquivado, mas excluir um objeto arquivado faz com que ele seja excluído permanentemente.

  • SetStorageClass: altera a classe de armazenamento de objetos ativos e/ou arquivados. Essa ação pode ser aplicada a objetos com e sem controle de versão. Essa ação é compatível com as seguintes transições de classe de armazenamento:

    Classe de armazenamento original Nova classe de armazenamento
    Armazenamento de DRA (Disponibilidade durável reduzida) Nearline Storage
    Coldline StorageMulti-Regional Storage/Regional Storage1
    Multi-Regional Storage Nearline Storage
    Coldline Storage
    Regional Storage Nearline Storage
    Coldline Storage
    Standard Storage Nearline Storage
    Coldline Storage
    Nearline Storage Coldline Storage

    1 Para os intervalos em um local regional, a nova classe de armazenamento não pode ser Multi-Regional Storage. Para os intervalos em um local birregional ou multirregional, a nova classe de armazenamento não pode ser Regional Storage.

Condições do ciclo de vida

As condições a seguir são compatíveis com regras de ciclo de vida:

  • Age: essa condição é satisfeita quando um objeto atinge a idade especificada (em dias). A idade é medida a partir da data e hora de criação do objeto. Por exemplo, se um objeto foi criado em 10/01/2019, às 10h UTC e a condição Age for de 10 dias, ela será satisfeita para esse objeto a partir das 10h UTC de 20/01/2019. Isso ocorrerá mesmo se o objeto for arquivado por meio do recurso de controle de versão em algum momento após a criação.

  • CreatedBefore: essa condição é satisfeita quando um objeto é criado antes da meia-noite, no horário UTC, da data especificada.

  • IsLive: se o valor for true, essa condição de ciclo de vida corresponderá apenas a objetos ativos. Se o valor for false, ela corresponderá apenas a objetos arquivados. Para esta condição, objetos em intervalos sem controle de versão são considerados ativos.

  • MatchesStorageClass: essa condição é satisfeita quando um objeto no intervalo é armazenado de acordo com a classe de armazenamento especificada. É possível usar os seguintes valores em MatchesStorageClass: STANDARD, NEARLINE, COLDLINE, MULTI_REGIONAL, REGIONAL e DURABLE_REDUCED_AVAILABILITY.

    Em geral, se você pretende usar a condição MatchesStorageClass para objetos em Standard Storage, inclua também o seguintes parâmetros:

    • Se o intervalo estiver em um local regional, inclua REGIONAL e DURABLE_REDUCED_AVAILABILITY na condição.

    • Se o intervalo estiver em um local birregional ou multirregional, inclua MULTI_REGIONAL e DURABLE_REDUCED_AVAILABILITY na condição.

    Ao incluir essas classes adicionais, você garantirá que a regra do ciclo de vida abranja os objetos mais antigos nos seus intervalos, que podem estar definidos como classes de armazenamento legadas.

  • NumberOfNewerVersions: relevante apenas para objetos com controle de versão. Se o valor dessa condição for definido como N, um objeto satisfará a condição quando houver pelo menos N versões (incluindo a versão ativa) mais recentes. Para objetos ativos, o número de versões mais recentes é considerado 0. Para a versão arquivada mais recente, o número de versões mais recentes é 1 (ou 0 se não houver objeto ativo), e assim por diante.

Todas as condições são opcionais, mas é necessário que seja especificada pelo menos uma. Se você tentar definir uma configuração de ciclo de vida inválida, por exemplo, usando uma ação ou condição que não existe, receberá uma resposta de erro 400 Bad request e qualquer configuração de ciclo de vida atual permanecerá em vigor.

Consulte Como gerenciar ciclos de vida de objetos para ver exemplos de configurações. Para mais informações sobre o formato geral do arquivo de configuração de ciclo de vida, consulte a representação de recursos de intervalo para JSON ou o formato de configuração do ciclo de vida para XML.

Comportamento do ciclo de vida de objetos

  • O Cloud Storage inspeciona regularmente todos os objetos de um intervalo com gerenciamento do ciclo de vida e executa todas as ações aplicáveis de acordo com as regras do intervalo. O Cloud Storage executa a ação de maneira assíncrona, de modo que pode haver um atraso entre o momento em que as condições são atendidas e o momento em que a ação é executada.

    Por exemplo, se um objeto atende às condições de exclusão, talvez ele não seja excluído imediatamente. Portanto, você ainda verá o objeto até que a ação do ciclo de vida seja executada nele. As cobranças aplicáveis continuam em vigor enquanto o objeto existir. A única exceção é que os custos de armazenamento em repouso serão isentos se o objeto estiver sujeito a uma ação delete, devido a uma regra que tem apenas uma condição age.

  • Aa atualizações na configuração do ciclo de vida podem levar até 24 horas para entrar em vigor. Isso significa que, quando a configuração do ciclo de vida é alterada, o Gerenciamento do ciclo de vida de objetos ainda pode executar ações com base na configuração antiga por até 24 horas.

    Por exemplo, se você alterar uma condição Age de 10 dias para 20 dias, um objeto com 11 dias poderá ser excluído pelo Gerenciamento do ciclo de vida de objetos até 24 horas depois, com base na configuração antiga.

  • Uma ação Deletede ciclo de vida não afetará um objeto enquanto ele tiver uma guarda de objeto ou uma política de retenção que ainda não tenha sido atendida. Qualquer ação Delete que era para ser executada enquanto o objeto estava sob a restrição de uma guarda ou política de retenção ocorrerá depois que as restrições não se aplicarem mais ao objeto.

  • Uma ação SetStorageClass de ciclo de vida não é afetada pela existência de guardas ou políticas de retenção de objetos.

Exclusão antecipada de objetos em Nearline Storage e Coldline Storage

O Gerenciamento do ciclo de vida de objetos não grava novamente um objeto quando a classe de armazenamento dele é alterada. Isso significa que quando é feita a transição de um objeto para a classe Nearline Storage ou Coldline Storage por meio do recurso SetStorageClass, qualquer exclusão antecipada subsequente e cobranças associadas serão baseadas na data e hora originais de criação do objeto, independentemente de quando a classe de armazenamento foi alterada.

Por exemplo, imagine que você fez o upload de um objeto como Standard Storage e, 20 dias depois, a configuração do ciclo de vida altera a classe de armazenamento do objeto para Nearline Storage. Se você excluir o objeto imediatamente, haverá uma cobrança por exclusão antecipada de 10 dias, já que o objeto existiu por 20 dias. Se você excluir o objeto 10 dias após alterar a classe de armazenamento dele para Nearline Storage, não haverá cobrança por exclusão antecipada, porque o objeto existiu por 30 dias.

Em comparação, digamos que você fez o upload de um objeto como Standard Storage e, 20 dias depois alterou a classe de armazenamento usando uma operação de regravação (novamente para Nearline Storage). Se você excluir o objeto imediatamente depois, será cobrado pela exclusão antecipada de 30 dias, já que a data e hora da regravação se tornaram o novo momento de criação. Da mesma forma, se você esperasse 10 dias após a reconfiguração para excluir o objeto, receberia uma cobrança por exclusão antecipada de 20 dias.

Metadados de prazo de validade

Se uma ação Delete for especificada para um intervalo com a condição Age, e nenhuma condição NumberOfNewerVersions, alguns objetos poderão ser marcados com metadados de prazo de validade. O prazo de validade de um objeto indica quando o objeto se torna qualificado para exclusão pelo Gerenciamento do ciclo de vida de objetos. O prazo de validade pode mudar de acordo com as alterações na configuração do ciclo de vida ou na política de retenção do intervalo.

A ausência de metadados de prazo de validade não significa necessariamente que o objeto não será excluído, mas sim que não há informações suficientes disponíveis para determinar quando ou se ele será excluído. Por exemplo, se um objeto foi criado em 10/01/2013, às 10h UTC e a condição Age for definida como 10 dias, o prazo de validade do objeto será às 10h UTC de 20/01/2013. No entanto, o prazo de validade não estará disponível para o objeto nas seguintes circunstâncias:

  • A condição NumberOfNewerVersions também é especificada. Nesse caso, versões mais antigas do objeto poderão ser excluídas se forem adicionadas novas versões.

  • A condição CreatedBefore também é especificada e definida como “2013-01-01”, porque o objeto não atenderá essa condição.

  • O objeto está sob guarda, porque o Cloud Storage não sabe quando essa guarda será removida.

O armazenamento após o prazo de validade do objeto não é faturado, mesmo que o objeto não seja excluído imediatamente. É possível continuar acessando o objeto antes de ele ser excluído e outras cobranças continuam sendo válidas (solicitação, largura de banda da rede). Se algum objeto não tiver hora de expiração disponível, o armazenamento desse objeto será cobrado até a hora em que ele for excluído.

O prazo de validade de um objeto (se houver) pode ser vista nos metadados. A API REST retorna o prazo de validade do objeto no cabeçalho da resposta de x-goog-expiration.

Quando você usar prazos de validade, lembre-se disto:

  • Se o intervalo tiver uma política de retenção, o prazo de validade será o que for mais tarde entre a condição "age" do Gerenciamento do ciclo de vida de objetos ou o momento em que o objeto atender ao período de retenção especificado pela política.

  • Se houver vários prazos de validade conflitantes aplicáveis a um mesmo objeto devido a diferentes regras de gerenciamento do ciclo de vida, será usado o prazo de validade aplicável que for mais próximo.

Opções para rastrear ações do ciclo de vida

Use as opções a seguir para rastrear as ações de gerenciamento do ciclo de vida realizadas pelo Cloud Storage:

  • Use os registros de acesso do Cloud Storage. Esse recurso registra a ação e quem a executou. Um valor de GCS Lifecycle Management no campo cs_user_agent da entrada de registro indica que a ação foi realizada pelo Cloud Storage, de acordo com uma configuração de ciclo de vida.

  • Ative as notificações do Cloud Pub/Sub para Cloud Storage no seu intervalo. Esse recurso enviará notificações para um tópico do Cloud Pub/Sub de sua escolha quando ocorrerem ações específicas. Esse recurso não registra quem executou as ações.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.