Hur man sätter Upp en Automatisk Distribution Pipeline för en S3 Webbplats

0
183

Värd för din webbplats med hjälp av S3 är ganska vanligt förekommande på AWS. Det är billigt, kräver inga servrar, och även stöd för klient-sidan web apps med ramverk som Reagerar. För att göra saker och ting lättare, vi ska ställa upp en distribution med gasledning för att hantera uppdateringar.

Hur Fungerar Det?

För en S3 webbplats, kan du göra uppdateringar genom att köra aws s3 sync, eller genom att lägga till nya objekt till hinken manuellt. Detta är dock en mycket handbok process, och det kan vara automatiserad ganska enkelt.

Med AWS är CodePipeline CI/CD-tjänst, kan du konfigurera en rörledning för att lyssna på förändringar i din källa kontroll. När en ändring upptäcks, CodePipeline kommer att skicka källa över att CodeBuild, som kommer att hantera bygga projektet. För web apps, detta främst inkluderar kör npm köra bygga, som kommer att paketet upp projektet tillgångar i en produktion bygga. Bygga skickas direkt till S3, uppdatera programmet.

Observera att om projektet inte kräver någon form av byggnad med npm, och du bara vill synkronisera din Git-repo till S3, installationen kommer att vara mycket lättare. Helt enkelt konfigurera source-scenen för att ansluta till din källa kontroll, hoppa över den bygga scenen, och välj sedan “AWS S3” för driftsättning steg. Ange i din hink detaljer, och innehållet i din repo kommer att synkroniseras med en hink på varje uppdatering.

Att sätta Upp ledningen

Från CodePipeline Console klickar du på “Skapa Ny Pipeline,” ge den ett namn, och välja att skapa en ny tjänst roll.

För source-scenen, välj din Git-arkivet. Om du använder AWS egna CodeCommit, du kan välja att räntan och gren. Annars, du kommer att behöva ansluta till ditt Github eller Bitbucket konto. Gitlab stöds inte.

För att bygga scenen, välj “CodeBuild,” och skapa ett nytt bygga projektet.

Detta kommer att öppna upp en dialogruta, som kommer att autoconfigure källan för den nya CodeBuild projekt för att använda CodePipeline. Du måste konfigurera din miljö här, välj ett OS, och välja en runtime-version. Du kommer också vill skapa en ny roll, som måste modifieras för att kunna få tillgång till din distribution hink.

För att bygga konfiguration, väljer att använda en buildspec fil.

Buildspec är ett YAML-formatet för att definiera vilka kommandon CodeBuild kommer att köra. Detta kommer att variera beroende på din ansökan. För detta exempel antar vi att du bygger din JavaScript-program med npm. Klistra in följande i en ny fil som heter buildspec.yml, placeras i roten på ditt arkiv.

version: 0.2

faser:
installera:
runtime-versioner:
nodejs: 10
kommandon:
– npm jag npm@senaste -g
pre_build:
kommandon:
– npm install
bygga:
kommandon:
– npm köra bygga
post_build:
kommandon:
– aws s3 synk ./bygga s3://hink-namn

Detta Buildspec faktiskt tar hand om distribution till S3—under inlägget bygga scenen, CodeBuild kommer att köra aws s3 sync för att synkronisera /build-mappen med de angivna hink.

Klicka på skapa på den bygga-projektet, som kommer att ta dig tillbaka till CodePipeline. Klicka på “Nästa” och välja att hoppa över utbyggnaden skede, eftersom CodeBuild kan hantera att köra kommandot. Skapa ledningen.

För det första kör, bygga scen kommer att misslyckas, becausee den CodeBuild service rollen inte har tillgång till S3. Chef över till IAM Management Console, hitta CodeBuild roll under “Roller” och bifoga en ny policy som ger tillgång till S3. Verkligen, du bör nog begränsa det till endast åtkomst för distribution hink.

Gå tillbaka över till CodePipeline, och klicka på “Release Ändra” på din pipeline för att manuellt utlösa en pipeline uppdatering. Om något är fel med din Buildspec, bör du se ledningen lyckas.

Om du gör ett åtagande till Git, nya bygga kommer att delas upp, och S3 kommer att uppdateras med bygga artefakter. Om det är något fel i att bygga, CodePipeline kommer att sluta innan du uppdaterar.

Om din pipeline misslyckas, kan du klicka på “CodeBuild” i sidomenyn om du vill visa loggarna för den senaste build, som kommer att hjälpa dig att spåra fel.