2016-07-30 87 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/

相關問題