Wie einrichten einer Automatisierten Deployment-Pipeline für eine S3-Website

0
31

Hosting Ihrer website mit S3 ist ziemlich üblich, auf AWS. Es ist Billig, erfordert keine Server, und unterstützt auch client-side-web-apps mit frameworks wie Reagieren. Dinge einfacher zu machen, werden wir eine deployment pipeline zu handhaben updates.

Wie Funktioniert Das?

Für eine S3-Website können Sie updates durch laufen aws s3 synchronisieren, oder durch hinzufügen neuer Objekte, um den Eimer manuell. Dies ist jedoch ein sehr manueller Prozess, und es kann automatisiert werden, ziemlich leicht.

Mithilfe von AWS CodePipeline CI – /CD-Dienst, können Sie eine pipeline zu hören für änderungen in deinem source-control. Wenn eine änderung erkannt wird, CodePipeline senden die Quelle über CodeBuild, die handhaben das Projekt zu erstellen. Für web-apps, die meisten dieser umfasst vor allem die Laufenden npm run bauen, das wird Paket bis Projektelemente in eine Produktion zu bauen. Der build ist direkt zu S3, aktualisieren Sie die Anwendung.

Beachten Sie, dass, wenn Ihr Projekt erfordert nicht jede Art von Gebäude mit npm, und Sie wollen einfach nur zu synchronisieren Sie Ihre Git repo-S3, wird die Installation viel einfacher. Konfigurieren Sie einfach die Quell-Bühne, um eine Verbindung zu Ihrer Quelle kontrollieren, überspringen Sie die build-Phase, dann wählen Sie “AWS-S3” für die Bereitstellung Schritt. Geben Sie in Ihrem Eimer details, sowie den Inhalt von repo synchronisiert werden, um den Eimer auf jedes update.

Einrichten der Pipeline

Aus der CodePipeline-Konsole, klicken Sie auf “Erstellen Sie Neue Pipeline” geben Sie einen Namen ein, und wählen Sie zum erstellen einer neuen service-Rolle.

Für die source-Stufe, wählen Sie Ihr Git-repository. Wenn Sie mit AWS-eigenen CodeCommit, können Sie die repo-und Zweig. Andernfalls müssen Sie die Verbindung zu Ihrem Github-oder Bitbucket-account. Gitlab wird nicht unterstützt.

Für die build-Phase, wählen Sie “CodeBuild”, und erstellen Sie ein neues Projekt erstellen.

Es öffnet sich ein dialog-Fenster, das automatisch die Quelle für die neue CodeBuild Projekt zu verwenden CodePipeline. Sie müssen konfigurieren Sie Ihre Umgebung wählen Sie hier ein Betriebssystem, und wählen Sie eine runtime-version. Sie werden auch zum erstellen eines neuen service-Rolle, die geändert werden müssen, um Zugang zu Ihrer Bereitstellung Eimer.

Für die build-Konfiguration verwenden, wählen Sie eine buildspec-Datei.

Buildspec ist ein YAML-format definiert, welche Befehle CodeBuild ausgeführt wird. Diese variieren je nach Anwendung. Für dieses Beispiel, wir werden vermuten, Sie sind bauen Sie Ihre JavaScript-Anwendung, die mit npm. Fügen Sie Folgendes in eine neue Datei namens buildspec.yml, platziert an der Wurzel des Projektarchivs.

version: 0.2

Phasen:
installieren:
runtime-Versionen:
nodejs: 10
Befehle:
– npm i npm@der neuesten g
pre_build:
Befehle:
– npm installieren
bauen:
Befehle:
– npm run bauen
post_build:
Befehle:
– aws-s3-sync ./bauen, s3://bucket-Namen

Diese Buildspec tatsächlich kümmert sich um die Bereitstellung auf S3—während der post-build-Phase, CodeBuild laufen aws-s3-sync zur Synchronisierung der /build-Ordner mit dem angegebenen Eimer.

Klicken Sie auf erstellen, auf dem Bau-Projekt, die Sie zurück zu CodePipeline. Klicken Sie auf “Weiter” und überspringen Sie die deployment-Phase, weil CodeBuild behandeln können Sie den Befehl ausführen. Erstellen der pipeline.

Für den ersten Lauf, der build-Phase wird scheitern, becausee die CodeBuild service-Rolle keinen Zugriff auf S3. Den Kopf über die IAM-Management-Konsole, suchen Sie die CodeBuild Rolle unter “Rollen” aus und fügen Sie eine neue Richtlinie, die ermöglicht den Zugriff auf S3. Wirklich, sollten Sie wahrscheinlich begrenzen diese nur den Zugriff auf den deployment-Eimer.

Kopf wieder zum CodePipeline, und klicken Sie auf “Version Ändern” auf Ihrer pipeline, um manuell auslösen, ein pipeline update. Wenn nichts ist falsch mit Ihrem Buildspec, sollten Sie die pipeline erfolgreich zu sein.

Wenn Sie einen commit für Git, eine neue build wird hochgefahren, und S3 wird eine Aktualisierung mit der build-Artefakte. Wenn es irgendwelche Fehler in dem build, CodePipeline stoppen, bevor Sie aktualisieren.

Wenn Sie Ihre pipeline fehlschlägt, klicken Sie auf “CodeBuild” in der Seitenleiste anzeigen der Protokolle für die letzten builds, die Ihnen helfen, die Spur zu Fehlern.