Administración del ciclo de vida de los objetos

Ir a ejemplos

Cloud Storage ofrece la característica de administración del ciclo de vida de los objetos a fin de ser compatible con casos de uso comunes que incluyen establecer un tiempo de actividad (TTL) para los objetos, archivar versiones anteriores de objetos o “cambiar a una versión anterior” de las clases de almacenamiento de objetos para facilitar la administración de los costos.

En esta página, se describen las características y las opciones disponibles cuando se usan. Si deseas obtener más información sobre el formato general del archivo de configuración del ciclo de vida, consulta la representación de recursos del depósito para JSON o el formato de configuración del ciclo de vida para XML.

Introducción

Puedes asignar una configuración de administración del ciclo de vida a un depósito. La configuración contiene un conjunto de reglas que se aplican a los objetos actuales y futuros del depósito. Cuando un objeto cumple con los criterios de una de las reglas, Cloud Storage realiza de forma automática una acción específica en el objeto. Estos son algunos ejemplos de casos de uso:

  • Cambiar la versión de la clase de almacenamiento de objetos con más de 365 días a Coldline Storage
  • Borrar objetos creados antes del 1 de enero de 2013
  • Conservar solo las 3 versiones más recientes de cada objeto en un depósito con el control de versiones habilitado

Configuración del ciclo de vida

Cada configuración de administración del ciclo de vida contiene un conjunto de reglas. Cuando se define una regla, puedes especificar cualquier conjunto de condiciones para cualquier acción. Si especificas varias condiciones en una regla, un objeto tiene que coincidir con todas las condiciones para que se realice la acción. Si especificas varias reglas que contienen la misma acción, esta se realiza cuando un objeto coincide con las condiciones de cualquiera de las reglas. Cada regla debe contener solo una acción.

Si se cumplen las condiciones de varias reglas de forma simultánea para un solo objeto, Cloud Storage realiza la acción asociada con solo una de las reglas, según las siguientes consideraciones:

  • La acción Delete tiene prioridad sobre cualquier acción SetStorageClass.
  • La acción SetStorageClass que cambia el objeto a la clase de almacenamiento con el precio de almacenamiento en reposo más bajo tiene prioridad.

Una vez que se produce una acción, se vuelve a evaluar el objeto antes de realizar cualquier acción adicional.

Así que, por ejemplo, si tienes una regla que borra un objeto y otra regla que cambia la clase de almacenamiento del objeto, pero ambas reglas usan la misma condición, la acción Delete siempre ocurre cuando se cumple la condición. Si tienes una regla que cambia la clase del objeto a Nearline Storage y otra que la cambia a Coldline Storage, pero ambas reglas usan la misma condición, la clase del objeto siempre cambia a Coldline Storage cuando se cumple la condición.

Consulta Administra ciclos de vida de objetos para obtener ejemplos sobre cómo usar las opciones de configuración de los ciclos de vida.

Acciones del ciclo de vida

Una regla de ciclo de vida especifica una acción Delete o una acción SetStorageClass.

Delete

La acción Delete borra un objeto cuando este cumple con todas las condiciones especificadas en la regla del ciclo de vida.

Excepción: En los depósitos con el control de versiones de objetos habilitado, borrar la versión publicada de un objeto hace que se convierta en una versión no actual, mientras que borrar una versión no actual provoca que se borre esa versión de forma permanente. Consulta la configuración para borrar objetos a fin de obtener un ejemplo del uso de la acción Delete junto con el control de versiones de objetos.

SetStorageClass

La acción SetStorageClass cambia la clase de almacenamiento de un objeto cuando este cumple con todas las condiciones especificadas en la regla del ciclo de vida.

SetStorageClass es compatible con las siguientes transiciones de clases de almacenamiento:

Clase de almacenamiento original Nueva clase de almacenamiento
Durable Reduced Availability (DRA) Storage Nearline Storage
Coldline Storage
Archive Storage
Multi-Regional Storage/Regional Storage1
Standard Storage, Multi-Regional Storage o Regional Storage Nearline Storage
Coldline Storage
Archive Storage
Nearline Storage Coldline Storage
Archive Storage
Coldline Storage Archive Storage

