2012-01-06 6 views
9

Tengo un contenido que rara vez cambia y que deseo publicar sobre Azure CDN por motivos de rendimiento. Sin embargo, cuando el contenido cambia, es importante que los datos actualizados estén disponibles de inmediato. Idealmente, podría establecer un TTL largo, pero luego le diría proactivamente a la CDN que caduque el contenido cuando lo actualice. ¿Cómo puedo lograr esto? No hay API de invalidación o purga de caché en este momento, y prefiero no configurar un TTL corto.¿Cómo fuerzo el contenido de Azure CDN a ser depurado o invalidado?

Respuesta

8

No hay API para invalidar un CDN de Azure.

Solución:

  1. Habilitar "cadena de consulta de estado" en el CDN en el portal de Azure. Luego puede agregar un nuevo nombre de cadena de consulta y un valor aleatorio, por ejemplo. /images/background.png?v=1234

  2. Cargue y cambie el nombre del archivo nuevo con una marca de tiempo o un valor aleatorio. por ejemplo: /images/background.20140917225200.png

  3. Establezca un encabezado de caché más corto y espere a que caduque. Aquí hay un artículo del equipo de Azure http://msdn.microsoft.com/en-us/library/azure/gg680306.aspx

+2

Gracias, eso es básicamente la ruta que tomé, tenemos una DataVersion que incrementamos cada vez que cambia, y los clientes hacen una llamada REST Out of Bend para encontrar la última versión de DataVersion, luego solicitan un archivo que contenga eso en el nombre de archivo el CDN. –

+2

Hemos tenido el mismo problema con los archivos de publicación de Azure después de que hayan cambiado pero antes del vencimiento de TTL. Cambiamos a Amazon S3, permite invalidaciones (tenga en cuenta que cuesta dinero). Además, en nuestro caso, sirve mejor a Asia, Australia y Sudamérica. –

0

No se puede forzar la purga de CDN.

La mejor práctica es agregar información de la versión/fecha a su nombre de archivo, y diseñar su aplicación para obtener dinámicamente el nombre del archivo actual.

Para fotografías de productos como ejemplo, agregue la versión al nombre de blob, almacene el nombre de blob en una tabla y luego sirva un enlace al nombre de la tabla, en lugar de codificar el nombre de archivo.

De esta manera puede establecer el vencimiento máximo en los encabezados de caché, y Azure simplemente limpiará el contenido obsoleto cuando lo necesite.

9

En diciembre de 2015, el equipo de Azure agregó la capacidad de actualizar o purgar el CDN a través de API REST (https://msdn.microsoft.com/en-us/library/mt634451.aspx). Al principio, esta función solo está disponible para puntos finales creados con el nuevo Azure Portal (http://portal.azure.com), sin embargo, las CDN creadas con la superficie de administración anterior se migrarán a principios de 2016 (https://feedback.azure.com/forums/169397-cdn/suggestions/556307-ability-to-force-the-cdn-to-refresh-any-cached-con).

+0

¿Va a purgar endpoints enteros a la vez, o puede purgar blobs individuales? – jz87

+0

@ jz87: puede purgar rutas de contenido específicas (La ruta al contenido que se va a purgar o cargar) con la nueva API. Consulte https://msdn.microsoft.com/en-us/library/mt634451.aspx – Alex

Cuestiones relacionadas