2016-07-30 16 views
0

Ich habe hoch und niedrig nach einer Antwort auf diese Frage gesucht, konnte aber keine finden.Bereitstellen einer Angular 2 App, die mit Webpack mit Bitbucket erstellt wurde

Ich baue eine Angular 2 App, die ich auf einem S3-Bucket hosten würde. Es wird ein EC2 (möglicherweise) Backend geben, aber das ist eine andere Geschichte. Im Idealfall möchte ich meinen Code in Bitbucket überprüfen können, und durch eine Magie, die mich anspricht, möchte ich, dass S3 oder EC2 oder was auch immer über einen Haken bemerkt, dass sich die Quelle beispielsweise geändert hat. Natürlich müsste die Quelle mit webpack erstellt und die Distributables korrekt verteilt werden.

Nun scheint dies eine ziemlich einfache Anfrage, aber ich kann keine Lösung Ausnahme etwas zu WebDeploy finden, die ich jetzt untersuchen werde.

Irgendwelche Ideen jemand?

Antwort

0

S3 wird nicht auf Git-Hooks warten und Ihren Code abrufen, erstellen und bereitstellen. BitBucket wird Ihren Code nicht für S3 erstellen und bereitstellen. Was Sie brauchen, ist ein Dienst zwischen BitBucket und S3, der von einem Git-Hook ausgelöst wird, von Git abruft, Builds erstellt und dann Ihren Code an S3 verteilt. Sie müssen nach Continuous-Integration-/Continuous-Deployment-Diensten suchen, die für diese Art von Aufgaben konzipiert sind.

AWS hat CodePipeline. Sie könnten Ihren eigenen Jenkins oder TeamCity Server einrichten. Oder Sie könnten in einen Service wie CodeShip schauen. Dies sind nur einige der vielen Dienste, die diese Aufgabe erfüllen können. Ich denke, dass jeder dieser Dienste ein bisschen Scripting von Ihnen erfordert, um sie dazu zu bringen, das tatsächliche Webpack auszuführen und nach S3 zu kopieren.

1

Gute Nachrichten, AWS Lambda für Sie erstellt.

Sie müssen folgendes Szenario und Code erstellen, um Ihre Anforderung zu erfüllen.

1-Create Lambda-Funktion, sollte diese Funktion die folgenden Schritte ausführen:

  • 1-1- Ihre neuesten Code von GitHub oder Bitbucket klonen.

    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-erstellen AWS API-Gateway mit einem Ressourcen- und eine Methode Punkt auf Ihre Funktion Lambda.

3-Gehen Sie zu Ihren GitHub- oder Bitbucket-Einstellungen und fügen Sie den Webhook Ihrem API-Gateway hinzu.

4-Genießen Sie das Leben mit AWS. ;)

Vorteile: 1-Sie nur berechnen, wenn Sie den neuen Build haben.

2-Keine Maschine oder Server (EC2).

3-Sie haben nur eine Funktion am Lambda.

für weitere Informationen:

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

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