0

首先我想和大家打个招呼,其次我很害怕,因为我刚得到一份新工作,我的任务之一是我这辈子从未做过的事情。在这种情况下,我分配的任务是找到一种从 S3 Cloudfront 分发中删除缓存的方法。我试图查看是否有一种方法可以列出所有发行版,然后使用脚本从它们中清除缓存,但我找不到这是否可能以及脚本应该是什么样子。

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

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

因此,在上传新文件后,可以在发行版上创建新的缓存。我已阅读https://docs.aws.amazon.com/cli/latest/reference/cloudfront/list-distributions.html但不幸的是,我无法掌握脚本如何列出所有分发 ID > 分发.txt 然后从中读取以删除其缓存。

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

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

4

1 回答 1

0

好的,我想我现在完全理解要求了。我会做什么: 在架构上:让它成为一个 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 分配并创建失效。还要确保可能需要执行此功能的每个人都有权这样做。

于 2019-08-16T09:58:31.240 回答