Hoe het opzetten van een Geautomatiseerde Implementatie Pijplijn voor een S3 Website

0
194

De Hosting van uw website met behulp van S3 is vrij gebruikelijk op de AWS. Het is goedkoop, je hebt er geen servers, en biedt zelfs ondersteuning voor client-side web apps met frameworks zoals Reageren. Om dingen makkelijker te maken, stellen we een implementatie pijplijn te hanteren updates.

Hoe Werkt Dit?

Voor een S3 site, kunt u updates door aws s3 sync, of door het toevoegen van nieuwe objecten aan de bak handmatig. Echter, dit is een handmatig proces, en het kan worden geautomatiseerd vrij gemakkelijk.

Met behulp van AWS is CodePipeline CI/CD-service, u kunt een pijplijn om te luisteren naar de veranderingen in uw source control. Wanneer een wijziging wordt gedetecteerd, CodePipeline stuurt de bron over te CodeBuild, die zal omgaan met de bouw van het project. Voor web apps, is dit met name omvat met npm uitvoeren bouwen, die zal het pakket tot project activa in een productie op te bouwen. Het bouwen wordt rechtstreeks naar de S3, het bijwerken van de toepassing.

Opmerking: als uw project niet nodig elke vorm van het gebouw met npm, en u wilt synchroniseren met uw Git repo te S3, is de installatie veel eenvoudiger. Configureer de bron podium om verbinding te maken met uw source control, overslaan van het bouwen van het podium, kies dan “AWS S3” voor de implementatie stap. Voer in uw emmer details, en de inhoud van het archief zal worden gesynchroniseerd met de emmer op elke update.

Het instellen van de Pijplijn

Van de CodePipeline Console, klik op “Maak een Nieuwe Pijplijn,” geef het een naam, en kies voor het creëren van een nieuwe service rol.

Voor de bron-fase, selecteer je Git repository. Als u AWS eigen CodeCommit, kunt u de repo-en tak. Anders, je hebt om verbinding te maken met uw Github of Bitbucket account. Gitlab wordt niet ondersteund.

Voor het bouwen van het podium, selecteert u “CodeBuild,” en maak een nieuw te bouwen project.

Dit opent een dialoogvenster, die zal autoconfigure de bron voor de nieuwe CodeBuild project te gebruiken CodePipeline. U zult moeten uw omgeving configureren selecteer hier een OS, en kies een runtime-versie. U zult ook willen om een nieuwe service-rol, die zal moeten worden aangepast om te worden in staat om toegang te krijgen tot de implementatie van de emmer.

Voor de configuratie bouwen, kiezen voor een buildspec bestand.

Buildspec is een YAML-indeling voor het definiëren van wat commando ‘ s CodeBuild zal uitvoeren. Dit zal variëren afhankelijk van uw toepassing. Voor dit voorbeeld nemen we aan dat je aan het bouwen bent uw JavaScript-applicatie met npm. Plak de volgende tekst in een nieuw bestand met de naam buildspec.yml, geplaatst in de root van je archief.

versie: 0.2

fasen:
installeren:
runtime-versies:
nodejs: 10
commando ‘ s:
– npm ik npm@nieuwste -g
pre_build:
commando ‘ s:
– npm installeren
bouwen:
commando ‘ s:
– npm uitvoeren bouwen
post_build:
commando ‘ s:
– aws s3 sync ./bouwen s3://emmer-naam

Dit Buildspec daadwerkelijk zorgt voor implementatie te S3—tijdens de post gebouwd podium, CodeBuild zal uitvoeren aws s3 sync om de synchronisatie /build map met de opgegeven emmer.

Klik op maken op de build-project, dat zal u terug naar CodePipeline. Klik op “Volgende” en kies het overslaan van de implementatie fase, omdat CodeBuild kan omgaan met het uitvoeren van de opdracht. Maak de pijplijn.

Voor de eerste keer start, wordt het bouwen van het podium zal mislukken, becausee de CodeBuild service rol geen toegang hebben tot S3. Ga dan naar de IAM Management Console, vinden de CodeBuild rol onder de “Rollen” in en voeg een nieuw beleid dat de toegang tot S3. Echt, je moet waarschijnlijk beperkt tot alleen toegang tot de implementatie van de emmer.

Ga naar CodePipeline, en klikt u op “Release Wijzigen” op uw pijplijn handmatig activeren van een pijplijn-update. Als er niets mis is met uw Buildspec, zie je de pijplijn slagen.

Als u een commit te Git, een nieuw te bouwen zal worden gesponnen tot en S3 zal bijgewerkt worden met de bouw van artefacten. Als er fouten zijn in de bouw, CodePipeline zal stoppen voordat u gaat updaten.

Als uw pijplijn is mislukt, klikt u op “CodeBuild” in de zijbalk om de logs te bekijken voor de meest recente bouwen, die je zal helpen bij het opsporen van fouten.