Читать 8 мин

Предпросмотр области очистки CDN для ИИ-агентов

Предпросмотр области очистки CDN показывает хост, путь, теги и ожидаемый охват до адресной инвалидации или полной очистки.

Предпросмотр области очистки CDN для ИИ-агентов

ИИ-агент не должен просить разрешение «очистить кеш CDN». Такая фраза скрывает единственные сведения, которые нужны оператору перед подтверждением: какой хост, какой путь, сколько тегов и какой объем кешированного контента может перестать обслуживаться.

Полезный предварительный просмотр области очистки CDN превращает итоговый запрос в краткое описание радиуса воздействия. Он также должен относить адресную инвалидацию и полную очистку к разным классам риска. Я видел, как широкая очистка превращала обычный выпуск в инцидент с нагрузкой на источник, потому что в окне подтверждения подстановочный знак выглядел как один безобидный путь. Синтаксически запрос был маленьким. Его последствия маленькими не были.

Правильная схема не ограничивается окном подтверждения. Она нормализует запрос к провайдеру, классифицирует область, честно оценивает охват с учетом неопределенности и привязывает разрешение оператора к точным параметрам. Если после подтверждения агент меняет хост, путь, тег, среду или режим очистки, шлюз должен запросить разрешение заново.

Запросу на очистку нужна модель воздействия

Область очистки CDN включает все кешированные представления, которые провайдер может инвалидировать, а не количество строк в API-запросе. Один подстановочный знак может охватить весь дистрибутив. Один тег может относиться к тысячам не связанных между собой URL. У одного URL может быть несколько кешированных вариантов, поскольку кеш различается по строкам запроса, заголовкам, cookie, типу устройства или языку.

