Come Impostare un sistema Automatizzato di Distribuzione Pipeline per un S3 Sito

0
24

L’Hosting del tuo sito web utilizzando S3 è pratica abbastanza comune su AWS. E ‘ economico, non necessita di alcun server, e supporta anche lato client di applicazioni web con framework come Reagire. Per rendere le cose più facili, verrà impostato un deployment pipeline di gestire gli aggiornamenti.

Come Si Fa Questo Lavoro?

Per un S3 sito, è possibile fare gli aggiornamenti tramite l’esecuzione di aws s3 sync, o l’aggiunta di nuovi oggetti per il secchio manualmente. Tuttavia, questo è un processo manuale, e può essere automatizzato in modo abbastanza semplice.

Utilizzando AWS è CodePipeline CI/CD del servizio, è possibile configurare una pipeline per l’ascolto di modifiche nel controllo del codice sorgente. Ogni volta che viene rilevata una modifica, CodePipeline invia il sorgente a CodeBuild, che gestirà la costruzione del progetto. Per le applicazioni web, più in particolare comprende l’esecuzione di npm eseguire build, che creerà un pacchetto di progetto attività in una produzione di costruire. La build è inviato direttamente a S3, aggiornamento dell’applicazione.

Nota che se il progetto non richiede alcun tipo di edificio con npm, e si desidera solo per sincronizzare il tuo repo Git per S3, l’installazione sarà molto più facile. Semplicemente configurare l’origine palco per connettersi al controllo del codice sorgente, saltare la fase di creazione, quindi scegliere “AWS S3” per la fase di distribuzione. Inserisci nel tuo secchio di dettagli, e il contenuto della vostra repo saranno sincronizzati con il secchio su ogni aggiornamento.

Impostazione della Pipeline

Dal CodePipeline Console, fare clic su “Crea Nuovo Gasdotto,” dare un nome, e scegliere di creare un nuovo servizio di ruolo.

Per la fonte di stage, selezionare il repository Git. Se si utilizza AWS proprio CodeCommit, è possibile selezionare il repository e il ramo. In caso contrario, dovrete collegare il vostro Github o Bitbucket conto. Gitlab non è supportato.

Per la fase di creazione, selezionare “CodeBuild,” e creare un nuovo progetto di costruzione.

Si aprirà una finestra di dialogo, che si autoconfigure origine per la nuova CodeBuild progetto per utilizzare CodePipeline. Dovrete configurare il vostro ambiente qui, selezionare un sistema operativo, e scegliere una versione di runtime. Inoltre ti consigliamo di creare un nuovo servizio di ruolo, che dovrà essere modificato in modo da essere in grado di accedere ai vostri distribuzione secchio.

Per la configurazione di costruzione, si sceglie di utilizzare un buildspec file.

Buildspec è un formato YAML per la definizione di quali comandi CodeBuild verrà eseguito. Questo può variare a seconda dell’applicazione. Per questo esempio, si supponga che si sta costruendo la vostra applicazione JavaScript con npm. Incollare il seguente in un nuovo file chiamato buildspec.yml, posto alla radice del repository.

versione: 0.2

fasi:
installare:
runtime-versioni:
nodejs: 10
comandi:
– npm ho npm@di ultima g
pre_build:
comandi:
– npm install
costruire:
comandi:
– npm eseguire build
post_build:
comandi:
– aws s3 sync ./costruire s3://secchio nome

Questo Buildspec in realtà si prende cura di distribuzione S3—durante la fase di post, CodeBuild verrà eseguito aws s3 sync per sincronizzare il /costruire cartella con specificato il secchio.

Fare clic su crea sul progetto di costruzione, che vi porterà indietro a CodePipeline. Fare clic su “Avanti” e scegliere di saltare la fase di distribuzione, perché CodeBuild in grado di gestire l’esecuzione del comando. Creare la pipeline.

Per il primo periodo, la fase di esito negativo, becausee il CodeBuild servizio di ruolo non hanno accesso a S3. Oltre al capo della IAM Console di Gestione, trovare il CodeBuild ruolo in “Ruoli” e si allega un nuovo criterio che consente l’accesso a S3. Davvero, probabilmente si dovrebbe limitare tale accesso solo la distribuzione secchio.

Testa all’indietro sopra per CodePipeline, e fare clic su “Release Cambiamento” pipeline per attivare manualmente una pipeline di aggiornamento. Se niente è sbagliato con il vostro Buildspec, si dovrebbe vedere la pipeline di successo.

Se si effettua un commit Git, una nuova build sarà messo in rotazione, e S3 verrà aggiornato con il costruire artefatti. Se ci sono errori in compilazione, CodePipeline fermerà prima di aggiornare.

Se la pipeline è in errore, è possibile fare clic su “CodeBuild” nella barra laterale per visualizzare i registri per la generazione più recente, che vi aiuterà a individuare gli errori.