Descripción general de la invalidación de caché

En esta página, se proporciona una descripción general de la invalidación de caché de Cloud CDN.

¿Qué es la invalidación de caché?

Una vez que un objeto se almacena en caché, por lo general, permanece en la caché hasta su vencimiento o expulsión a fin de dejar lugar para el contenido nuevo. Puedes controlar el plazo de vencimiento a través de encabezados HTTP estándares.

Te recomendamos que quites un objeto de la caché antes de su plazo de vencimiento normal. Puedes hacer que la caché ignore un objeto o un conjunto de objetos mediante la solicitud de una invalidación de caché.

Es importante asegurarse de que el servidor de origen muestre el contenido correcto antes de solicitar la invalidación de la caché. De lo contrario, cuando Cloud CDN vuelva a solicitar el contenido, podría almacenar en caché el contenido incorrecto.

Patrones de ruta de acceso

Cada solicitud de invalidación especifica un patrón de ruta de acceso que identifica el objeto o el conjunto de objetos que debe invalidarse. El patrón de ruta de acceso puede ser una ruta específica, como /cat.jpg, o una estructura de directorio completa, como /pictures/*. Las siguientes reglas se aplican a los patrones de ruta de acceso:

  • El patrón de ruta de acceso debe comenzar con /.
  • No puede incluir ? ni #.
  • No debe incluir un *, excepto como el carácter final después de una /.
  • Si termina con /*, la string anterior es un prefijo, y todos los objetos cuyas rutas de acceso comienzan con ese prefijo se invalidan.

El patrón de la ruta de acceso se compara con el componente de la ruta de la URL, que es todo lo que existe entre el nombre del host y cualquier ? o # que pueda estar presente.

Si tienes URL que contienen una cadena de consulta, por ejemplo, /images.php?image=fred.png, no puedes invalidar de manera selectiva los objetos que difieren solo por la cadena de consulta. Por ejemplo, si tienes dos imágenes, /images.php?image=fred.png y /images.php?image=barney.png, no puedes invalidar solo fred.png. Para invalidar todas las imágenes que entrega images.php, usa /images.php como patrón de ruta de acceso.

Invalida la caché para un solo host

Por lo general, la invalidación de la caché invalida la ruta de acceso para los nombres de host. Por ejemplo, si example.com y example2.com apuntan al mismo balanceador de cargas y, luego, invalidas /images/cat.jpg; example.com/images/cat.jpg y example2.com/images/cat.jpg se invalidarán.

Puedes restringir la invalidación a solo uno de los hosts; para ello, agrega la marca --host al comando.

Limitaciones

La invalidación está diseñada para usarse en circunstancias excepcionales, no como parte del flujo de trabajo normal. Las invalidaciones no afectan a las copias almacenadas en las cachés de navegadores web ni en las cachés que operan los Proveedores de servicios de Internet de terceros.

Como alternativa a las invalidaciones de rutina, puedes establecer de manera proactiva plazos de vencimiento adecuados en las respuestas o usar URL diferentes para las distintas versiones del contenido. Para obtener más información sobre los plazos de vencimiento, consulta Plazos de vencimiento y solicitudes de validación.

Existen limitaciones para las invalidaciones. Puedes enviar una invalidación por minuto como máximo. Sin embargo, una invalidación puede ser de cualquier tamaño. La invalidación de /images/fred.png cuenta como una invalidación. La invalidación de /images/* también cuenta como una invalidación.

Solo realiza las invalidaciones que sean necesarias, ya que realizar demasiadas invalidaciones podría provocar que una gran cantidad de solicitudes que las memorias caché entregaron lleguen a las instancias o los depósitos de forma repentina.

Debido a que Cloud CDN es un sistema distribuido, podría informar que una invalidación se completó aunque una pequeña cantidad de cachés aún no haya procesado la solicitud de invalidación. Esta situación es poco frecuente y se corrige de forma automática.

Cómo solicitar la invalidación de la caché con la referencia de servicio entre proyectos de VPC compartida

De forma predeterminada, cuando usas un balanceador de cargas de aplicaciones externo global con referencia de servicios entre proyectos de VPC compartida, los administradores del proyecto de servicio no tendrán los permisos necesarios para solicitar invalidaciones de caché. Esto se debe a que la invalidación de caché se configura en el proyecto de frontend (es decir, el proyecto que tiene la regla de reenvío, el proxy de destino y el mapa de URL del balanceador de cargas). Por lo tanto, las invalidaciones de caché solo pueden emitirse las principales que tienen los roles de IAM para configurar los recursos relacionados con el balanceador de cargas en los proyectos de frontend (por ejemplo, el rol de administrador de red de Compute).

Los administradores de servicios, que controlan el aprovisionamiento de los servicios de backend en un proyecto separado, deberán trabajar con el administrador del balanceador de cargas del proyecto de frontend para emitir la invalidación de caché para sus servicios entre proyectos.

¿Qué sigue?