1

我正在使用AWS Elastic Beanstalk部署我的PHP應用程序,這非常棒,因爲我可以使用單個git推送操作部署應用程序。在這個應用程序中,我有靜態文件,如JS和圖像。使用AWS Elastic Beanstalk和AWS Cloudfront進行靜態部署

是否有任何自動方式將這些靜態文件部署到Amazon Cloudfront?當然,我可以編寫一個部署腳本,但我想知道是否有人使用任何AWS提供的解決方案。

回答

3

您可以將應用程序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" />(或類似的東西)。否則,每次更新靜態文件時,您都必須手動使分配失效,這需要花費很長時間,並且可能會因爲Amazon爲失效付款而花費很高。使用Git,您可以編寫一個提交鉤子,在將代碼推送到Beanstalk之前,將UNIX時代添加到您的聲明的文件名。

1

您有幾個選項都是圍繞AWS/S3相關工具。

  • 查看PHP SDK,它支持S3和CloudFront。您可以從以下screencast開始。

  • 查看選項以託管您的static web site on S3。託管後,定義CloudFront可以更輕鬆地從Edge節點提供文件。

  • 結賬CloudBerry tool。它也有一個免費版本。它使管理S3,CloudFront和其他存儲相關服務上的文件變得非常容易。