[英]CodeDeploy to S3
我在S3存儲桶中有一個站點,配置為Web訪問,每次我推送一個特定的git存儲庫時,我都會運行一個aws s3 sync
命令(我現在正在使用Gitlab)。
因此,如果我推送到stable
分支,Gitlab npm start build
會執行npm start build
命令來構建站點,然后執行aws s3 sync
以同步到特定存儲桶。
我想遷移到CodeCommit並使用純AWS工具來做同樣的事情。
到目前為止,我能夠成功設置存儲庫,創建用於構建工件的CodeBuild ,並將工件存儲 (未部署)到S3存儲桶。 區別在於我無法將其部署到存儲桶的根文件夾而不是子文件夾,似乎沒有為此進行過程。 我需要它在根文件夾上,因為如何配置Web訪問。
對於部署過程,我正在查看CodeDeploy,但它實際上並沒有讓我部署到S3存儲桶,它只使用存儲區作為部署到EC2實例的中介。 到目前為止,我感覺CodeDeploy僅對涉及EC2的部署有用。
本教程的要求與我的相似,使用CodePipeline和CodeBuild ,但部署步驟實際上是一個aws s3 sync
命令(與我在Gitlab上做的相同),並禁用了CodePipeline上的實際部署步驟。
我正在尋找一個解決方案,其中涉及使用為此特定目的而制作的AWS功能,但我找不到任何解決方案。
我也知道LambCI ,但對我來說看起來像CodePipeline / CodeBuild正在做什么,存儲工件(不部署到存儲桶的根文件夾)。 另外,我正在尋找一個不需要我學習或部署新配置文件的選項(在AWS配置文件之外)。
AWS功能的當前狀態是否可以實現?
我正在處理類似的問題,據我所知,沒有適合將應用程序部署到S3的服務。
AWS CodeDeploy確實用於部署作為服務器運行的代碼。
我的解決方案是使用CodePipeline有三個階段:
我在SeamusJ中使用了這個AWS lambda函數https://github.com/SeamusJ/deploy-build-to-s3
必須進行一些更改,我使用node-unzip-2而不是unzip-stream來解壓縮來自s3的artifict。
我還必須在website.ts文件中更改ACL
從CodeBuild上傳是目前最好的解決方案。
關於如何在此答案中通過CodePipeline協調此部署,有一些建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.