我正在AWS S3存储桶上运行一个网站。我必须偶尔更新一下这个网站。目前,当我进行部署时,我只是将构建的文件复制到我的存储桶并覆盖现有文件。
有没有办法在这些部署上进行一些版本控制?我知道有一个内置的版本控制S3,但它只适用于我认为的单个文件。
最好的选择是每个部署都使用git commit-id标记,如果需要,我可以回滚到特定的commit-id。
有什么想法吗?已经尝试使用commit-id -prefix命名目录,但问题是index.html必须存在于root目录中。
答案 0 :(得分:0)
您可以使用AWS CodePipeline,并使用git reverts管理回滚。请参阅this github repository中的cloudformation堆栈,以在s3 / cloudfront上建立一个类似网站的网站。
答案 1 :(得分:0)
如果您想对非技术用户使用某种解决方案,这些解决方案仅通过在AWS控制台中执行一些单击操作就可以回滚以前的版本,则可以尝试更改Index document config。
例如,您在存储桶中具有如下结构:
这意味着,您只能在存储桶属性->静态网站托管->索引文档->中将配置从v2 / index.html更改为v1 / index.html。
“仅在AWS控制台中执行一些单击操作”之类的声音
答案 2 :(得分:-1)
您可以使用以下任一方法配置存储桶版本控制:
控制台和SDK都调用Amazon S3提供的REST API来管理版本控制。
注意强>
如果需要,您还可以直接从代码中调用Amazon S3 REST API。但是,这可能很麻烦,因为它需要您编写代码来验证您的请求。
您创建的每个存储桶都有一个与之关联的版本控制子资源(请参阅Bucket Configuration Options)。默认情况下,您的存储桶是无版本的,因此版本控制子资源存储空版本控制配置。
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
</VersioningConfiguration>
要启用版本控制,请使用包含状态的版本控制配置向Amazon S3发送请求。
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>Enabled</Status>
</VersioningConfiguration>
要暂停版本控制,请将状态值设置为“已暂停”。
更多信息here。