CodeDeploy到S3
我有一个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与比我类似的要求,采用CodePipeline和CodeBuild,但部署的步骤实际上是一个aws s3 sync
命令(相同的,因为我是做对Gitlab),并在CodePipeline实际部署的步骤是禁用。
我正在研究一个解决方案,其中涉及使用针对此特定目的的AWS功能,但找不到任何解决方案。
我也清楚的LambCI,但对我来说看起来像什么CodePipeline/CodeBuild是干什么的,保存文物(不部署到桶的根文件夹)。另外,我正在寻找一个不需要我学习或部署新配置文件(AWS配置文件外部)的选项。
AWS功能的当前状态可能吗?
我正在处理类似的问题,并且据我所知,没有适合将应用程序部署到S3的服务。
AWS CodeDeploy确实用于部署作为服务器运行的代码。
我的解决办法是使用CodePipeline有三个阶段:
- 来源,采用源代码AWS CodeCommit
- 与AWS CodeBuild构建
- 自定义拉姆达功能,成功构建后需要神器从S3神器存储,解压缩并将文件复制到我的S3网站主机。
我用这个AWS lambda函数从SeamusJ https://github.com/SeamusJ/deploy-build-to-s3
若干变化必须作出,我使用的节点-解压-2而不是解压缩流从S3 unziping artifict。
此外,我不得不改变ACLs在website.ts文件