Netlify 从一开始就提供的关键功能之一就是能够进行原子部署,这可确保您的站点在上传新部署时永远不会处于不一致的状态。
原子部署让开发人员能够专注于重要的事情,使他们能够构建自己的网站,
而无需考虑哪些文件已更改或哪些文件需要更新。 Netlify 通过使用特定于您的站点和上下文的内部缓存 ID 来标记每个缓存对象来实现此目的,以便该站点和上下文的新部署将导致所有标记有该 ID 的对 台湾电话号 象在 Netlify Edge 上失效。
此外,去年 10 月我们发布了缓存标签。使用缓存标签,您可以指定 Cache-Tag 或 Netlify-Cache-Tag 响应标头,然后使用我们的清除 API 在部署之间使 Netlify Edge 中具有给定标签的任何对象失效,而无需等待对象的生命周期到期。缓存标签是一种在不失去原子部署保证的情况下按需使内容失效的好方法。
但是,有时您不希望缓存的内容在新部署中失效。例如,您可能有一个代理到具有每周发布周期的 CMS 服务器的站点。在这种情况下,版本之间发生的任何部署都会使缓存的 CMS 内容失效,并导致 Netlify Edge 重新验证它。
这可能会影响性能、增加带宽支出,并对 CMS 服务器造成不必要的压力。
Netlify-Cache-ID 提供了一种在 Netlify Edge 上标记缓存内容的方法,使其在部署中保持不变,同时仍然能够几乎立即、全局地进行精细清除。
Netlify 现在支持 Netlify-Cache-ID 响应标头,允许您将一个对象(或缓存对象的集合)关联到一个可以在整个 Netlify 边缘网络上同时失效的 ID。部署站点时,与 Netlify-Cache-ID 关联的对象不会失效,但您仍然可以灵活地决定是否以及何时应缓存它们。
以下是来自“产品 API”的代理响应示例,该响应将在 Netlify Edge 上缓存长达一年。内容使用 Netlify-Cache-ID 和 ProductID-1 和产品来标识,这使您能够以不同的粒度级别标识内容。 Netlify Edge 将使用这些值作为缓存 ID,而不是内部缓存 ID,并且内容不会在新部署中失效。
与 Cache-Tag 和 Netlify-Cache-Tag 类似,可以使用 Netlify 的清除 API 清除用此标头标记的内容。 Netlify-Cache-ID 值会自动注册为缓存标记,您可以使用它来按标记清除对象。以下函数使用 Netlify 的改进计算功能并调用清除 API 来清除所有标记有产品的网站内容,同时将其余网站的内容缓存在 CDN 上。