2

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

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

4

2 回答 2

4

您可以将应用程序 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 纪元添加到您的资产文件名中。

于 2012-12-14T00:38:05.600 回答
1

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

  • 查看支持 S3 和 CloudFront的PHP SDK 。您可以从以下截屏视频开始。

  • 查看在 S3 上托管静态网站的选项。托管后,定义 CloudFront 以从边缘节点提供文件会更容易。

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

于 2012-12-13T20:09:36.333 回答