Agence web » Actualités du digital » Comment configurer un pipeline de déploiement automatisé pour un site Web S3

Comment configurer un pipeline de déploiement automatisé pour un site Web S3

comment-configurer-un-pipeline-de-deploiement-automatise-pour-un-site-7754886

L'hébergement de votre site Web à l'aide de S3 est une pratique assez courante sur AWS. Il est bon marché, ne nécessite aucun serveur et prend même en charge les applications Web côté client avec des frameworks tels que React. Pour faciliter les choses, nous allons mettre en place un pipeline de déploiement pour gérer les mises à jour.

Comment cela marche-t-il?

Pour un site S3, vous pouvez effectuer des mises à jour en exécutant aws s3 sync, ou en ajoutant manuellement de nouveaux objets au compartiment. Cependant, il s'agit d'un processus très manuel et il peut être automatisé assez facilement.

À l'aide du service CodePipeline CI / CD d'AWS, vous pouvez configurer un pipeline pour écouter les modifications de votre contrôle de source. Chaque fois qu'une modification est détectée, CodePipeline enverra la source à CodeBuild, qui gérera la création du projet. Pour les applications Web, cela inclut notamment l'exécution npm run build, qui regroupera les actifs du projet dans une version de production. La construction est envoyée directement à S3, mettant à jour l'application.

Notez que si votre projet ne nécessite aucun type de bâtiment avec npm, et vous voulez simplement synchroniser votre dépôt Git avec S3, la configuration sera beaucoup plus facile. Configurez simplement l'étape source pour vous connecter à votre contrôle de source, ignorez l'étape de construction, puis choisissez «AWS S3» pour l'étape de déploiement. Saisissez les détails de votre bucket et le contenu de votre dépôt sera synchronisé avec le bucket à chaque mise à jour.

Configuration du pipeline

Dans la console CodePipeline, cliquez sur «Créer un nouveau pipeline», donnez-lui un nom et choisissez de créer un nouveau rôle de service.

1595859515_173_comment-configurer-un-pipeline-de-deploiement-automatise-pour-un-site-4205681

Pour l'étape source, sélectionnez votre référentiel Git. Si vous utilisez le propre CodeCommit d'AWS, vous pouvez sélectionner le dépôt et la branche. Sinon, vous devrez vous connecter à votre compte Github ou Bitbucket. Gitlab n'est pas pris en charge.

1595859515_154_comment-configurer-un-pipeline-de-deploiement-automatise-pour-un-site-3840716

Pour l'étape de construction, sélectionnez «CodeBuild» et créez un nouveau projet de construction.

1595859515_276_comment-configurer-un-pipeline-de-deploiement-automatise-pour-un-site-6485681

Cela ouvrira une fenêtre de dialogue, qui configurera automatiquement la source du nouveau projet CodeBuild pour utiliser CodePipeline. Vous devrez configurer votre environnement ici, sélectionner un système d'exploitation et choisir une version d'exécution. Vous souhaiterez également créer un nouveau rôle de service, qui devra être modifié pour pouvoir accéder à votre bucket de déploiement.

1595859515_921_comment-configurer-un-pipeline-de-deploiement-automatise-pour-un-site-2576394

Pour la configuration de construction, choisissez d'utiliser un fichier buildspec.

1595859515_764_comment-configurer-un-pipeline-de-deploiement-automatise-pour-un-site-1580743

Buildspec est un format YAML pour définir les commandes que CodeBuild exécutera. Cela variera en fonction de votre application. Pour cet exemple, nous supposerons que vous créez votre application JavaScript avec npm. Collez ce qui suit dans un nouveau fichier appelé buildspec.yml, placé à la racine de votre référentiel.

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 10
    commands:
      - npm i npm@latest -g
  pre_build:
    commands:
      - npm install
  build:
    commands:
      - npm run build
  post_build:
    commands:
      - aws s3 sync ./build s3://bucket-name

Ce Buildspec s'occupe en fait du déploiement sur S3 – pendant la phase de post-build, CodeBuild s'exécutera aws s3 sync pour synchroniser le /build dossier avec le compartiment spécifié.

Cliquez sur créer sur le projet de construction, ce qui vous ramènera à CodePipeline. Cliquez sur "Suivant" et choisissez d'ignorer l'étape de déploiement, car CodeBuild peut gérer l'exécution de la commande. Créez le pipeline.

Pour la première exécution, l'étape de génération échouera, car le rôle de service CodeBuild n'a pas accès à S3. Rendez-vous sur la console de gestion IAM, recherchez le rôle CodeBuild sous «Rôles» et attachez une nouvelle stratégie qui autorise l'accès à S3. Vraiment, vous devriez probablement limiter cela pour accéder uniquement au compartiment de déploiement.

1595859515_764_comment-configurer-un-pipeline-de-deploiement-automatise-pour-un-site-1580743

Revenez à CodePipeline et cliquez sur «Release Change» sur votre pipeline pour déclencher manuellement une mise à jour du pipeline. Si rien ne va pas avec votre Buildspec, vous devriez voir le pipeline réussir.

1595859516_927_comment-configurer-un-pipeline-de-deploiement-automatise-pour-un-site-5273196

Si vous effectuez un commit sur Git, une nouvelle compilation sera lancée et S3 sera mis à jour avec les artefacts de construction. S'il y a des erreurs dans la construction, CodePipeline s'arrêtera avant la mise à jour.

Si votre pipeline échoue, vous pouvez cliquer sur «CodeBuild» dans la barre latérale pour afficher les journaux de la version la plus récente, ce qui vous aidera à localiser les erreurs.

★★★★★