1 Para los depósitos en una región, la clase de almacenamiento nueva no puede ser Multi-Regional Storage. En el caso de los depósitos en una región doble o múltiple, la clase de almacenamiento nueva no puede ser Regional Storage.

Cloud Storage no valida si la transición de la clase de almacenamiento es correcta. Esto significa que puedes especificar una transición de una clase de almacenamiento que no aparece en la tabla anterior, pero la transición no se llevará a cabo. Debes verificar que en las reglas del ciclo de vida se usen las transiciones de una clase de almacenamiento de la lista.

Condiciones del ciclo de vida

Una regla de ciclo de vida incluye condiciones que un objeto debe cumplir antes de que la acción definida en la regla se produzca en él. Las reglas de ciclos de vida son compatibles con las siguientes condiciones:

Todas las condiciones son opcionales, pero se requiere al menos una. Si quieres establecer una configuración del ciclo de vida no válida, como el uso de una acción o condición que no existe, recibirás una respuesta de error 400 Bad request, y no se modificará ninguna configuración del ciclo de vida existente.

Age

La condición Age se cumple cuando un objeto alcanza la antigüedad especificada (en días). La antigüedad se mide desde la hora de creación del objeto. Por ejemplo, si la fecha y hora de creación de un objeto es 10:00 UTC del 10/01/2019 y la condición Age es de 10 días, entonces, la condición se cumple para el objeto a partir de las 10:00 UTC del 20/01/2019. Esto ocurre incluso si el objeto pasa a ser no actual mediante el control de versiones de objetos poco después de su creación.

CreatedBefore

La condición CreatedBefore se cumple cuando se crea un objeto antes de la medianoche de la fecha especificada en UTC.

CustomTimeBefore

La condición CustomTimeBefore se cumple cuando la parte correspondiente a la fecha de los metadatos Custom-Time de un objeto es anterior a la fecha especificada en esta condición. Esta condición se establece con el formato de fecha YYYY-MM-DD. CustomTimeBefore nunca se cumple en un objeto sin metadatos Custom-Time establecidos.

DaysSinceCustomTime

La condición DaysSinceCustomTime se cumple cuando la cantidad especificada de días pasó desde la fecha y hora especificadas en el campo de metadatos Custom-Time de un objeto. Por ejemplo, si la Custom-Time de un objeto es 2020-05-16T10:00:00Z y la condición DaysSinceCustomTime es de 10 días, la condición se cumple para el objeto a partir del 2020/05/26 10:00 UTC.

DaysSinceCustomTime nunca se cumple en un objeto sin metadatos Custom-Time establecidos.

DaysSinceNoncurrentTime

Por lo general, la condición DaysSinceNoncurrentTime solo se usa junto con el control de versiones de objetos. La condición se cumple cuando la cantidad especificada de días pasó desde que el objeto se convirtió en no actual, ya sea porque la versión publicada se borró o se reemplazó. Por ejemplo, si un objeto se convirtió en no actual el 08/07/2020 a las 15:00 UTC y la condición DaysSinceNoncurrentTime es de 10 días, la condición se cumple para el objeto a partir del 18/07/2020 a las 15:00 UTC.

IsLive

Por lo general, la condición IsLive solo se usa junto con el control de versiones de objetos. Cuando se establece en false, esta condición se cumple para cualquier versión no actual de un objeto. Cuando se establece en true, esta condición se cumple para la versión publicada de un objeto. Si no usas el control de versiones, todos tus objetos se consideran publicados y coinciden cuando IsLive se establece en true.

MatchesStorageClass

La condición MatchesStorageClass se cumple cuando se almacena un objeto en el depósito como la clase de almacenamiento especificada. Puedes usar los siguientes valores para MatchesStorageClass: STANDARD, NEARLINE, COLDLINE, ARCHIVE, MULTI_REGIONAL, REGIONAL y DURABLE_REDUCED_AVAILABILITY.

