我已经搜索了这个问题的答案,但是找不到答案。
我正在构建一个我希望在S3存储桶上托管的Angular 2应用。将会有一个EC2(可能)后端,但这是另一个故事。理想情况下,我希望能够将我的代码检查到Bitbucket,并通过一些魔术来暗示我想要S3或EC2,或者通过钩子注意到的任何事情,例如,源已经改变了。当然,必须使用webpack构建源代码并正确部署可分发的代码。
现在这似乎是一个相当简单的请求,但我找不到与WebDeploy有关的解决方案异常,我现在将调查。
任何想法?
答案 0 :(得分:1)
好消息,AWS Lambda为您创建。
您需要创建以下方案和代码才能满足您的要求。
1 - 创建Lambda函数,此函数应执行以下步骤:
1-1-从GitHub或Bitbucket克隆您的最新代码。
1-2- install grunt or another builder for your angular app.
1-3- install node modules.
1-4- build your angular app.
1-5- copy new build to your S3 bucket.
1-6- Finish.
2 - 创建AWS API网关,其中一个资源和一个方法指向您的Lambda函数。
3 - 转到您的GitHub或Bitbucket设置,并在您的API网关中添加webhook。
4 - 享受AWS的生活。 ;)
优点: 1 - 只有在拥有新版本时才会收费。
2 - 不需要任何机器或服务器(EC2)。
3 - 您只在Lambda上维护一个功能。
了解更多信息:
答案 1 :(得分:0)
S3不会监听Git钩子并获取,构建和部署您的代码。 BitBucket不会构建代码并将其部署到S3。你需要的是一个位于BitBucket和S3之间的服务,由Git钩子触发,从Git获取,构建,然后将你的代码部署到S3。您需要搜索旨在执行此类操作的持续集成/持续部署服务。
AWS有CodePipeline。您可以设置自己的Jenkins或TeamCity服务器。或者您可以查看CodeShip之类的服务。这些只是可以完成这项任务的众多服务中的一小部分。我认为这些服务中的任何一个都需要您编写一些脚本,以便让他们执行实际的webpack并复制到S3。