【问题标题】:Statics deployment with AWS Elastic Beanstalk and AWS Cloudfront使用 AWS Elastic Beanstalk 和 AWS Cloudfront 进行静态部署
【发布时间】:2012-12-14 08:38:05
【问题描述】:

我正在使用 AWS Elastic Beanstalk 来部署我的 PHP 应用程序,这很棒,因为我可以使用单个 git push 操作来部署应用程序。在这个应用程序中,我有静态文件,例如 JS 和图像。

是否有任何自动方式将这些静态文件部署到 Amazon Cloudfront?当然我可以编写一个部署脚本,但我想知道是否有人在使用任何 AWS 提供的解决方案。

【问题讨论】:

    标签: amazon-web-services amazon-cloudfront amazon-elastic-beanstalk


    【解决方案1】:

    您可以将应用程序 URL 指定为 Cloudfront 分配的来源(而不是使用 S3 存储桶)。这将使 Cloudfront 透明地开始为您的静态资产提供服务。几个注意事项:

    1. 您需要调整资产的路由以使用绝对 URL。例如<img src="/images/hello.png" /> 需要变为<img src="//xxxxxx.cloudfront.net/images/hello.png" />。 (注意看起来很奇怪的方案。它允许通过 HTTP 和 HTTPS 连接使用相同的 URL)。

    2. 您需要实施某种类型的资源版本控制方法,以便用户始终获得最新版本。所以<img src="//a42532.cloudfront.net/images/hello.png" /> 实际上变成了<img src="//a42532.cloudfront.net/images/hello-3456464234.png" />(或类似的东西)。否则,每次更新静态文件时,您都必须手动使分发失效,这将花费很长时间,并且可能会变得非常昂贵,因为亚马逊会为失效开具账单。使用 Git,您可以编写一个提交挂钩,在将代码推送到 Beanstalk 之前将 UNIX 纪元添加到您的资产文件名中。

    【讨论】:

      【解决方案2】:

      您有几个选项都与 AWS/S3 相关的工具有关。

      • 查看支持 S3 和 CloudFront 的 PHP SDK。您可以从以下screencast开始。

      • 查看托管static web site on S3 的选项。托管后,定义 CloudFront 以从边缘节点提供文件会更容易。

      • 查看CloudBerry tool。它也有免费版本。它使管理 S3、CloudFront 和其他存储相关服务上的文件变得非常容易。

      【讨论】:

        猜你喜欢
        • 2018-06-13
        • 2015-09-20
        • 1970-01-01
        • 2019-02-14
        • 2020-08-02
        • 2014-12-25
        • 2017-08-30
        • 2019-09-25
        • 2016-09-18
        相关资源
        最近更新 更多