我有一個部署在S3上並可公開訪問的反應應用程序(SPA)。在每次構建之後,我必須手動將上述index.html和其他靜態資產上傳到S3。有什麼方法可以使這個過程自動化嗎?生成後自動將靜態網站文件部署到S3
我做了一個關於CD(連續部署)到S3的詳盡搜索,這裏是大約相同的SO question。
我正在彙總來自我詳盡研究的所有信息。我寫了下面的答案,其中包含各種方法來實現這一點。
我有一個部署在S3上並可公開訪問的反應應用程序(SPA)。在每次構建之後,我必須手動將上述index.html和其他靜態資產上傳到S3。有什麼方法可以使這個過程自動化嗎?生成後自動將靜態網站文件部署到S3
我做了一個關於CD(連續部署)到S3的詳盡搜索,這裏是大約相同的SO question。
我正在彙總來自我詳盡研究的所有信息。我寫了下面的答案,其中包含各種方法來實現這一點。
有很多方法可以自動執行S3部署。下面是我收集的東西:
1 AWS SNS和Lambda:
這個過程是非常有用的,如果要觸發GitHub上push.So任何AWS服務,在此過程是:
這種方法的缺點是克隆大回購需要時間和lambda表達式每秒計費。所以,這對於大型回購可能會變得昂貴。
2.特拉維斯:
特拉維斯以其CI(持續集成)庫。 A .travis.yml對整合過程至關重要。
如果您想在構建之後進行一些測試,然後成功,請將文件上傳到S3。那麼這種方法將是最好的方法。 Travis對開源項目免費。
不利的一面是,我找不到一種方法將目錄與回購站隔離並單獨上傳該特定目錄。
3 AWS CLI:
這是將文件上傳到S3最便宜最好的方式。我用這種方法。我從這個medium post得到了這個信息。
通常在反應Apps中構建腳本由NPM或紗線寫爲的package.json腳本觸發。下面是文件上傳到S3命令:
aws s3 sync build/ s3://<bucket-name>
我添加了這個腳本中的package.json構建腳本的一部分。這非常方便,因此可以自動將文件上傳到S3的手動過程。
此答案是基於我的觀點。如果有任何不正確的或如果我錯過了某些東西,請隨時發表評論,我會將其添加到答案中。
同意AWS CLI方法。 Lambda在最多300秒後超時...因此,對於涉及較大資產的網站來說,這也不是最佳選擇。 –