Ниже приведен пример сценария, который выполняется в процессе развертывания для аннулирования распространения CloudFront. Цель состоит в том, чтобы просто сделать недействительным все во всем дистрибутиве, поэтому мы используем /
как путь.
aws cloudfront create-invalidation --distribution-id SOMEDISTRIBUTIONID --paths /
Но Документация CloudFront Invalidation рекомендует использовать в пути аннулирования подстановочный знак, например:
aws cloudfront create-invalidation --distribution-id SOMEDISTRIBUTIONID --paths "/*"
В чем разница между этими двумя аргументами пути? Они оба аннулируют все или нет? А есть ли разница в цене?
Если это не недокументированный особый случай, признание недействительным /
сделает только главную страницу недействительной.
Обратите внимание, что из оболочки вам нужно указать '/*'
чтобы предотвратить расширение оболочки.
Разницы в цене нет. Стоимость всех аннулирований одинакова. на указанный путь, соответствует ли путь 0, 1, многим или всем файлам.
Причина, по которой цена такая же, и не имеет значения, соответствуете ли вы одному или всем, это не указано, но есть предположение, что инвалидации делают две разные вещи - они изначально устанавливают записи маркеров с метками времени в распределении, которые проверяются при кешировании попадания происходят, и если объект соответствует записи о признании недействительности и старше, чем метка времени, попадание становится промахом. Затем объекты очищаются на заднем плане и маркеры удаляются. Великолепный дизайн, если это правда, и он почти должен быть примерно таким, поскольку аннулирование выполняется очень быстро, даже для /*
.
Первые 1000 путей аннулирования, отправленные в месяц для каждой учетной записи AWS (а не для каждого распределения), бесплатны.