为什么aws-cli不能正确地使缓存无效-aws Cloudfront



我创建了一个Jenkins作业,每次部署前端项目时都会使缓存无效。问题是,尽管AWS网站显示缓存无效,但当作业完成时,缓存并没有完全清理干净,所以我需要通过AWS网站手动使其无效。。。

我使用的缓存自动失效的方法是通过aws容器,在那里我执行以下命令:

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

输出文件将包含一个json,我可以在其中获取differents-keys:values。我使用的其中两个是IdStatus。一旦创建了无效,我将执行另一个管道步骤:

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

使用前面的命令,我每50秒(通过sleep 50(向API请求无效状态。当验证返回"状态=已完成"时,作业即完成。这种情况在while循环中。

有人知道为什么会发生这种事吗?

您必须在命令行中用*字符引用表达式,以避免本地shell扩展。正确的语法是:

--paths '/*'

否则,您将试图根据本地文件系统根目录中的内容使名称无效(由*捕获,由shell扩展(。

最新更新