Vercel добавил инвалидацию CDN-кэша по исходному изображению: как это работает
Vercel представил новую функцию для управления кэшем изображений: инвалидацию CDN-кэша по исходному изображению. Теперь разработчики могут пометить все трансформированные версии изображения как устаревшие, указав только исходный файл. Это упрощает обновление графического контента на сайтах и в прило

Vercel представил новую функцию для управления кэшем изображений: инвалидацию CDN-кэша по исходному изображению. Теперь разработчики могут пометить все трансформированные версии изображения как устаревшие, указав только исходный файл. Это упрощает обновление графического контента на сайтах и в приложениях, особенно когда исходное изображение меняется, а его производные (сжатые, ресайзнутые, конвертированные в WebP или AVIF) остаются в кэше.
Как работает инвалидация по исходному изображению
Динамическая оптимизация изображений на Vercel преобразует исходные файлы для уменьшения размера при сохранении высокого качества. Когда разработчик обновляет исходное изображение, все его производные версии могут оставаться в CDN-кэше, что приводит к показу устаревшего контента. Новая функция решает эту проблему: при инвалидации по исходному изображению Vercel помечает все связанные трансформированные версии как устаревшие. При следующем запросе пользователь мгновенно получает старый контент из кэша, а в фоне запускается ревалидация — создание новой версии. Таким образом, задержка для пользователя отсутствует.
Почему это важно для разработчиков?
Ручная очистка кэша по каждому URL производного изображения — трудоёмкая задача, особенно на сайтах с тысячами картинок. Новая функция автоматизирует этот процесс: достаточно указать исходный файл, и система сама найдёт все его варианты. Это экономит время и снижает риск ошибок. Кроме того, инвалидация работает без простоев: пользователи продолжают получать контент из кэша, пока обновлённая версия генерируется в фоне.
Предыстория и контекст
Vercel — платформа для развертывания фронтенд-приложений и бессерверных функций. Её сервис Image Optimization входит в тарифные планы и позволяет автоматически оптимизировать изображения под разные устройства и браузеры. Ранее для обновления кэша приходилось либо ждать естественного истечения срока давности (TTL), либо использовать REST API для массовой очистки по URL. Инвалидация по исходному изображению — более точный и эффективный подход: разработчик указывает один файл, а система сама находит все его производные. Это особенно актуально для сайтов с большим количеством изображений, где ручная очистка каждого варианта была бы трудоёмкой.
Какие проблемы решает новая функция?
Основная проблема — несоответствие контента. Если на сайте интернет-магазина обновляется фото товара, но в кэше остаётся старая версия, пользователи видят устаревшее изображение. Это снижает доверие и может привести к потере продаж. Инвалидация по исходному изображению гарантирует, что все версии (включая WebP, AVIF, уменьшенные копии) будут обновлены одновременно. Другая проблема — избыточное использование API для массовой очистки. Новая функция сокращает количество запросов и упрощает интеграцию с CI/CD.
Чем отличается от обычной очистки кэша?
Обычная очистка кэша по URL удаляет конкретные файлы. Инвалидация по исходному изображению работает на уровне логической связи: вы указываете исходник, а система помечает все его производные. Кроме того, Vercel предлагает возможность удаления кэша по исходному изображению — это жёсткая операция, которая полностью стирает кэшированные версии. Разработчикам рекомендуется использовать её с осторожностью, так как при удалении кэша следующий запрос может привести к задержке, если оригинал недоступен. Инвалидация же безопаснее: она сохраняет быстрый ответ пользователю.
Когда использовать удаление, а когда инвалидацию?
Удаление кэша (purge) стоит применять, если исходное изображение было удалено или заменено на совершенно другое. Инвалидация (invalidation) подходит для случаев, когда исходник обновлён, но его URL остался тем же. В большинстве сценариев инвалидация предпочтительнее, так как она не вызывает задержек у пользователей. Разработчикам следует тщательно выбирать метод в зависимости от контекста обновления.
Способы вызова инвалидации
Vercel предоставляет несколько способов воспользоваться новой функцией. Через панель управления в разделе настроек проекта можно вручную указать исходное изображение. Для автоматизации доступны Vercel CLI (команда vercel image:invalidate), Function API (вызов из бессерверных функций) и REST API (интеграция с CI/CD). Таким образом, разработчики могут включить инвалидацию в пайплайны деплоя или триггерить её при обновлении контента через CMS.
Как интегрировать инвалидацию в CI/CD?
Для автоматической инвалидации при каждом деплое можно добавить шаг в конфигурацию сборки. Например, после загрузки новых изображений в репозиторий выполняется команда vercel image:invalidate --src /images/product.jpg. Это гарантирует, что после деплоя все пользователи увидят актуальные версии. Также можно настроить вебхуки из CMS: при изменении медиафайла отправляется запрос к REST API Vercel для инвалидации соответствующего исходника.
Кого затронет и как
Функция доступна на всех тарифных планах, использующих новое ценообразование Image Optimization. Разработчики и команды, активно использующие динамическую оптимизацию изображений, получат более гибкий контроль над кэшем. Для крупных проектов с частым обновлением контента (например, интернет-магазины, новостные порталы, медиа) это снизит риск показа устаревших изображений. Российские и СНГ-разработчики, использующие Vercel для хостинга, также могут внедрить эту функцию в свои проекты. Однако стоит учитывать, что Vercel не имеет дата-центров в России, поэтому скорость загрузки может быть ниже для пользователей из региона.
Есть ли ограничения?
Функция работает только для изображений, оптимизированных через сервис Image Optimization. Если вы используете сторонний CDN или собственную обработку, инвалидация не применима. Кроме того, для вызова через API требуется аутентификация и соответствующие права доступа. В документации Vercel указаны лимиты на количество запросов инвалидации в минуту, поэтому для массовых операций стоит продумать стратегию.
Что будет дальше
Ожидается, что Vercel продолжит развивать систему управления кэшем. Возможно появление групповых операций (инвалидация по маске пути) или интеграция с вебхуками для автоматической очистки при изменении файлов в репозитории. Сама функция уже доступна в продакшене, и разработчики могут начать её использовать. Vercel рекомендует ознакомиться с документацией по инвалидации кэша для детального изучения API.
Какие альтернативы существуют?
Другие платформы, такие как Cloudflare, Netlify и AWS CloudFront, также предлагают механизмы инвалидации кэша. Однако Vercel выделяется тем, что инвалидация привязана к исходному файлу, а не к URL. Это упрощает управление для разработчиков, работающих с динамической оптимизацией. Для проектов, уже использующих Vercel, новая функция — естественное улучшение без необходимости менять провайдера.
Итог
Новая функция инвалидации CDN-кэша по исходному изображению от Vercel — полезный инструмент для поддержания актуальности оптимизированных изображений без потери производительности. Она упрощает управление кэшем и снижает риск показа устаревшего контента. Разработчикам стоит внедрить её в свои проекты для повышения качества пользовательского опыта.