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 prácticos 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 usa.

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 prácticos:

  • Pasar 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 cambia la clase del objeto 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.

Acciones del ciclo de vida

Las siguientes acciones son compatibles con una regla del ciclo de vida:

  • Delete: Borra objetos.

    Excepción: En depósitos con control de versiones de los objetos habilitado, si borras la versión activa de un objeto, se crea una versión no actual y, si borras una versión no actual, se borra esa versión de forma permanente.

  • SetStorageClass: Cambia la clase de almacenamiento de los objetos. Esta opción es compatible con las siguientes transiciones de clase 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 la clase de almacenamiento que no aparece en la tabla anterior, pero la transición no se llevará a cabo. Debes verificar que las reglas del ciclo de vida usen una de las transiciones de la clase de almacenamiento de la lista.

Condiciones del ciclo de vida

Las siguientes condiciones son compatibles con una regla del ciclo de vida:

  • Age (Antigüedad): esta condición se cumple cuando un objeto alcanza la antigüedad específica (en días). La antigüedad se mide desde la hora de creación del objeto. Por ejemplo, si la hora de creación de un objeto es 10:00 UTC del 10/01/2019 y la condición Age es 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: Esta condición se cumple cuando se crea un objeto antes de la medianoche de la fecha especificada en UTC.

  • IsLive: Por lo general, esta condición solo se usa junto con el control de versiones de los 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 de los objetos, todos tus objetos se consideran publicados y coinciden cuando IsLive es true.

  • MatchesStorageClass: Esta condición 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.

  • NumberOfNewerVersions: Por lo general, esta condición solo se usa junto con el control de versiones del objeto. Si el valor de esta condición se establece en N, un objeto cumple con la condición cuando existen, al menos, N versiones (incluida la versión publicada) más nuevas que esta. 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.

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

Consulta Administra ciclos de vida de objetos para obtener ejemplos sobre cómo usar configuraciones de ciclos de vida. 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.

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 una demora 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.

Comportamiento de eliminación temprana

La Administración del ciclo de vida de los objetos no reescribe un objeto cuando cambia su clase de almacenamiento. Esto significa que cuando un objeto pasa a Nearline Storage, Coldline Storage o Archive Storage mediante la característica SetStorageClass, cualquier operación posterior de eliminación temprana y los cargos asociados se basan en la hora de creación original del objeto, sin importar cuándo cambió la clase de almacenamiento.

Por ejemplo, supongamos que subiste un objeto como Standard Storage y, 20 días después, tu configuración del ciclo de vida cambia la clase de almacenamiento del objeto a Nearline Storage. Si borras el objeto de inmediato, hay un cargo por operación de eliminación temprana de 10 días, ya que el objeto existió durante 20 días. Si borras el objeto 10 días después de cambiar su clase de almacenamiento a Nearline Storage, no se cobrará por operación de eliminación temprana, ya que el objeto existió durante 30 días.

En comparación, supongamos que subiste un objeto como Standard Storage y, 20 días después, cambias la clase de almacenamiento mediante una reescritura (de nuevo a Nearline Storage). Si borras el objeto inmediatamente después, incurrirás en un cargo de operación de borrado temprano de 30 días, ya que la hora de reescritura se convierte en la nueva hora de creación. Del mismo modo, si esperaste 10 días después de la reescritura para borrar el objeto, incurrirás en un cargo por operación de borrado temprano de 20 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, entonces 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 registros de acceso 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 esta característica no registra quién realizó las acciones.

Próximos pasos