Lak*_*kar 5 automation amazon-s3 amazon-web-services reactjs
我有一个部署在S3上并可公开访问的反应应用程序(SPA).在每次构建之后,我必须手动将index.html和其他静态资产上传到S3.有没有办法自动化这个过程?
我对CD进行了详尽的搜索(连续部署)到S3,这是一个关于相同问题的SO问题.
我汇总了我详尽研究的所有信息.我写了下面的答案,其中包含了实现这一目标的各种方法.
有许多方法可以实现S3部署的自动化.以下是我收集的内容:
1. AWS SNS和Lambda:
如果您想在github push上触发任何AWS服务,此过程非常有用.这里是以下过程:
这种方法的缺点是克隆大型回购需要时间,Lambdas每秒计费.因此,对于大型回购,这可能会变得昂贵.
特拉维斯:
Travis以其CI(持续集成)库而闻名.一个.travis.yml是整合过程是必不可少的.
如果要在构建之后进行一些测试,然后成功,请将文件上载到S3.那么这种方法将是最好的方法.Travis对开源项目是免费的.
缺点是,我找不到一种方法将目录与repo隔离并单独上传该特定目录.
3. AWS cli:
这是将文件上传到S3的最便宜和最好的方法.我用这种方法.我从这篇中文帖子中得到了这些信息.
通常在反应的应用程序的构建脚本是由触发NPM或纱线写成脚本的package.json.以下是将文件上载到S3的命令:
aws s3 sync build/ s3://<bucket-name>
我在package.json中添加了此脚本作为构建脚本的一部分.这非常方便,因此自动化将文件上载到S3的手动过程.
这个答案是基于我的观点.如果有任何不正确或如果我错过了什么,请随时发表评论,我会将其添加到答案中.
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |