1

我有一個S3桶站點,配置爲Web訪問,爲此,我運行一個aws s3 sync命令每次我按下了一個特定的Git倉庫(我使用Gitlab的時刻)的時間。CodeDeploy到S3

因此,如果我推送到stable分支,Gitlab亞軍執行npm start build命令建立網站,然後aws s3 sync同步到一個特定的存儲桶。

我想遷移到CodeCommit並使用純AWS工具來做同樣的事情。


到目前爲止,我是能夠成功地建立了資料庫,創建一個CodeBuild建設的神器,而神器是存儲(未部署的)的S3桶。不同之處在於,我無法將其部署到存儲桶的根文件夾而不是子文件夾,似乎並不是爲此而創建的。我需要它在根文件夾上,因爲如何配置Web訪問。

對於部署過程,我查看了CodeDeploy,但它實際上並沒有讓我部署到S3存儲桶,它只使用存儲桶作爲部署到EC2實例的中介。到目前爲止,我感覺CodeDeploy僅適用於涉及EC2的部署。

This tutorial與比我類似的要求,採用CodePipelineCodeBuild,但部署的步驟實際上是一個aws s3 sync命令(相同的,因爲我是做對Gitlab),並在CodePipeline實際部署的步驟是禁用。

我正在研究一個解決方案,其中涉及使用針對此特定目的的AWS功能,但找不到任何解決方案。

我也清楚的LambCI,但對我來說看起來像什麼CodePipeline/CodeBuild是幹什麼的,保存文物(不部署到桶的根文件夾)。另外,我正在尋找一個不需要我學習或部署新配置文件(AWS配置文件外部)的選項。

AWS功能的當前狀態可能嗎?

回答

0

從CodeBuild上傳是目前最好的解決方案。

有一個關於如何在this answer編排通過CodePipeline此部署的一些建議。

1

我正在處理類似的問題,並且據我所知,沒有適合將應用程序部署到S3的服務。

AWS CodeDeploy確實用於部署作爲服務器運行的代碼。

我的解決辦法是使用CodePipeline有三個階段:

  1. 來源,採用源代碼AWS CodeCommit
  2. 與AWS CodeBuild構建
  3. 自定義拉姆達功能,成功構建後需要神器從S3神器存儲,解壓縮並將文件複製到我的S3網站主機。

enter image description here

我用這個AWS lambda函數從SeamusJ https://github.com/SeamusJ/deploy-build-to-s3

若干變化必須作出,我使用的節點-解壓-2而不是解壓縮流從S3 unziping artifict。

此外,我不得不改變ACLs在website.ts文件