Compartir a través de


Estructura de directivas de administración del ciclo de vida de Azure Blob Storage

Puede usar directivas de administración del ciclo de vida para migrar blobs a niveles de acceso rentables según sus patrones de uso. También puede eliminar blobs completamente al final de su ciclo de vida. Una directiva puede funcionar en las versiones actuales, las versiones anteriores y las instantáneas, pero no funciona en blobs dentro de los contenedores del sistema, como $logs o $web. Para obtener información general, consulte Introducción a la administración del ciclo de vida de Azure Blob Storage.

En este artículo se describen los elementos de una directiva de administración del ciclo de vida. Para obtener ejemplos de directivas, consulte los siguientes artículos:

Sugerencia

Aunque la administración del ciclo de vida le ayuda a optimizar los costos de una sola cuenta, puede usar Acciones de Azure Storage para realizar varias operaciones de datos a escala en varias cuentas.

Reglas

Una directiva de administración del ciclo de vida es una colección de reglas en un documento JSON. En el siguiente JSON de ejemplo se muestra una definición de regla completa:

{
  "rules": [
    {
      "name": "rule1",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {...}
    },
    {
      "name": "rule2",
      "type": "Lifecycle",
      "definition": {...}
    }
  ]
}
Nombre del parámetro Tipo de parámetro Notas
reglas Una matriz de objetos de regla Se requiere al menos una regla en una directiva. Puede definir hasta 100 reglas en una directiva.

Cada regla de la directiva tiene varios parámetros, descritos en la siguiente tabla:

Nombre del parámetro Tipo Notas Obligatorio
nombre Cuerda Un nombre de regla puede incluir hasta 256 caracteres alfanuméricos. El nombre de la regla distingue mayúsculas de minúsculas. Debe ser único dentro de una directiva.
habilitado Booleano Un valor booleano opcional para permitir que una regla se deshabilite de forma temporal. El valor predeterminado es true. No
tipo Un valor de enumeración El tipo actual válido es Lifecycle.
definición Un objeto que define la regla del ciclo de vida Cada definición se compone de un conjunto de filtros y un conjunto de acciones.

Filtros

Los filtros limitan las acciones a un subconjunto de blobs dentro de la cuenta de almacenamiento. Puede usar un filtro para especificar qué blobs se van a incluir. Un filtro no proporciona ningún medio para especificar qué blobs excluir. Si se define más de un filtro, se aplica un AND lógico a todos los filtros. En la tabla siguiente se describe cada parámetro.

Nombre de filtro Tipo Descripción Obligatorio
blobTypes Matriz de valores de enumeración predefinidos Tipo de blob ( blockblob o appendBlob)
prefixMatch Matriz de cadenas Estas cadenas son prefijos que deben coincidir. No
blobIndexMatch Matriz de valores de diccionario Estos valores constan de las condiciones de clave y valor de la etiqueta de índice de blobs que se van a coincidir. No

Filtro de coincidencia de prefijo

Si aplica el filtro prefixMatch , cada regla puede definir hasta 10 prefijos que distinguen mayúsculas de minúsculas. Una cadena de prefijos debe comenzar con el nombre de un contenedor. Por ejemplo, si desea coincidir con todos los blobs de la ruta de acceso https://myaccount.blob.core.windows.net/sample-container/blob1/..., especifique elprefixMatch como sample-container/blob1.

Este filtro coincidirá con todos los blobs en sample-container cuyos nombres comiencen por blob1. Si no define una coincidencia de prefijo, la regla se aplica a todos los blobs de la cuenta de almacenamiento. Las cadenas de prefijo no admiten la coincidencia de caracteres comodín. Los caracteres como * y ? se tratan como literales de cadena.

Filtro de coincidencia de índice de blobs

Si aplica el filtro blobIndexMatch , cada regla puede definir hasta 10 condiciones de etiqueta de índice de blobs. Por ejemplo, si desea hacer coincidir todos los blobs con Project = Contoso en https://myaccount.blob.core.windows.net/, el filtro blobIndexMatch es {"name": "Project","op": "==","value": "Contoso"}. Si no define un valor para el filtro blobIndexMatch , la regla se aplica a todos los blobs de la cuenta de almacenamiento.

Acciones

Debe definir al menos una acción para cada regla. Las acciones se aplican a los blobs filtrados cuando se cumple la condición de ejecución. Para obtener más información sobre las condiciones de ejecución, consulte la sección Condiciones de ejecución de acciones de este artículo. En la tabla siguiente se describe cada acción que está disponible en una definición de directiva.

Acción Descripción
TierToCool Establezca un blob en el nivel de acceso esporádico.

No se admite con blobs en anexos, blobs en páginas o con blobs en una cuenta de almacenamiento de blobs en bloques Premium.
TierToCold Establezca un blob en el nivel de acceso en frío.

No se admite con blobs en anexos, blobs en páginas o con blobs en una cuenta de almacenamiento de blobs en bloques Premium.
TierToArchive Establezca un blob en el nivel de acceso de archivo.

La rehidratación de un blob no actualiza la propiedad de hora de última modificación o última acceso del blob. Como resultado, esta acción podría volver a mover los blobs rehidratados al nivel de archivo. Para evitar que esto suceda, agregue la daysAfterLastTierChangeGreaterThan condición a esta acción.

Esta acción no se admite con blobs en anexos, blobs en páginas ni con blobs en una cuenta de almacenamiento de blobs en bloques Premium. Tampoco se admite con blobs que usan un ámbito de cifrado o con blobs en cuentas configuradas para almacenamiento con redundancia de zona (ZRS), almacenamiento con redundancia de zona geográfica (GZRS) o almacenamiento con redundancia de zona geográfica de acceso de lectura (RA-GZRS).
enableAutoTierToHotFromCool Si un blob se establece en el nivel frío, esta acción mueve automáticamente dicho blob al nivel caliente cuando se accede al blob.