Команды часто смешивают два разных понятия: размер запроса и размер его эффекта. Документация Amazon CloudFront прямо показывает это несоответствие. Путь инвалидации с подстановочным знаком считается одним отправленным путем, даже если он инвалидирует тысячи файлов. Единицы тарификации описывают запрос, а не его охват. Карточка подтверждения с текстом «1 путь», которая не показывает /*, сообщает технически верный, но бесполезный для эксплуатации факт.

Описывайте предлагаемое действие по четырем осям:

  • Цель: учетная запись, сервис или дистрибутив CDN, среда и имя хоста.
  • Селектор: точный URL, префикс пути, подстановочный знак, тег кеша, суррогатный ключ или флаг полной очистки провайдера.
  • Семантика: как сочетаются селекторы, какие варианты они охватывают и инвалидирует ли провайдер кешированные объекты или удаляет их.
  • Последствия: оценка количества затронутых объектов или запросов, ожидаемое поведение при повторном заполнении и возможность продолжать отдавать устаревший контент.

Эта модель должна находиться в шлюзе исполнения, рядом с учетными данными и адаптером провайдера. Не позволяйте агенту самому назначать уровень риска. Агент может предложить очистку, но ее смысл должен вычислять код, который понимает API провайдера.

Разделение необходимо из-за несовместимой терминологии провайдеров. Fastly называет метку группировки surrogate key. Google Cloud и Akamai используют теги кеша. Cloudflare поддерживает теги, имена хостов, префиксы URL, отдельные файлы и полную очистку. CloudFront поддерживает пути, подстановочные знаки и инвалидацию по тегам кеша. Универсальный инструмент агента может предлагать аккуратный интерфейс, но предварительный просмотр обязан сохранять реальные правила сопоставления провайдера.

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

Адресная инвалидация и полная очистка требуют разных действий

Адресная инвалидация выбирает контент по точному URL, ограниченному пути или префиксу, одному или нескольким тегам либо пересечению поддерживаемых селекторов. Полная очистка отбрасывает полезное состояние целого сервиса, зоны или дистрибутива. Если представить их двумя значениями одного раскрывающегося списка, разница покажется незначительной.

Классификация должна учитывать эффект, а не имя конечной точки. Все следующие запросы следует помечать как полную очистку:

  • Явный флаг провайдера purge_everything.
  • Путь дистрибутива /*.
  • Подстановочный знак или префикс, который после нормализации охватывает корень.
  • Тег, который по локальному соглашению назначается каждому ответу сервиса.
  • Список селекторов, объединение которых охватывает весь настроенный набор хостов.

Последние два случая требуют локальных метаданных. Провайдер может не знать, что release-current присутствует на каждом объекте сервиса, но система развертывания, назначающая этот тег, может сохранить такой факт. Если шлюз не способен доказать ограниченность селектора, он должен указать неизвестный охват и повысить уровень подтверждения. Неизвестное значение допустимо. Молчаливо считать его малым недопустимо.

Адресная операция не обязательно безопасна. Префикс /products/ в крупном магазине может охватить большую часть трафика, а тег tenant:42 может распространяться на несколько хостов. Метка означает лишь, что запрос выражает границу, которую можно показать. Оператору все равно нужна оценка содержимого внутри этой границы.

Для полной очистки нужен отдельный визуальный и технический поток. Требуйте явное имя действия, например purge_all, а не пустой селектор, который адаптер трактует как все содержимое. В адресном режиме отклоняйте пустые поля хоста и пути. Оператор должен отдельно подтвердить производственную среду и весь именованный сервис как цели. Общее разрешение сеанса не должно поглощать это действие только потому, что тот же агент ранее без проблем очистил один URL.

Здесь я не согласен с популярной рекомендацией: «Просто подтверждайте каждую очистку». Повторение приучает людей подтверждать форму окна, не читая содержимое. Инвалидация одного файла во время выпуска и очистка всего дистрибутива не должны показывать одинаковую кнопку, предупреждение или этап аутентификации. Участие человека помогает только тогда, когда интерфейс ясно показывает существенную разницу.

Хост, путь и количество тегов должны быть над кнопкой

Карточка подтверждения должна начинаться с фактической цели и области, поскольку операторы часто читают в спешке. Сначала покажите провайдера и производственную среду, затем имя хоста, нормализованный путь, количество тегов, ожидаемый охват и класс операции. Вспомогательные сведения можно раскрывать ниже, но факты, влияющие на решение, должны быть видны без нажатия.

Независимый от провайдера предварительный просмотр может иметь такую структуру:

{
  "operation": "targeted_invalidation",
  "provider": "example-cdn",
  "environment": "production",
  "hosts": ["assets.example.test"],
  "paths": ["/releases/2026-07-24/*"],
  "tag_count": 2,
  "tag_samples": ["release:842", "asset:bundle"],
  "selector_logic": "host AND path AND (tag OR tag)",
  "estimated_reach": {
    "objects": {"low": 1600, "high": 2300},
    "method": "tag-index snapshot",
    "observed_at": "2026-07-24T14:31:08Z"
  },
  "refill": "origin requests expected on subsequent misses"
}

Эти числа приведены для примера и не обещают, что CDN способен пересчитать все активные объекты на периферийных узлах. Важна форма результата: диапазон, метод расчета и время наблюдения. Если у оценщика нет обоснованных входных данных, верните "objects": "unknown" и объясните причину.

Если хостов мало, показывайте их все. Для длинного списка укажите количество и несколько первых отсортированных имен, а также явную возможность просмотреть остальные. Никогда не сворачивайте смешанный список производственных и тестовых хостов в надпись «12 хостов». Границы сред сильнее влияют на решение, чем количество.

Для пути нужно показать нормализованное значение и правило сопоставления. /picture* и /picture/* в Google Cloud CDN обозначают разные селекторы: первый также совпадет с /pictures/dog.jpg и /picture1.jpg, а второй останется внутри каталога. CloudFront распознает подстановочный знак, только если он стоит в конце; звездочка в другом месте считается обычным символом. Если предварительный просмотр печатает только исходные символы, оператору приходится вспоминать грамматику провайдера в самый неподходящий момент.

Количество тегов тоже требует точной формулировки. «2 тега» означает два селектора, а не два кешированных объекта. Показывайте настоящие теги, если в них нет конфиденциальных данных арендатора; иначе используйте устойчивые скрытые метки и защищенный просмотр подробностей. Укажите, объединяются ли теги через OR или AND. Google Cloud CDN применяет OR к нескольким тегам одного запроса, а сочетание фильтров тегов с хостом и путем сужает результат через пересечение. Одна короткая строка логики часто объясняет почти весь радиус воздействия.

Оценка охвата должна учитывать то, что CDN не считает

Оценка охвата должна отвечать на вопрос «какая доля состояния кеша может измениться», не выдавая распределенный кеш за базу учета. Объекты появляются и исчезают на периферийных узлах из-за истечения срока, вытеснения, регионального спроса и фонового заполнения. Многие API очистки CDN принимают селектор, но не возвращают предварительное количество.

Используйте лучшие доступные сведения в фиксированном порядке. Свежие данные провайдера надежнее всего, если API их предоставляет. Затем идет индекс тегов системы развертывания, который фиксирует назначенные каждому URL теги. После него используйте журналы запросов или телеметрию статуса кеша за явно указанный период. Каталог настроенных маршрутов может дать приблизительную верхнюю границу. При отсутствии всех этих источников сообщите неизвестное значение.

Каждая оценка должна содержать четыре свойства:

  • Единицу измерения, например кешированные объекты, варианты URL или недавние запросы с попаданием в кеш.
  • Точечное значение или диапазон, но не число без подписи.
  • Источник и время наблюдения.
  • Метку уверенности, которую код вычисляет по типу и возрасту источника.

Не превращайте недавний объем запросов в количество объектов. Фраза «за последний час этому префиксу соответствовало около 80 000 запросов с попаданием в кеш» полезна для оценки воздействия, но не означает инвалидацию 80 000 объектов. При наличии данных покажите обе метрики: оценка объектов описывает состояние кеша, а недавние попадания показывают вероятную нагрузку от повторного заполнения и влияние на пользователей.

Даже для точного URL охват может превышать единицу. В документации CloudFront сказано, что инвалидация файла также инвалидирует кешированные варианты, зависящие от передаваемых cookie или заголовков. Поведение строк запроса зависит от конфигурации и селектора. Если именно так работает запрос, в предварительном просмотре следует написать «1 URL, все варианты cookie и заголовков». Простое количество в один объект скроет важную часть.

Для тегов оценивайте объединение, а не сумму. Если release:842 охватывает 1 700 объектов, а asset:bundle охватывает 900, пересекающиеся объекты учитываются один раз. Когда провайдер применяет теги через OR, сложение двух значений может завысить охват. Для порога подтверждения завышение безопаснее занижения, но оно все равно снижает доверие. Рассчитывайте настоящее объединение, если локальный индекс это позволяет, или обозначайте сумму как верхнюю границу.

Для полной очистки не тратьте время на выдуманную точность. Напишите «весь производственный сервис», покажите количество настроенных хостов и добавьте недавний объем попаданий в кеш как показатель нагрузки на источник. Класс действия уже сообщает оператору границу кеша. Ложная точность создает видимость осведомленности, но не помогает принять решение.

Предварительный просмотр должен показывать последствия заполнения

Проследите весь запуск агента
Sessions связывает очистку с процессом агента, который ее запросил.

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

Документация Google Cloud рекомендует инвалидировать только необходимое, потому что слишком широкая операция может направить на экземпляры или хранилища запросы, ранее обслуживавшиеся кешем. Она также советует сначала убедиться, что источник уже отдает правильный контент, иначе CDN может снова закешировать ошибочный ответ. Второй пункт стоит сделать обязательным условием рабочего процесса агента: проверьте новый объект на источнике до предложения очистки.

Fastly проводит еще одно полезное различие между жесткой и мягкой очисткой. После жесткой очистки кешированный контент больше нельзя использовать для следующих обращений. Мягкая очистка помечает его устаревшим, и в зависимости от настроек кеш может продолжать отдавать его во время повторной проверки. Fastly не поддерживает мягкий режим для полной очистки. Подтверждение с одним словом «очистить» скрывает эту эксплуатационную разницу.

Поэтому предварительный просмотр должен включать:

  • Тип операции: жесткая инвалидация, мягкая инвалидация или удаление со специфической для провайдера семантикой.
  • Возможность отдавать устаревший контент во время обновления.
  • Недавнюю частоту запросов с попаданием в кеш для выбранной области, если она доступна.
  • Источник или группу серверов, которые получат промахи.
  • Результат и время проверки готовности источника.

Не обещайте, что «на источник поступит 2 300 запросов». Объединение запросов, региональное распределение, кеши браузеров, защитные уровни и свежие заполнения влияют на фактическую нагрузку. Используйте измеренный недавний трафик и описывайте его честно: «За предыдущие 15 минут выбранная область обслужила 46 000 попаданий в кеш». Это дает оператору больше информации, чем выдуманный прогноз.

Агент не должен сам запускать проверку готовности через неограниченную оболочку и пересказывать результат. Шлюз должен выполнить определенную проверку целевого источника, записать статус ответа и версию контента, а затем приложить эти данные к предварительному просмотру. Иначе скомпрометированная инструкция может заявить о готовности источника в том же разговоре, где запрашивается разрешение.

Нормализация устраняет разрыв между отображением и исполнением

Шлюз должен подтвердить каноническое действие, а затем исполнить именно его. Если интерфейс показывает одно представление, а адаптер провайдера отправляет другое, подтверждение превращается в формальность.

Канонизация начинается с типизированных полей. Разделите hosts, paths, tags, purge_all, soft, provider, service_id и environment. Не принимайте произвольную команду curl как объект подтверждения. Адаптер может в итоге сформировать HTTP-запрос, но код правил и отображения должен работать с проверенными данными.

Затем до классификации примените правила провайдера. Приведите имена хостов к нижнему регистру, удалите завершающую точку DNS, отклоните встроенные учетные данные, разрешите псевдоним сервиса и разберите пути, не считая фрагмент частью запроса. Сохраняйте регистр пути, если CDN различает его. Используйте такую же нормализацию URL и учитывайте те же преобразования, что и провайдер. Cloudflare предупреждает, что для очистки по префиксу при наличии Transform Rules нужен преобразованный URL источника. CloudFront советует инвалидировать и исходный URI пользователя, и переписанный URI, если функция запроса меняет путь. Предварительный просмотр должен показывать оба фактических пути, а не добавлять второй незаметно.

После нормализации опасные случаи можно проверить компактной функцией:

if purge_all is true:
    return PURGE_ALL
if any normalized path covers the root:
    return PURGE_ALL
if any tag is cataloged as service_wide:
    return PURGE_ALL
if selectors are empty:
    return REJECT
return TARGETED

Адаптерам провайдеров нужны тесты, построенные по их собственной грамматике. Включите корневые пути, кодированные разделители, повторяющиеся и завершающие косые черты, расположение подстановочных знаков, пустые массивы, смешанные хосты, строки запроса и переписанные URL. Тесты свойств могут проверять, что нормализация никогда не расширяет область исполнения по сравнению с отображенной областью. Регрессионные образцы должны хранить нормализованный предварительный просмотр рядом с точным исходящим запросом.

Наконец, вычислите дайджест канонического действия и значимых для предварительного просмотра метаданных. Запись о подтверждении должна включать оператора, процесс агента, имя инструмента, нормализованные параметры, среду, время оценки, дайджест и срок действия. AI Agent Security Cheat Sheet от OWASP рекомендует привязывать разрешение к точному действию с указанием оператора, инструмента, цели, нормализованных параметров, времени и срока действия. Это правильный стандарт. Решение человека по одному дайджесту не может разрешать более поздний запрос с другим путем.

При изменении области разрешение должно закрываться

Подтверждайте каждую защищенную очистку
Требуйте разрешение при каждом использовании ключа CDN, нажатием или Touch ID.

Любое существенное изменение после предварительного просмотра должно отменять разрешение. К существенным полям относятся провайдер, учетная запись, сервис, среда, хост, путь, логика селекторов, теги, режим очистки и класс адресной или полной операции. Одно изменение оценки не всегда требует нового запроса, но переход через настроенный порог воздействия обязан его вызвать.

У разрешения должен быть короткий срок действия, поскольку состояние кеша и трафик меняются. Если агент ждет до следующего развертывания, в пути уже могут находиться другие объекты, а сведения о готовности источника могут устареть. По истечении срока нужно создать новый предварительный просмотр, а не просто запросить еще одно нажатие для старых данных.

В спецификации инструментов Model Context Protocol сказано, что приложения должны позволять человеку отклонять вызовы инструментов и показывать запросы подтверждения. Это разумно, но общего подтверждения недостаточно для разрушительных вызовов инфраструктуры. Приложение может знать имя инструмента и аргументы JSON, однако только адаптер исполнения понимает, что псевдоним провайдера указывает на производство или что / с подстановочным знаком означает все содержимое. Значимый предварительный просмотр должен находиться в компоненте, способном интерпретировать и принудительно соблюдать эти факты.

Разрешение также не должно зависеть от текста под контролем агента. Агент может указать причину, например «удалить изображение отозванного товара», но ее следует выводить во второстепенной области с явной пометкой о том, что это объяснение агента. Факты об области должны генерироваться доверенным кодом из конфигурации провайдера. Ни одно поле карточки подтверждения не должно принимать Markdown, управляющие последовательности терминала или произвольный HTML.

Операции с высоким воздействием требуют более заметного трения. Для адресной очистки точного URL может хватить одного нажатия. Для широкого префикса можно потребовать осознанного подтверждения с повтором области. Полная очистка должна требовать отдельной аутентификации и не наследовать разрешение окружающего сеанса агента. Sallyport может хранить учетные данные вне агента, показывать запрос подтверждения при каждом использовании защищенного API-ключа CDN и записывать получившийся HTTP-вызов; адаптер провайдера все равно должен предоставить нормализованные поля области, чтобы это подтверждение имело смысл.

При сбое шлюз должен закрываться. Если время работы оценщика истекло, покажите неизвестное значение, а не ноль. Если нормализация завершилась ошибкой, отклоните запрос, а не передавайте исходный ввод. Если не удалось записать журнал аудита, не исполняйте действие. Если во время отправки дайджест отличается, отбросьте разрешение и создайте новый предварительный просмотр.

Журнал аудита должен хранить решение и результат

Аудиторский след очистки должен сохранять то, что видел человек, что отправил шлюз и что вернул CDN. Запись только инструментального запроса агента не доказывает, что нормализация, подтверждение и исполнение относились к одной области.

Запишите канонический запрос, показанные поля предварительного просмотра, источник оценки, дайджест разрешения, личность подтвердившего человека, время подтверждения, время исполнения, идентификатор запроса провайдера и его ответ. Укажите, принял, завершил, частично завершил или отклонил провайдер операцию. Если провайдер позднее публикует статус, добавляйте наблюдения статуса, не переписывая исходное событие.

Храните оценку отдельно от результата. Оценка в 2 000 объектов остается оценкой, даже если провайдер вернул успешный статус. Большинство успешных ответов означает принятие селектора, а не обнаружение ровно такого числа кешированных объектов. Аудиторы должны различать утверждения из локальных выводов и сведения от CDN.

В документации CloudFront сказано, что после отправки инвалидацию нельзя отменить, поскольку периферийные узлы быстро начинают ее обрабатывать. Поэтому запись перед исполнением особенно важна. Кнопка отзыва может остановить будущий вызов агента, но не вернет очистку, уже распределенную по периферийным узлам. Интерфейс аудита не должен обещать обратное.

При расследовании на следующие вопросы нужно отвечать без чтения переписки:

  • Какой подписанный процесс агента предложил действие?
  • Какой человек подтвердил какой канонический дайджест?
  • Карточка классифицировала действие как адресную или полную очистку?
  • Какие хосты, пути и теги были показаны?
  • Какими сведениями располагал оценщик охвата в тот момент?

Объяснение агента в разговоре служит дополнительным контекстом, но не дает полномочий. Переписку можно обрезать, пересказать или исказить недоверенным содержимым. Журнал исполнения остается постоянной записью действия.

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

Подробный сбой показывает важность четырех полей

Отзовите опасный сеанс очистки
Остановите разрешенный запуск в Sessions до следующего вызова.

Представим агента, который готовит выпуск интернет-магазина. Задача требует обновить новые ресурсы товаров после развертывания. Агент видит /products/ в манифесте сборки и выбирает очистку по префиксу, потому что это проще перечисления файлов с хешами.

Исходный запрос содержит один путь. Слабое окно спрашивает «Очистить 1 путь?», и оператор подтверждает. CDN интерпретирует префикс на всех настроенных хостах, включая публичный магазин, региональный хост и хост изображений. Маршрут также содержит страницы товаров, миниатюры, фрагменты остатков и ресурсы старых выпусков. Популярные объекты одновременно исчезают из кеша, а затем заполняются из одной группы источников.

Полезный предварительный просмотр меняет решение до исполнения. Он показывает:

  1. Хост: три производственных хоста с видимыми именами.
  2. Путь: /products/*, описанный как рекурсивный префикс, а не один файл.
  3. Теги: отсутствуют, хотя у текущего выпуска есть отдельный тег.
  4. Ожидаемый охват: 38 000 вариантов URL и 1,2 миллиона недавних запросов с попаданием в кеш, причем для обеих метрик указаны источники и интервалы.

Оператор отклоняет запрос. Затем агент предлагает использовать тег выпуска только на хосте ресурсов. Шлюз находит в индексе 1 840 объектов, отмечает объединение двух тегов через OR и показывает, что операция исключает HTML товаров и ответы о запасах. Проверка источника подтверждает идентификатор текущего выпуска. Оператор разрешает действие с более узким дайджестом.

Числа в примере условны, но такой сбой встречается часто из-за кажущейся дешевизны синтаксиса префикса. Исправление не сводится к более умной инструкции для агента. Граница исполнения должна понятно показывать широкие селекторы и давать человеку более узкий вариант.

Та же схема находит другую ошибку: агент просит очистить тестовую среду, но псевдоним сервиса разрешается в производственную. Если предварительный просмотр показывает только «сервис storefront», оператор может пропустить ошибку. Если вначале указано «производство» и перечислены публичные хосты, несоответствие видно сразу.

Пример также объясняет, почему количество тегов не заменяет охват. Один тег выпуска может обозначать 1 840 объектов, а двадцать тегов точных URL могут обозначать двадцать объектов. Показывайте число селекторов и ожидаемое число совпадений как разные факты. Первое описывает запрос. Второе описывает его вероятный эффект.

Поставляйте границу безопасности как исполняемый контракт

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

Как минимум соблюдайте следующие инварианты:

  • В адресном режиме есть хотя бы один некорневой селектор и явно указанная среда.
  • Режим полной очистки использует отдельное действие и не возникает из пустых полей.
  • Отображаемые хост, путь, количество тегов и логика селекторов получены из канонических параметров.
  • Охват выражен диапазоном с источником, верхней границей, метрикой трафика или явным неизвестным значением.
  • Перед исполнением дайджест вычисляется заново, а измененные параметры отклоняются.

Запускайте адаптер на записанных примерах каждой поддерживаемой операции CDN. Сравнивайте исходящий запрос со снимком предварительного просмотра. Добавьте тестовый сервис, источник которого выдержит очистку, и проверьте точный URL, префикс, объединение тегов, ограничение по хосту, переписанный путь и полную очистку. Пробный режим, который лишь повторяет ввод агента, ничего не доказывает; тест должен охватывать нормализацию и построение запроса провайдера.

Обычный выпуск должен использовать версионированный контент. Документация Google Cloud советует выбирать подходящие сроки действия или разные URL для версий вместо регулярной инвалидации, и этот совет разумен. Очистка нужна для исправлений, отзывов и ситуаций, когда нельзя ждать TTL. Агент, очищающий кеш при каждом развертывании, превращает исключительный механизм в скрытую зависимость от мощности источника.

Когда очистка оправдана, предварительный просмотр должен позволять быстро принять решение. Оператор должен увидеть assets.example.test, /releases/842/*, два тега и оценку от 1 600 до 2 300 объектов без разбора JSON провайдера. Для полной очистки в том же месте карточки нужно написать «весь производственный сервис» и не смягчать это утверждение малым количеством запросов.

Я использую простой тест: может ли оператор за две секунды отличить обновление одного ресурса от очистки всего сервиса, видя только доверенные поля над кнопкой подтверждения? Если нет, агенту еще нельзя давать такое действие CDN.

Вопросы и ответы

Что должен показывать предпросмотр подтверждения очистки CDN?

Покажите фактических провайдера и среду, все хосты или явно доступное для просмотра количество, нормализованные пути, число тегов, логику селекторов и ожидаемый охват. Классификацию адресной или полной очистки разместите над кнопкой.

Один путь с подстановочным знаком означает малую инвалидацию?

Нет. Путь вроде /* может инвалидировать весь дистрибутив, хотя API считает его одним отправленным путем. Классифицируйте по совпавшему контенту, а не по числу полей.

Как агенту оценить охват очистки CDN?

Используйте данные провайдера, если они есть, затем индекс тегов развертывания, свежую телеметрию кеша или каталог маршрутов. Укажите единицу, источник, время наблюдения и диапазон либо явное неизвестное значение.

Один тег кеша означает один кешированный объект?

Нет. Один тег может отмечать множество URL и все их варианты. Показывайте количество тегов отдельно от оценки объектов и сообщайте, объединяются ли теги через OR или AND.

Нужно ли одинаково подтверждать каждую очистку CDN?

Нет. Одинаковое окно для точного URL и полной очистки приучает подтверждать автоматически. Усиливайте проверку с ростом радиуса воздействия и требуйте отдельную аутентификацию для всего сервиса.

Почему очистка точного URL затрагивает несколько вариантов?

CDN может хранить версии по строке запроса, cookie, заголовку, устройству или языку. Предварительный просмотр должен перечислять инвалидируемые варианты, а не называть действие одним объектом.

Можно ли отменить очистку CDN после подтверждения?

Не стройте защиту вокруг отмены. CloudFront сообщает, что после отправки инвалидацию нельзя отменить, а другие CDN быстро распределяют очистку. Надежный контроль должен сработать до исполнения.

Что делать, если охват невозможно оценить?

Покажите unknown, объясните, каких данных не хватает, и повысьте уровень подтверждения. Никогда не подставляйте ноль и не позволяйте агенту выдумывать количество.

Как привязать разрешение к реальному запросу очистки?

Нормализуйте провайдера, сервис, среду, хосты, пути, теги и режим очистки, затем вычислите хеш действия. Исполняйте только при наличии действующего разрешения на тот же дайджест.

Версионированные URL лучше регулярной очистки?

Обычно да. Версионированные URL и подходящие TTL предотвращают синхронную нагрузку заполнения и упрощают выпуски. Оставьте инвалидацию для исправлений и случаев, когда устаревший контент не может ждать.

Sallyport

Sallyport выполняет API-вызовы и SSH-команды за вашего ИИ-агента. Ключи остаются в локальном хранилище на вашем Mac; вы подтверждаете каждый запуск, и каждое действие попадает в запечатанный журнал.

© 2026 Sallyport · Открытый код по лицензии Apache-2.0 · Oleg Sotnikov