如何清除多个发行版的缓存,包括列出它们?



首先我想向所有人问好,其次我非常害怕,因为我刚刚找到一份新工作,我的任务之一是我一生中从未做过的事情。 在这种情况下,分配给我的任务是找到一种从 S3 Cloudfront 分配中删除缓存的方法。我试图看看是否有办法列出所有发行版,然后使用脚本从中清除缓存,但我找不到这是否可能以及脚本应该是什么样子。

我的想法是拥有一个 cli 脚本,它将:

A) 列出 txt 文件输出中的所有发行版; B) 从该输出中读取发行版 ID,然后使用该输出清除其当前缓存。

这样就可以在上传新文件后在发行版上创建新的缓存。我已经阅读了 https://docs.aws.amazon.com/cli/latest/reference/cloudfront/list-distributions.html 但不幸的是,我无法理解脚本列出所有发行版 ID 的>发行版的外观.txt然后从中读取以删除其缓存。

如果可能的话,我可以阅读的任何提示或信息来创建这样的脚本将非常有帮助,因为我真的很紧张,害怕我的第一个任务。

想对所有阅读该主题的人表示感谢,即使他们没有任何提示可以:)。

好的,我想我现在完全理解了这些要求。我会做什么: 架构上:使其成为 Lambda 函数,我个人会使用 Python 3.7。 要实现的编码步骤:

  1. 从 Lambda 请求输入中读取要失效的域。
  2. aws cloudfront list-distributions的结果保存在 变量
  3. 由于它是一个JSON结构,你可以把它作为一个字典循环,这样做和 每个分布都检查"别名"属性是否包括 您的域。将这些分配的 ID 保存在列表中。
  4. 遍历您的列表,并为每个 id 执行:aws cloudfront create-invalidation --distribution-id *id_from_list* --paths *

确保 Lambda 函数有权列出 Cloudfront 分配并创建失效。还要确保可能需要执行此函数的每个人都有权执行此操作。

相关内容

  • 没有找到相关文章

最新更新