【问题标题】:Updating a static website hosted on an AWS S3 Bucket更新托管在 AWS S3 存储桶上的静态网站
【发布时间】:2019-10-25 05:15:22
【问题描述】:

我需要一种更好的方法来更新托管在 AWS S3 存储桶中的静态网站。

每当我想更新通过 S3 存储桶托管的个人网站时,我必须从 S3 存储桶中删除 index.html 文件和 assets 文件夹,然后重新上传新文件。我通过 AWS Web 界面执行此操作。有没有办法以类似于 git 的方式使用不同的 AWS 服务来执行此操作,我可以在其中推送更新的代码?可能与lambda?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda


    【解决方案1】:

    您无法使用持续集成和部署来自动化整个过程。最简单形式的架构如下所示:

    1. 设置 AWS Code Pipeline 以在您的存储库(github、bitbucket 等)中的任何新代码提交上触发 lambda 函数
    2. lambda 可以完成更新 S3 内容的任务

    更复杂的架构可以参考https://github.com/alestic/aws-git-backed-static-website。这是来自同一来源的架构

    【讨论】:

    • 好的,所以我会将我的存储库连接到管道,并且每当更新该存储库时,我都可以让它触发一个 Lambda 函数以用新存储库替换旧存储库。如果我没听错的话。
    • 是的,没错。这个管道让你更灵活地构建和部署东西。即使您想将部署从 S3 替换为 ec2-instance,您可能只需要更新 lambda。
    • 太棒了!感谢您如此知情和乐于助人!等不及我可以回答人们的问题了!
    【解决方案2】:

    您可以使用 AWC CLI 工具更新 S3 存储桶中的代码。 您需要使用您的 AWS 账户在本地系统中配置 AWS CLI。 您可以从以下链接下载 AWS CLI

    1. 对于 Windows 64 位:https://s3.amazonaws.com/aws-cli/AWSCLI64.msi
    2. 对于 Windows 32 位:https://s3.amazonaws.com/aws-cli/AWSCLI32.msi

    您可以将代码复制到您的存储桶中,例如

    aws s3 cp yourcode s3://yourbucket/yourcode
    

    【讨论】:

    • 或者更好:aws s3 sync localdir s3://yourbuket/folder/
    • 这种方法很简单,但对于网站托管等任何生产用途都有问题。这里的主要缺陷是代码不与 repo 同步,可能会部署本地更改并且可能与 repo 完全不同步,这意味着其他人不知道部署了什么以及代码在哪里。
    猜你喜欢
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2017-05-22
    • 2018-09-14
    相关资源
    最近更新 更多