En general, si quieres usar la condición MatchesStorageClass en objetos de Standard Storage, también debes incluir lo siguiente:

  • Si el depósito está en una región, debes incluir REGIONAL y DURABLE_REDUCED_AVAILABILITY en la condición.

  • Si el depósito está en una región doble o múltiple, incluye MULTI_REGIONAL y DURABLE_REDUCED_AVAILABILITY en la condición.

La inclusión de estas clases adicionales garantiza que la regla del ciclo de vida cubra objetos más antiguos en tus depósitos, los que pueden configurarse en clases de almacenamiento heredadas.

NoncurrentTimeBefore

Por lo general, la condición NoncurrentTimeBefore solo se usa junto con el control de versiones de objetos. La condición se cumple en los objetos que se convirtieron en no actuales en una fecha anterior a la que se especifica en esta condición. La condición se establece con el formato de fecha YYYY-MM-DD. NoncurrentTimeBefore nunca se cumple en un objeto activo.

NumberOfNewerVersions

Por lo general, la condición NumberOfNewerVersions solo se usa junto con el control de versiones de objetos. Si el valor de esta condición se establece en N, una versión de objeto cumple con la condición cuando existen, al menos, N versiones más recientes que esta (incluida la versión publicada). Para la versión publicada de un objeto, la cantidad de versiones más recientes es 0. Para la versión no actual más reciente, la cantidad de versiones más recientes es 1 (o 0 si no existen versiones publicadas de un objeto), y así de forma sucesiva.

Comportamiento del ciclo de vida del objeto

  • Cloud Storage inspecciona con regularidad todos los objetos en un depósito en el que esté configurada la administración del ciclo de vida de los objetos y realiza todas las acciones aplicables según las reglas del depósito. Cloud Storage realiza una acción de manera asíncrona, por lo que puede haber un lapso de tiempo entre el momento en el que las condiciones se cumplen y en el que se realiza la acción.

    Por ejemplo, si un objeto cumple con las condiciones para la operación de borrado, puede que este no se borre de inmediato. Por lo tanto, verás el objeto hasta que la acción del ciclo de vida se ejecute en él. Se facturan los cargos aplicables mientras exista el objeto, pero con una excepción: los costos del almacenamiento en reposo no se aplican si el objeto está sujeto a una acción Delete debido a una regla que solo tiene una condición Age.

  • Las actualizaciones de la configuración del ciclo de vida pueden tardar hasta 24 horas en surtir efecto. Esto significa que, cuando cambias la configuración del ciclo de vida, puede que la Administración del ciclo de vida de los objetos aún realice acciones basadas en la configuración anterior durante un período de hasta 24 horas.

    Por ejemplo, si cambias una condición Age de 10 días a 20, la Administración del ciclo de vida de los objetos podría borrar un objeto de 11 días de antigüedad hasta 24 horas más tarde, debido a los criterios de la configuración anterior.

  • Una acción Delete del ciclo de vida del objeto no tendrá efecto en un objeto mientras que este tenga una conservación de objetos o una política de retención que aún no se cumpla. Cualquier acción Delete que pudiera producirse mientras un objeto tenga una restricción de conservación o política de retención, se producirá después de que las restricciones ya no se apliquen al objeto.

  • Una acción SetStorageClass del ciclo de vida del objeto no se ve afectada por la existencia de conservaciones de objetos o políticas de retención.

Ventajas de costos de SetStorageClass

A diferencia de cuando se cambia la clase de almacenamiento de un objeto de forma manual, la Administración del ciclo de vida de los objetos no reescribe un objeto cuando cambia la clase de almacenamiento. Esto le brinda a la Administración del ciclo de vida de los objetos ciertas ventajas de precios:

  • No se aplican tarifas de recuperación ni tarifas de eliminación temprana asociadas con el cambio de clase de almacenamiento, incluso si el objeto se configuró en un principio en Nearline Storage o Coldline Storage.

  • El tiempo consumido del objeto establecido en la clase de almacenamiento original se considera como parte de cualquier duración de almacenamiento mínima que se aplique a la clase de almacenamiento nueva.

