Почему aws cli неправильно делает недействительным кеш - AWS Cloudfront - PullRequest
0 голосов
/ 22 ноября 2018

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

Способ аннулироватькеш автоматически используется через контейнер aws , где я выполняю следующую команду:

  • aws cloudfront create-invalidation --distribution-id ${DISTRIBUTION_ID} --paths /* > output.json

Выходной файл будет содержатьJSON, где я могу получить разные ключи: значения.Два из них, которые я использую, это Id и Status.После того, как аннулирование было создано, на следующем этапе конвейера я выполняю следующее:

  • aws cloudfront get-invalidation --distribution-id ${DISTRIBUTION_ID} --id ${id_invalidator} > status_invalidation.json

С помощью предыдущей команды я выполняю квест API каждые 50 секунд (черезsleep 50) Статус признания недействительным.Когда при проверке возвращается `Status = Completed ', работа завершена.Это условие находится внутри цикла while.

Кто-то знает, почему это произошло?

1 Ответ

0 голосов
/ 23 ноября 2018

Вы всегда должны заключать в кавычки выражения с символом * в командной строке, чтобы избежать расширения локальной оболочки.Правильный синтаксис такой:

--paths '/*'

В противном случае вы пытаетесь сделать недействительными имена на основе того, что находится в корневом каталоге вашей локальной файловой системы (как записано в *, расширенном оболочкой).

...