Beste Strategie zu implementieren statische Website s3 auf github pushen?
Möchte ich automatisieren, bereitstellen von unserer Website zur AWS-S3. Ich habe eine schriftliche Knoten-Skript zu automatisieren Gebäude und das hochladen der Website, aber ich möchte das Skript wird automatisch ausgeführt, wenn der master
Zweig unserer repo aktualisiert wird, ist auf github.
Schaute ich in AWS CodeDeploy, aber es sieht so aus, dass die speziell für die Bereitstellung von zu EC2. Ich habe auch geschaut bei AWS Lambda, aber es scheint nicht zu sein, einen klaren Weg zu ziehen, eine Kopie von dem repo mit git
so kann ich das Skript ausführen.
Irgendwelche Dienstleistungen (vorzugsweise gebunden an AWS), die ich verwenden kann?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt mit einem AWS-service direkt (wie Sie sagen, Sie fast alle erwarten, dass ein viel komplizierteres setup, Implementierung EC2 etc.), könnten Sie besser dran mit einem CI-Anbieter wie Paketversandfähige, Codeship oder Wercker.
Diese alle haben die Fähigkeit Feuer aus
git
- updates, führen Sie Befehle zum erstellen, installieren Sie die Dienstprogramme in Ihrem CI images/Container und kopieren von Dateien zu S3.Wahrscheinlich gibt es einige Start -, das ist ein exaktes Werkzeug für Ihre Zwecke, aber Sie haben nicht erschien auf meinem radar noch 🙂
Hatte ich das gleiche Ziel vor einiger Zeit und habe nun ein kleines tool, das löst das problem zumindest für mich. Es nutzt
AWS Lambda
und setzt einen bestimmten Zweig des repository zuS3
nachpush
. Sie können den vollen nutzen aus den GitHub bereitstellen-Taste, die hat weniger Berechtigungen als persönlichen Zugangs-Token und können konfiguriert werden pro repository.Bitte werfen Sie einen Blick auf github-Eimer, es könnte Ihnen auch helfen.
Ich weiß, es ist nicht git zu deployen.... Aber Statt der Einrichtung eines CI-Feld, habe ich nur verwendet, s3cmd.
http://s3tools.org/s3cmd
Ausführen dieser Befehl synchronisiert meine build-Verzeichnis mit s3.
Ich verwende es auf Linux. Nicht sicher, was Ihr OSX und Windows Geschichten.
Wenn du wirklich nach einem git push-Lösung, konnte Sie richten Sie eine zeitgesteuerte Aufgabe, die zieht Ihr git-repo in einen Ordner und führt dann diese gegen es. Ich mache das an anderer Stelle auf einen günstigen Linux-VM. Es sei denn, Sie gehen voll CI-obwohl, gibt es wahrscheinlich nicht viel Sinn.
Man kann dies mit einem sehr einfachen 2-Schritt CodePipeline. Im Grunde, Sie füllen Sie einfach die verschiedenen Abschnitte in der AWS-Konsole. Es gibt keine Notwendigkeit für separate CI-tool und seine Komplexität.
Im ersten Schritt der pipline, ziehen von Github und laden in S3. Sie können ganz einfach durch die AWS-Konsole.
In der nächsten CodeDeploy Schritt können Sie die AWS CLI (pre-installiert in CodeDeploy) zu tun
Müssen Sie die Umgebungsvariablen für AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY, so dass AWS-Befehlszeilenschnittstelle ausführen können, während Ihre bereitstellen Schritt, und das kann auch getan werden in der AWS-Konsole für CodeDeploy, im Abschnitt "Erweitert" unter "Umgebungsvariablen". Sobald die environment-Variablen gesetzt wurden, und wenn das AWS-Benutzer die richtigen Berechtigungen verfügt, können Sie alle aws-cli-Befehl, den Sie möchten in Ihrem CodeDeploy.
Sobald dies geschehen ist, die beim check-in auf Github, CodePipeline kick-off, und ein paar Minuten später werden Ihre Dateien auf S3.
aws s3 sync --acl public-read --delete . s3://MY-BUCKET-NAME-HERE
ich zuvor erstellen Sie ein neues Bucket in S3, wo meine Daten abgelegt werden.Wenn Sie TravisCI, die Bereitstellung ist ziemlich straight-forward. Der einzige Teil, den Sie brauchen, um hinzuzufügen, um Ihre
.travis.yml
ist :Mein blog-post erklärt alle details, die für die AWS-Seite (Benutzer-setup, IAM-und S3-bucket-Konfigurationen) sowie die github und travisCI Seite.
Vielleicht overpowered für Ihre einfache Anwendung Fall, aber Sie können eine sehr einfache CodePipeline zu schieben Ihre github-repository zum S3.
ich auch empfehlen, codeship,einfach und leicht, aber Sie müssen erstellen Sie IAM-Benutzer mit der richtigen Berechtigung (die Richtlinie) zur S3-bucket.
den grundlegenden plan für codeship ist kostenlos.
Gut es könnte ein problem sein, so weit ich sehen kann, codeship nicht entfernen von Dateien so entfernen Sie Dateien in github, nachdem alle, die s3 ist nicht github-repo, aber dennoch, der putObject-Operationen für viele github-update nur funktioniert gut genug für mich.
Habe ich verwendet Bereitstellen, Bot sich in der Vergangenheit und ich war sehr glücklich mit ihm.
Kann es push-to-S3 oder auch FTP über Git und es kann auch führen Sie Ihre build-Skripte und sogar eine push-Benachrichtigung zu Locker für Sie.
https://deploybot.com/