Документация Amazon CloudFront (между тем ?!) гласит, что CallerReference - Уникальное имя, которое гарантирует, что запрос не может быть воспроизведен действительно, см. Сложный тип InvalidationBatch для деталей:
Если CallerReference - это значение, которое вы уже отправили в предыдущем
пакетный запрос аннулирования, и если содержимое каждого элемента Path
идентичен исходному запросу, ответ включает в себя
информация возвращена в исходный запрос.
Если CallerReference - это значение, которое вы уже отправили в предыдущем
Пакетный запрос недействительности, но содержимое любого пути отличается
из исходного запроса CloudFront возвращает
Ошибка InvalidationBatchAlreadyExists.
Раздел Справочник вызывающего абонента в Invalidation Object также подтверждает это и дает подсказку, как с этим справляться на практике:
CallerReference - это уникальное значение, которое вы предоставляете и которое CloudFront
используется для предотвращения повторов вашего запроса. Вы должны предоставить нового абонента
эталонное значение и другая новая информация в запросе на
CloudFront для создания нового запроса на аннулирование. Вы могли бы использовать время
штамп для ссылки на вызывающего абонента (например, 20100801090000).
Несмотря на пример, в котором также используется отметка времени, выделенное значение для обработки атак воспроизведения предположительно обеспечивает большую гибкость и, следовательно, потенциально повышает безопасность (если это необходимо), чем использование заголовка даты.