[英]Why aws cli dont invalidate correctly the cache - AWS Cloudfront
我创建了一个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
使用先前的命令,我每隔50秒(通过sleep 50
)查询API失效的状态。 当验证返回“Status = Completed”时,作业结束。 这个条件在while循环中。
有人知道为什么会这样吗?
您始终必须在命令行上使用*
字符引用表达式,以避免本地shell扩展。 正确的语法是这样的:
--paths '/*'
否则,您将尝试根据本地文件系统上的根目录中的内容使名称无效(由*
捕获,由shell扩展)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.