我正在尝试使用AWS CLI使我的CloudFront分发无效。这由两个命令组成,一个命令创建失效,然后一个等待失效完成。
为此,我需要捕获AWS发送给我的失效ID,并将其传递给第二个命令。经过大量的Google搜索后,我决定使用以下脚本。虽然不漂亮,但它确实达到了目的。
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放在引号中,但这无济于事-同样的错误。
请有人帮忙还是提供其他解决方案?