Esta acción solo está disponible cuando se usa con la condición de ejecución daysAfterLastAccessTimeGreaterThan .

Esta acción no tiene ningún efecto en los blobs que se establecieron en el nivel de acceso esporádico antes de habilitar esta acción en una regla.

Esta acción mueve blobs de esporádico a frecuente solo una vez en 30 días. Esta protección se pone en marcha para protegerse frente a varias sanciones de eliminación anticipada cobradas a la cuenta.

No se admite con versiones o instantáneas anteriores.
Eliminar Elimina un blob.

No se admite con blobs en páginas o blobs en un contenedor inmutable.

Si define más de una acción en el mismo blob, la administración del ciclo de vida aplica la acción menos costosa al blob. Por ejemplo, una acción de eliminación es más barata que la acción tierToArchive y la acción tierToArchive es más barata que la acción tierToCool .

Eliminar acción en cuentas que tienen un espacio de nombres jerárquico

Cuando se aplica a una cuenta con un espacio de nombres jerárquico habilitado, una acción de eliminación quita los directorios vacíos. Si el directorio no está vacío, la acción de eliminación quita los objetos que cumplen las condiciones de la directiva dentro del primer ciclo de ejecución de la directiva del ciclo de vida. Si esa acción da como resultado un directorio vacío que también cumple las condiciones de la directiva, ese directorio se quitará en el siguiente ciclo de ejecución, etc.

Acción de eliminación en blobs que tienen versiones e instantáneas

Una directiva de administración del ciclo de vida no eliminará la versión actual de un blob hasta que se hayan eliminado las versiones o instantáneas anteriores asociadas a ese blob. Si los blobs de la cuenta de almacenamiento tienen versiones o instantáneas anteriores, debe incluir versiones e instantáneas anteriores al especificar una acción de eliminación como parte de la directiva.

Condiciones de ejecución de acciones

Todas las condiciones de ejecución se basan en el tiempo. Si el número de días que han transcurrido supera el número especificado para la condición, se puede ejecutar la acción asociada. Las condiciones de directiva se evalúan en cada objeto solo una vez durante la ejecución de una directiva. En algunos casos, un objeto podría cumplir la condición después de que ya se evaluara mediante una ejecución. Estos objetos se procesan en ejecuciones posteriores.

Para realizar el seguimiento de la antigüedad, las versiones actuales usan la hora de la última modificación o del último acceso, las versiones anteriores usan la hora de creación de la versión y las instantáneas de blobs usan la hora de creación de la instantánea.

En la tabla siguiente se describe cada condición de ejecución de acción.

Nombre de condición Tipo Descripción
daysAfterModificationGreaterThan Entero Antigüedad en días después del blob de hora de la última modificación. Se aplica a las acciones de una versión actual de un blob.
daysAfterCreationGreaterThan Entero La edad en días posteriores a la hora de creación. Se aplica a acciones en la versión actual de un blob, la versión anterior de un blob o una instantánea de blob.
daysAfterLastAccessTimeGreaterThan Entero Antigüedad en días después de la hora de último acceso o, en algunos casos, cuando se habilitó la fecha en que se habilitó la directiva. Para más información, consulte la sección Seguimiento de tiempo de acceso a continuación. Se aplica a las acciones de la versión actual de un blob cuando está habilitado el seguimiento de acceso.
daysAfterLastTierChangeGreaterThan Entero La antigüedad en días posteriores a la hora de cambio del último nivel de blob. La duración mínima en días en que un blob rehidratado se mantiene en niveles de acceso frecuente, esporádico o frío antes de volver al nivel de archivo. Solo se aplica a las acciones tierToArchive .

Seguimiento de tiempo de acceso

Puede habilitar el seguimiento de tiempo de acceso para mantener un registro de cuándo el blob se lee o escribe por última vez y como filtro para administrar la creación de niveles y la retención de los datos de blobs.

Cuando se habilita el seguimiento de tiempo de acceso, se actualiza una propiedad de blob denominada LastAccessTime cuando se lee o escribe un blob. Las operaciones Get Blob y Put Blob son operaciones de acceso y actualizarán el tiempo de acceso de un blob. Sin embargo, Get Blob Properties, Get Blob Metadata y Get Blob Tags no son operaciones de acceso. Esas operaciones no actualizarán la hora de acceso de un blob.

Si aplica la condición de ejecución daysAfterLastAccessTimeGreaterThan a una directiva, LastAccessTime se usa para determinar si se cumple esa condición.

Si aplica la condición de ejecución daysAfterLastAccessTimeGreaterThan a una directiva, pero no habilitó el seguimiento de tiempo de acceso, entonces el LastAccessTime no se usará. La fecha en que se ha habilitado la directiva de ciclo de vida se utiliza en su lugar. De hecho, la fecha en que se ha habilitado la directiva de ciclo de vida se usa en cualquier situación en la que la LastAccessTime propiedad del blob sea un valor NULL. Esto puede ocurrir incluso si ha habilitado el seguimiento del tiempo de acceso en los casos en los que no se ha accedido a un blob desde que se ha habilitado el seguimiento.

Nota:

Para reducir el efecto en la latencia del acceso de lectura, solo la primera lectura de las últimas 24 horas actualiza la hora del último acceso. Las lecturas posteriores en el mismo período de 24 horas no la actualizan. Si se modifica un blob entre lecturas, la hora del último acceso es la más reciente de los dos valores.

Para obtener información sobre cómo habilitar el seguimiento de tiempo de acceso, consulte Opcionalmente, habilitar el seguimiento de tiempo de acceso.

Pasos siguientes