2016-07-30 65 views
0

我已经搜索了高和低的问题的答案,但一直未能找到一个。使用Bitbucket部署一个使用webpack构建的Angular 2应用程序

我正在构建一个Angular 2应用程序,我希望托管在S3存储桶上。将有一个EC2(可能)后端,但这是另一回事。理想情况下,我希望能够将我的代码检查到Bitbucket中,并且通过一些暗示我想要S3或EC2的魔法,或者通过钩子注意到的任何事情,例如源已经改变。当然,源代码必须使用webpack进行构建,并且可以正确部署可分发组件。

现在,这似乎是一个非常简单的请求,但我不能找到任何解决方案异常,有关WebDeploy的信息,我将立即调查。

任何想法的人?

回答

0

S3不会侦听Git挂钩并获取,构建和部署您的代码。 BitBucket不会构建和将代码部署到S3。你需要的是一个位于BitBucket和S3之间的服务,它由Git钩子触发,从Git获取,构建,然后将你的代码部署到S3。您需要搜索持续集成/连续部署服务,这些服务旨在执行此类操作。

AWS有CodePipeline。您可以设置您自己的JenkinsTeamCity服务器。或者你可以看看CodeShip这样的服务。这些只是那些可以完成这项任务的众多服务中的一小部分。我认为任何这些服务都需要一些脚本来让他们执行实际的webpack并复制到S3。

1

好消息,AWS Lambda为您创建。

您需要创建以下方案和代码才能实现您的要求。

1 - 创建lambda函数,这个函数应该执行以下步骤:

  • 1-1-克隆从GitHub或到位桶您最新的代码。

    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. 
    

一个资源,一个方法指向您的lambda表达式2 - 创建AWS API网关。

3-Goto你的GitHub或Bitbucket设置,并添加你的API网关的webhook。

4 - 使用AWS享受生活。 ;)

优点: 1 - 您只有当你有新的构建时收费。

2-不需要任何机器或服务器(EC2)。

3 - 您只能在Lambda上维护一个功能。

更多信息:

https://aws.amazon.com/lambda/

https://aws.amazon.com/api-gateway/

相关问题