Por ejemplo, supongamos que subiste un objeto como Nearline Storage y, 20 días después, la configuración del ciclo de vida cambia la clase de almacenamiento del objeto a Coldline Storage. Este cambio no genera tarifas de recuperación ni de eliminación temprana. Si borras el objeto 60 días después del cambio de clase de almacenamiento, solo se aplicará un cargo por eliminación temprana correspondiente a 10 días, dado que Coldline Storage tiene una duración mínima de almacenamiento de 90 días y el objeto existió por un total de 80 días.

En comparación, supongamos que subiste un objeto como Nearline Storage y, 20 días después, cambias la clase de almacenamiento mediante una reescritura (de nuevo a Coldline Storage). Este cambio genera una tarifa de recuperación y un cargo de eliminación temprana correspondiente a 10 días. Si borras el objeto 60 días después de la reescritura, hay un cargo por eliminación temprana correspondiente a 30 días.

Metadatos de hora de vencimiento

Si se especifica una acción Delete para un depósito con la condición Age (y ninguna otra condición aparte de matchesStorageClass), algunos objetos pueden etiquetarse con metadatos de hora de vencimiento. La hora de vencimiento de un objeto indica el momento en que el objeto cumple (o cumplió) con las condiciones para que la Administración del ciclo de vida de los objetos lo borre. La hora de vencimiento puede cambiar a medida que cambia la configuración del ciclo de vida del depósito o la política de retención.

Ten en cuenta que la ausencia de los metadatos de hora de vencimiento no significa necesariamente que el objeto no se borrará, sino que no hay suficiente información disponible para determinar cuándo se borrará o si se borrará. Por ejemplo, si la hora de creación de un objeto es 10:00 UTC del 10/01/2020 y la condición Age es 10 días, entonces la hora de vencimiento del objeto es a las 10:00 UTC del 20/01/2020. Sin embargo, la hora de vencimiento no está disponible para el objeto en los siguientes casos:

  • Hay otras condiciones especificadas en la regla Delete, con la excepción de matchesStorageClass.

  • Usas una condición matchesStorageClass que no incluye la clase de almacenamiento del objeto.

  • El objeto está en conservación, debido a que Cloud Storage no puede saber cuándo se quitará la conservación.

No se cobra por el almacenamiento después de la hora de vencimiento del objeto incluso si el objeto no se borra de inmediato. Puedes acceder al objeto antes de que se borre. Eres responsable de otros cargos (solicitud, ancho de banda de la red). Si la hora de vencimiento no está disponible para un objeto, se cobra por el almacenamiento del objeto hasta el momento en que se borre.

Cuando trabajes con horas de vencimiento, ten en cuenta lo siguiente:

  • Si el depósito tiene una política de retención, la hora de vencimiento es la última de la condición Age de la Administración del ciclo de vida de los objetos y la hora en que el objeto cumple con el período de retención que especifica la política de retención.

  • Si existen varias horas de vencimiento en conflicto aplicables para un objeto debido a diferentes reglas de administración de ciclos de vida, se usa la primera hora de vencimiento aplicable.

Opciones para el seguimiento de las acciones del ciclo de vida

Para realizar un seguimiento de las acciones de administración del ciclo de vida que realiza Cloud Storage, usa una de las siguientes opciones:

  • Usa los registros de uso de Cloud Storage. Esta característica registra la acción y quién la realiza. Un valor de GCS Lifecycle Management en el campo cs_user_agent de la entrada de registro indica que Cloud Storage realizó la acción en función de una configuración del ciclo de vida.

  • Habilita las notificaciones de Pub/Sub para Cloud Storage en tu depósito. Con esta característica, se envían notificaciones a un tema de Pub/Sub de tu elección cuando se producen acciones específicas. Ten en cuenta que en esta característica no se registra quién realizó las acciones.

Próximos pasos