amazon-web-services - S3 和 AWS CloudFront 的持续交付问题
问题描述
我正在构建一系列内容网站,并构建了一个有效的 CodePipeline,它允许我将编辑推送到 github 上的 HTML 文件,这些文件会立即反映在 S3 存储桶中,从而反映在实时网站上。
我创建了一个云端发行版来为我的网站获取 HTTPS。证书和发行版工作正常,它在我的 S3 存储桶中填充了我的 index.html,但通过我的 github 管道对 S3 存储桶所做的更改反映在 S3 存储桶中,而不是 CloudFront Distribution中。
根据我的阅读,云端使用的边缘位置不会非常频繁地更新其缓存,并且当它们更新时,它们可能不会更新已编辑的index.html 文件,因为它与旧版本具有相同的名称。
每次我的一位作家需要发布前 10 名拖拉机品牌文章或实施实验性、省力的点击诱饵创意时,我都不想手动重命名 S3 中的 index.html 文件,所以这几乎是不可能的。
我的总体目标是构建一个团队可以在几分钟内快速将包含几张图片的文章添加到网站上的东西,到目前为止我已经能够做到这一点,但不能使用 HTTPS。
如果你们中的任何人都知道在不更改文件名的情况下立即更新 CloudFront 分配的好方法,那就太好了。否则我可能不得不重新开始,因为我需要保护我的网站并能够立即更新它们。
你们这些人真棒。感谢一百万的任何帮助。
解决方案
您需要使边缘缓存中的文件无效。这是一个简单而快速的过程。
您可以自己在管道中自动执行该过程,也可以使用第三方工具,例如aws-cloudfront-auto-invalidator。
推荐阅读
- php - Azure DevOps - 部署 Magento 2 - 请求实体太大代码 413
- firebase-security - 如果在 Cloud Firestore 中发现电子邮件,则访问更深层次的文档
- laravel - 自定义规则 Laravel Livewire
- java - BizTalk 2020 弃用 WCF-BasicHttp
- c++ - 如何让一个文件包含所有包含?
- c++ - 处理具有不同操作的子类的交互的正确方法是什么?
- python - 如何将 tkinter 上的文本框中的文本保存到文本文件中?
- angular - Angular - 如果条件不满足,则重定向到另一个组件
- sql - 使用 jsonb_set() 更新只影响嵌套数组中的一个对象
- r - 来自pracma包的integral3的R错误