使用Bitbucket部署使用webpack构建的Angular 2应用程序

时间:2016-07-30 15:43:40

标签: amazon-web-services amazon-s3 angular webpack bitbucket

我已经搜索了这个问题的答案,但是找不到答案。

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

现在这似乎是一个相当简单的请求,但我找不到与WebDeploy有关的解决方案异常,我现在将调查。

任何想法?

2 个答案:

答案 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上维护一个功能。

了解更多信息:

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

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

答案 1 :(得分:0)

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

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