[英]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.