Я пытаюсь использовать интерфейс командной строки AWS для аннулирования моего дистрибутива CloudFront. Он состоит из двух команд: одна для создания аннулирования, а затем другая, чтобы дождаться ее завершения.
Для этого мне нужно захватить идентификатор недействительности, который AWS отправляет мне обратно, и передать его второй команде. После долгих поисков я остановился на приведенном ниже сценарии. Хотя это и не красиво, оно служит своей цели.
pipelines:
branches:
Stage/development:
- step:
name: Invalidate
image: cgswong/aws:aws
script:
- for /f usebackq %F in (`aws cloudfront create-invalidation --distribution-id "##############" --paths /* --query "Invalidation.Id"`) do aws cloudfront wait invalidation-completed --distribution-id "##############" --id %F
Команда, которую я написал, отлично работает на моем компьютере (Windows 10), но когда она запускается как часть конвейера, я получаю следующую ошибку:
Баш:
/opt/atlassian/pipelines/agent/tmp/bashScript6992979577238911185.sh:
строка 5: синтаксическая ошибка рядом с неожиданным токеном `usebackq '
Я пытался поместить usebackq в кавычки, но это не помогло - та же ошибка.
Может ли кто-нибудь помочь с этим, пожалуйста, или предложить другое решение?