Establecimiento de una directiva de retención para manifiestos sin etiqueta

Azure Container Registry ofrece la opción de establecer una directiva de retención para los manifiestos de imagen almacenados que no tienen etiquetas asociadas (manifiestos sin etiqueta). Cuando se habilita una directiva de retención, los manifiestos sin etiqueta del registro se eliminan automáticamente después de un número de días establecido. Esta característica evita que el registro se llene con artefactos que no son necesarios y ayuda a ahorrar en los costos de almacenamiento.

Puede usar Azure Cloud Shell o una instalación local de la CLI de Azure para ejecutar los ejemplos de comando de este artículo. Si quiere usarla de forma local, necesitará la versión 2.0.74 u otra posterior. Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

Una directiva de retención para los manifiestos sin etiquetar es actualmente una característica en vista previa (GB) de las instancias Prémium de Azure Container Registry. Para obtener información sobre los niveles de servicio de registro, consulte SKU de Azure Container Registry.

Advertencia

Establezca una directiva de retención con cuidado: los datos de imagen eliminados son IRRECUPERABLES. Si tiene sistemas que extraen imágenes por hash de manifiesto (en lugar de por nombre de la imagen), no debe establecer una política de retención para los manifiestos sin etiqueta. La eliminación de imágenes sin etiqueta impedirá que esos sistemas extraigan las imágenes del registro. En lugar de extraer por manifiesto, considere la posibilidad de adoptar un esquema de etiquetado único, un procedimiento recomendado.

Acerca de la directiva de retención

Azure Container Registry hace referencia al recuento de manifiestos en el registro. Cuando un manifiesto no está etiquetado, comprueba la directiva de retención. Si se habilita una directiva de retención, se pone en cola una operación de eliminación de manifiestos, con una fecha concreta y según el número de días establecido en la directiva.

Un trabajo de administración de colas independiente se encarga de procesar constantemente los mensajes, escalándolos según sea necesario. Por ejemplo, supongamos que ha etiquetado dos manifiestos con una hora de diferencia y en un registro con una directiva de retención de 30 días. Esos dos mensajes se pondrán en cola. A continuación, 30 días después y, aproximadamente, con una hora de diferencia, los mensajes se recuperan de la cola y se procesan, suponiendo que la directiva aún está en vigor.

Si el atributo delete-enabled de un manifiesto sin etiquetas se establece como false, el manifiesto está bloqueado y la directiva no lo elimina.

Importante

La directiva de retención se aplica solo a los manifiestos sin etiquetas con marcas de tiempo después de que se habilite la directiva. Los manifiestos si etiqueta en el registro con marcas de tiempo anteriores no están sujetos a la directiva. Para ver otras opciones para eliminar datos de imágenes, consulte los ejemplos de Eliminación de imágenes de contenedor en Azure Container Registry con la CLI de Azure.

Establecimiento de una directiva de retención (CLI)

En el ejemplo siguiente se muestra cómo usar la CLI de Azure para establecer una directiva de retención para manifiestos sin etiqueta de un registro.

Habilitación de una directiva de retención

De forma predeterminada, no se establece ninguna directiva de retención en un registro de contenedor. Para establecer o actualizar una directiva de retención, ejecute el comando az acr config retention update en la CLI de Azure. Puede especificar un número de días entre 0 y 365 para conservar los manifiestos sin etiqueta. Si no especifica un número de días, el comando establece un valor predeterminado de 7 días. Después del período de retención, se eliminarán automáticamente todos los manifiestos sin etiqueta del registro.

En el ejemplo siguiente se establece una directiva de retención de 30 días para los manifiestos sin etiqueta del registro myregistry:

az acr config retention update --registry myregistry --status enabled --days 30 --type UntaggedManifests

En el ejemplo siguiente se establece una directiva para eliminar cualquier manifiesto del registro en cuanto no esté etiquetado. Para crear esta directiva, establezca un período de retención de 0 días.

az acr config retention update \
  --registry myregistry --status enabled \
  --days 0 --type UntaggedManifests

Validar una directiva de retención

Si habilita la directiva anterior con un período de retención de 0 días, puede comprobar rápidamente si se eliminan los manifiestos sin etiquetar:

  1. Inserte una imagen de prueba hello-world:latest en su registro o sustituya otra imagen de prueba de su elección.
  2. Desetiquete la imagen hello-world:latest; por ejemplo, use el comando az acr repository untag. El manifiesto sin etiquetar permanecerá en el registro.
    az acr repository untag \
      --name myregistry --image hello-world:latest
    
  3. A continuación, se elimina el manifiesto sin etiquetar en unos segundos. Puede comprobar la eliminación enumerando manifiestos en el repositorio; por ejemplo, puede usar para ello el comando az acr manifest list-metadata. Si la imagen de prueba era la única del repositorio, se elimina el repositorio en sí.

Administración de una directiva de retención

Para mostrar la directiva de retención establecida en un registro, ejecute el comando az acr config retention show:

az acr config retention show --registry myregistry

Para deshabilitar una directiva de retención de un registro, ejecute el comando az acr config retention update y establezca --status disabled:

az acr config retention update \
  --registry myregistry --status disabled \
  --type UntaggedManifests

Establecimiento de una directiva de retención (portal)

También puede establecer la directiva de retención de un registro en Azure Portal.

Habilitación de una directiva de retención

  1. Navegue a la instancia de Azure Container Registry. En Directivas, seleccione Retención (versión preliminar).
  2. En Estado, seleccione Habilitado.
  3. Seleccione un número de días entre 0 y 365 para conservar los manifiestos sin etiqueta. Seleccione Guardar.

Habilitación de una directiva de retención en Azure Portal

Deshabilitación de una directiva de retención

  1. Navegue a la instancia de Azure Container Registry. En Directivas, seleccione Retención (versión preliminar).
  2. En Estado, seleccione Deshabilitado. Seleccione Guardar.

Pasos siguientes