Didacticiel : Création d'un pipeline simple (compartiment S3) - AWS CodePipeline

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Didacticiel : Création d'un pipeline simple (compartiment S3)

Le moyen le plus simple de créer un pipeline consiste à utiliser l'assistant de création de pipeline de la AWS CodePipeline console.

Dans ce didacticiel, vous allez créer un pipeline en deux étapes qui utilise un compartiment source S3 versionné et qui permet de CodeDeploy publier un exemple d'application.

Note

Lorsque Amazon S3 est le fournisseur source de votre pipeline, vous pouvez compresser votre ou vos fichiers source dans un seul fichier .zip et télécharger le fichier .zip dans votre compartiment source. Vous pouvez également charger un seul fichier décompressé ; toutefois, les actions en aval qui attendent un fichier .zip échoueront.

Important

Dans le cadre de la création d'un pipeline, un compartiment d'artefacts S3 fourni par le client sera utilisé CodePipeline pour les artefacts. (Ceci est différent du compartiment utilisé pour une action source S3.) Si le compartiment d'artefacts S3 se trouve dans un compte différent de celui de votre pipeline, assurez-vous que le compartiment d'artefacts S3 appartient à cette personne sûre et Comptes AWS qu'elle sera fiable.

Une fois ce pipeline simple créé, vous ajoutez une autre étape, puis vous désactivez et activez la transition entre les étapes.

Important

La plupart des actions que vous ajoutez à votre pipeline dans le cadre de cette procédure impliquent AWS des ressources que vous devez créer avant de créer le pipeline. AWS les ressources pour vos actions source doivent toujours être créées dans la même AWS région que celle où vous créez votre pipeline. Par exemple, si vous créez votre pipeline dans la région USA Est (Ohio), votre CodeCommit référentiel doit se trouver dans la région USA Est (Ohio).

Vous pouvez ajouter des actions interrégionales lorsque vous créez votre pipeline. AWS les ressources pour les actions interrégionales doivent se trouver dans la même AWS région que celle où vous prévoyez d'exécuter l'action. Pour de plus amples informations, veuillez consulter Ajouter une action interrégionale dans CodePipeline.

Avant de commencer, suivez les étapes requises détaillées dans Commencer avec CodePipeline.

Étape 1 : créer un compartiment source S3 pour votre application

Vous pouvez stocker vos fichiers ou applications source dans n'importe quel emplacement versionné. Dans ce didacticiel, vous allez créer un compartiment S3 pour les exemples de fichiers d'application et activer le contrôle des versions sur ce compartiment. Une fois que vous aurez activé la gestion des versions, vous pourrez copier les modèles d'application dans ce compartiment.

Pour créer un compartiment S3
  1. Connectez-vous à la console à l'adresse AWS Management Console. Ouvrez la console S3.

  2. Choisissez Créer un compartiment.

  3. Dans Nom du compartiment, saisissez un nom pour votre compartiment (par exemple, awscodepipeline-demobucket-example-date).

    Note

    Dans la mesure où tous les noms de compartiment dans Amazon S3 doivent être uniques, utilisez l'un des vôtres, et non le nom indiqué dans l'exemple. Vous pouvez modifier le nom de l'exemple simplement en y ajoutant la date. Notez ce nom, car vous l'utiliserez durant ce didacticiel.

    Dans Région, choisissez la région dans laquelle vous souhaitez créer votre pipeline, par exemple USA West (Oregon), puis choisissez Create bucket.

  4. Une fois le compartiment créé, une bannière de réussite apparaît. Choisissez Go to bucket details (Accéder aux détails du compartiment).

  5. Dans l'onglet Propriétés, choisissez Versioning. Choisissez Activer la gestion des versions, puis Enregistrer.

    Lorsque le versionnement est activé, Amazon S3 enregistre chaque version de chaque objet du compartiment.

  6. Sous l'onglet Autorisations, laissez les valeurs par défaut. Pour de plus amples informations sur les autorisations des objets et des compartiments S3, veuillez consulter Spécification des autorisations d'une stratégie.

  7. Ensuite, téléchargez un exemple et enregistrez-le dans un dossier ou un répertoire sur votre ordinateur local.

    1. Choisissez l'une des options suivantes. Choisissez SampleApp_Windows.zip si vous souhaitez suivre les étapes de ce didacticiel pour les instances Windows Server.

      • Si vous souhaitez effectuer un déploiement sur des instances Amazon Linux à l'aide de CodeDeploy, téléchargez l'exemple d'application ici : SampleApp_Linux.zip.

      • Si vous souhaitez effectuer un déploiement sur des instances Windows Server à l'aide de CodeDeploy, téléchargez l'exemple d'application ici : SampleApp_Windows.zip.

      L'exemple d'application contient les fichiers suivants à déployer avec CodeDeploy :

      • appspec.yml— Le fichier de spécification de l'application (AppSpecfichier) est un fichier YAMLau format -formaté utilisé CodeDeploy pour gérer un déploiement. Pour plus d'informations sur le AppSpec fichier, reportez-vous à la section Référence CodeDeploy AppSpec du fichier dans le Guide de AWS CodeDeploy l'utilisateur.

      • index.html— Le fichier d'index contient la page d'accueil de l'exemple d'application déployé.

      • LICENSE.txt— Le fichier de licence contient les informations de licence de l'exemple d'application.

      • Fichiers pour scripts : l'exemple d'application utilise des scripts pour écrire des fichiers texte dans un emplacement de votre instance. Un fichier est écrit pour chacun des événements du cycle de vie du CodeDeploy déploiement, comme suit :

        • scriptsDossier (exemple Linux uniquement) : le dossier contient les scripts shell suivants pour installer les dépendances et démarrer et arrêter l'exemple d'application pour le déploiement automatique :install_dependencies,start_server, etstop_server.

        • (Exemple Windows uniquement) before-install.bat — Il s'agit d'un script batch pour l'événement du cycle de vie du BeforeInstall déploiement, qui sera exécuté pour supprimer les anciens fichiers écrits lors des déploiements précédents de cet exemple et créer un emplacement sur votre instance où écrire les nouveaux fichiers.

    2. Téléchargez le fichier compressé (zippé). Ne décompressez pas le fichier.

  8. Dans la console Amazon S3, chargez le fichier correspondant à votre compartiment :

    1. Sélectionnez Charger.

    2. Faites glisser et déposez le fichier ou choisissez Ajouter des fichiers et recherchez le fichier.

    3. Sélectionnez Charger.

Étape 2 : créer des instances Amazon EC2 Windows et installer l' CodeDeploy agent

Note

Ce didacticiel fournit des exemples d'étapes pour créer des instances Amazon EC2 Windows. Pour des exemples d'étapes de création d'instances Amazon EC2 Linux, consultezÉtape 3 : créer une instance Amazon EC2 Linux et installer l' CodeDeploy agent. Lorsque vous êtes invité à indiquer le nombre d'instances à créer, spécifiez 2 instances.

Au cours de cette étape, vous créez les EC2 instances Amazon de Windows Server sur lesquelles vous allez déployer un exemple d'application. Dans le cadre de ce processus, vous créez un rôle d'instance avec des politiques qui autorisent l'installation et la gestion de l' CodeDeploy agent sur les instances. L' CodeDeploy agent est un progiciel qui permet à une instance d'être utilisée dans CodeDeploy des déploiements. Vous attachez également des politiques qui permettent à l'instance de récupérer les fichiers utilisés par l' CodeDeploy agent pour déployer votre application et de permettre à l'instance d'être gérée par SSM celle-ci.

Pour créer un rôle d'instance
  1. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/).

  2. Dans le tableau de bord de la console, choisissez Rôles.

  3. Sélectionnez Créer un rôle.

  4. Sous Sélectionner le type d'entité de confiance, sélectionnez Service AWS. Sous Choisir un cas d'utilisation, sélectionnez EC2, puis choisissez Suivant : Autorisations.

  5. Recherchez et sélectionnez la politique nommée AmazonEC2RoleforAWSCodeDeploy.

  6. Recherchez et sélectionnez la politique nommée AmazonSSMManagedInstanceCore. Choisissez Suivant : Balises.

  7. Choisissez Suivant : Vérification. Saisissez un nom pour le rôle (par exemple, EC2InstanceRole).

    Note

    Notez le nom de votre rôle pour l'étape suivante. Vous choisissez ce rôle lorsque vous créez votre instance.

    Sélectionnez Créer un rôle.

Pour lancer des instances
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans la navigation latérale, choisissez Instances, puis sélectionnez Launch instances en haut de la page.

  3. Sous Nom et balises, dans Nom, entrezMyCodePipelineDemo. Cela affecte aux instances une balise Key of Name et une balise Value deMyCodePipelineDemo. Vous créerez ensuite une CodeDeploy application qui déploiera l'exemple d'application sur les instances. CodeDeploysélectionne les instances à déployer en fonction des balises.

  4. Sous Images de l'application et du système d'exploitation (Amazon Machine Image), choisissez l'option Windows. (Ceci AMI est décrit comme la base Microsoft Windows Server 2019 et est étiqueté « éligible au niveau gratuit » et se trouve sous Démarrage rapide.)

  5. Sous Type d'instance, choisissez le t2.micro type éligible au niveau gratuit comme configuration matérielle de votre instance.

  6. Sous Paire de clés (connexion), choisissez une paire de clés ou créez-en une.

    Vous pouvez également choisir Proceed sans paire de clés.

    Note

    Pour les besoins de ce didacticiel, vous pouvez procéder sans paire de clés. Pour vous connecter SSH à vos instances, créez ou utilisez une paire de clés.

  7. Sous Paramètres réseau, procédez comme suit.

    Dans Attribuer automatiquement une adresse IP publique, assurez-vous que le statut est Activé.

    • En regard de Attribuer un groupe de sécurité, choisissez Créer un groupe de sécurité.

    • Dans la ligne correspondant à SSH, sous Type de source, sélectionnez Mon adresse IP.

    • Choisissez Ajouter un groupe de sécurité HTTP, puis sous Type de source, sélectionnez Mon adresse IP.

  8. Développez Advanced Details (Détails avancés). Dans le profil d'IAMinstance, choisissez le IAM rôle que vous avez créé lors de la procédure précédente (par exemple,EC2InstanceRole).

  9. Sous Résumé, sous Nombre d'instances, entrez2.

  10. Choisissez Launch instance (Lancer une instance).

  11. Sélectionnez View all instances (Afficher toutes les instances) pour fermer la page de confirmation et revenir à la console.

  12. Sur la page Instances, vous pouvez afficher le statut du lancement. Lorsque vous lancez une instance, son état initial est pending. Après le démarrage de l'instance, son état running devient et elle reçoit un DNS nom public. (Si la DNS colonne Public n'est pas affichée, choisissez l'icône Afficher/Masquer, puis sélectionnez Public DNS.)

  13. Vous devrez peut-être patienter quelques minutes avant de pouvoir vous connecter à l’instance. Vérifiez que votre instance a réussi les contrôles de statut. Cette information est visible dans la colonne Contrôles des statuts.

Étape 3 : créer une application dans CodeDeploy

Dans CodeDeploy, une application est un identifiant, sous la forme d'un nom, pour le code que vous souhaitez déployer. CodeDeploy utilise ce nom pour garantir que la combinaison correcte de révision, de configuration de déploiement et de groupe de déploiement est référencée lors d'un déploiement. Vous sélectionnez le nom de l' CodeDeploy application que vous créez à cette étape lorsque vous créerez votre pipeline ultérieurement dans ce didacticiel.

Vous devez d'abord créer un rôle de service CodeDeploy à utiliser. Si vous avez déjà créé un rôle de service, il n'est pas nécessaire d'en créer un autre.

Pour créer un rôle CodeDeploy de service
  1. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/).

  2. Dans le tableau de bord de la console, choisissez Rôles.

  3. Sélectionnez Créer un rôle.

  4. Sous Sélectionner une entité de confiance, sélectionnez Service AWS. Sous Use case (Cas d'utilisation), choisissez CodeDeploy. Choisissez CodeDeployparmi les options répertoriées. Choisissez Suivant. La stratégie gérée AWSCodeDeployRole est déjà attachée au rôle.

  5. Choisissez Suivant.

  6. Entrez un nom pour le rôle (par exemple, CodeDeployRole), puis choisissez Créer un rôle.

Pour créer une application dans CodeDeploy
  1. Ouvrez la CodeDeploy console dans https://console.aws.amazon.com/codedeploy.

  2. Si la page Applications n'apparaît pas, AWS CodeDeploy dans le menu, choisissez Applications.

  3. Choisissez Créer une application.

  4. Dans Nom de l'application, saisissez MyDemoApplication.

  5. Dans Compute Platform, choisissez EC2/On-premises.

  6. Choisissez Créer une application.

Pour créer un groupe de déploiement dans CodeDeploy
  1. Sur la page qui affiche votre application, choisissez Créer un groupe de déploiement.

  2. Dans Nom du groupe de déploiement, saisissez MyDemoDeploymentGroup.

  3. Dans Rôle de service, choisissez le rôle de service que vous avez créé précédemment. Vous devez utiliser un rôle de service qui fait confiance AWS CodeDeploy avec, au minimum, la confiance et les autorisations décrites dans la section Créer un rôle de service pour CodeDeploy. Pour obtenir le rôle de serviceARN, voir Obtenir le rôle de service ARN (console).

  4. Sous Type de déploiement, choisissez Sur place.

  5. Sous Configuration de l'environnement, choisissez Amazon EC2 Instances. Choisissez Nom dans le champ Clé, puis entrez dans le champ ValeurMyCodePipelineDemo.

    Important

    Vous devez choisir ici la même valeur pour la clé Nom que vous avez attribuée à vos EC2 instances lorsque vous les avez créées. Si vous avez balisé vos instances avec une valeur autre que MyCodePipelineDemo, veillez à l'utiliser ici.

  6. Sous Configuration de l'agent avec AWS Systems Manager, choisissez Now et planifiez les mises à jour. L'agent est alors installé sur l'instance. L'instance Windows est déjà configurée avec l'SSMagent et sera désormais mise à jour avec l' CodeDeploy agent.

  7. Sous Paramètres de déploiement, sélectionnezCodeDeployDefault.OneAtaTime.

  8. Sous Load Balancer, assurez-vous que la case Activer l'équilibrage de charge n'est pas cochée. Vous n'avez pas besoin de configurer un équilibreur de charge ou de choisir un groupe cible pour cet exemple. Une fois que vous avez désélectionné la case, les options de l'équilibreur de charge ne s'affichent pas.

  9. Dans la section Avancé, laissez les valeurs par défaut.

  10. Choisissez Créer un groupe de déploiement.

Étape 4 : Créez votre premier pipeline dans CodePipeline

Dans cette partie du didacticiel, vous créez le pipeline. Le modèle s'exécute automatiquement par le biais du pipeline.

Pour créer un processus de publication CodePipeline automatisé
  1. Connectez-vous à la CodePipeline console AWS Management Console et ouvrez-la à l'adresse http://console.aws.amazon. com/codesuite/codepipeline/home.

  2. Sur la page Bienvenue, la page Démarrez ou la page Pipelines, choisissez Créer un pipeline.

  3. Dans l'Étape 1 : Choisir les paramètres d'un pipeline, dans Nom du pipeline, saisissez MyFirstPipeline.

    Note

    Si vous choisissez un autre nom pour votre pipeline, veillez à utiliser ce nom au lieu de MyFirstPipeline pendant le reste de ce didacticiel. Une fois le pipeline créé, vous ne pouvez plus modifier son nom. Les noms de pipeline sont soumis à des limites. Pour de plus amples informations, veuillez consulter Quotas dans AWS CodePipeline.

  4. CodePipeline fournit des pipelines de type V1 et V2, dont les caractéristiques et le prix diffèrent. Le type V2 est le seul type que vous pouvez choisir dans la console. Pour plus d'informations, consultez la section Types de pipelines. Pour plus d'informations sur la tarification CodePipeline, consultez la section Tarification.

  5. Dans Rôle du service, sélectionnez l'une des options suivantes :

    • Choisissez Nouveau rôle de service pour CodePipeline autoriser la création d'un nouveau rôle de service dansIAM.

    • Choisissez Rôle de service existant pour utiliser un rôle de service déjà créé dansIAM. Dans Role name (Nom du rôle), choisissez votre rôle de service à partir de la liste.

  6. Laissez les paramètres sous Advanced settings (Paramètres avancés) à leurs valeurs par défaut, puis choisissez Suivant.

  7. Dans Step 2: Add source stage (Étape 2 : Ajouter une étape source), dans Source provider (Fournisseur source), choisissez Amazon S3. Dans Bucket (Compartiment), entrez le nom du compartiment S3 que vous avez créé dans Étape 1 : créer un compartiment source S3 pour votre application. Dans S3 object key (Clé d'objet S3), entrez la clé d'objet avec ou sans chemin d'accès au fichier, sans oublier d'inclure l'extension de fichier. Par exemple, pour SampleApp_Windows.zip, saisissez le nom de l’exemple de fichier, comme indiqué dans cet exemple :

    SampleApp_Windows.zip

    Choisissez Next step (Étape suivante).

    Sous Modifier les options de détection, ne modifiez pas les valeurs par défaut. Cela permet d' CodePipeline utiliser Amazon CloudWatch Events pour détecter les modifications apportées à votre compartiment source.

    Choisissez Suivant.

  8. Dans Step 3: Add build stage (Étape 3 : Ajouter une étape de génération), choisissez Skip build stage (Ignorer l'étape de génération) et acceptez le message d'avertissement en choisissant à nouveau Skip (Ignorer). Choisissez Suivant.

  9. À l'étape 4 : Ajouter une étape de déploiement, dans Fournisseur de déploiement, sélectionnez CodeDeploy . Le champ Région est par défaut identique Région AWS à celui de votre pipeline. Dans Application name (Nom de l'application), saisissez MyDemoApplication, ou cliquez sur le bouton Refresh (Actualiser) et choisissez le nom de l'application dans la liste. Dans Groupe de déploiement, entrez MyDemoDeploymentGroup ou choisissez-le dans la liste, puis choisissez Suivant.

    Note

    « Déploiement » est le nom donné par défaut à l'étape du pipeline créée à l'Étape 4 : Ajouter une étape de déploiement, tout comme « Source » est le nom donné à la première étape du pipeline.

  10. Dans Step 5: Review, vérifiez les informations puis choisissez Create pipeline.

  11. Le pipeline commence à s'exécuter. Vous pouvez consulter les messages de progression et de réussite et d'échec CodePipeline lorsque l'exemple déploie une page Web sur chacune des EC2 instances Amazon du CodeDeploy déploiement.

Félicitations ! Vous venez de créer un pipeline simple dans CodePipeline. Le pipeline comporte deux étapes :

  • Une étape source nommée Source, qui détecte les modifications apportées à l'exemple d'application versionnée stocké dans le compartiment S3 et extrait ces modifications dans le pipeline.

  • Une phase de déploiement qui déploie ces modifications sur les EC2 instances avec CodeDeploy.

Maintenant, vérifiez les résultats.

Pour vérifier que votre pipeline a été exécuté avec succès
  1. Affichez la progression initiale du pipeline. L'état de chaque étape passe de Pas encore d'exécution à En cours, puis devient soit Réussi, soit Échec. Le pipeline doit terminer la première exécution en quelques minutes.

  2. Lorsque l’état de l’action affiche Réussi, dans la zone d’état de l’étape Déployer, choisissez Détails. Cela ouvre la CodeDeploy console.

  3. Dans l'onglet Groupe de déploiement, sous Événements du cycle de vie de déploiement, choisissez un ID d’instance. Ceci ouvre la console EC2.

  4. Dans l'onglet Description, dans Public DNS, copiez l'adresse, puis collez-la dans la barre d'adresse de votre navigateur Web. Veuillez consulter la page d'index pour le modèle d'application que vous avez chargé dans votre compartiment S3.

    La page Web s'affiche pour l'exemple d'application que vous avez chargé dans votre compartiment S3.

Pour plus d'informations sur les étapes, les actions et le fonctionnement des pipelines, consultez CodePipeline concepts .

(Facultatif) Étape 5 : Ajouter une autre étape à votre pipeline

Ajoutez maintenant une autre étape dans le pipeline pour effectuer le déploiement des serveurs de test vers les serveurs de production à l'aide de CodeDeploy. Tout d'abord, vous créez un autre groupe de déploiement CodePipelineDemoApplication dans l'entrée CodeDeploy. Ensuite, vous ajoutez une étape qui inclut une action utilisant ce groupe de déploiement. Pour ajouter une autre étape, vous utilisez la CodePipeline console ou le AWS CLI pour récupérer et modifier manuellement la structure du pipeline dans un JSON fichier, puis vous exécutez la update-pipeline commande pour mettre à jour le pipeline avec vos modifications.

Créez un deuxième groupe de déploiement dans CodeDeploy

Note

Dans cette partie du didacticiel, vous allez créer un deuxième groupe de déploiement, mais le déployer sur les mêmes EC2 instances Amazon que précédemment. Cette étape est uniquement abordée à des fins pédagogiques. Il est spécialement conçu pour ne pas vous montrer comment les erreurs sont affichées. CodePipeline

Pour créer un deuxième groupe de déploiement dans CodeDeploy
  1. Ouvrez la CodeDeploy console dans https://console.aws.amazon.com/codedeploy.

  2. Choisissez Applications, puis dans la liste des applications, choisissez MyDemoApplication.

  3. Choisissez l'onglet Groupes de déploiement, puis choisissez Créer un groupe de déploiement.

  4. Sur la page Créer un groupe de déploiement, sous Nom du groupe de déploiement, saisissez un nom pour le deuxième groupe de déploiement (par exemple, CodePipelineProductionFleet).

  5. Dans Rôle de service, choisissez le même rôle de CodeDeploy service que celui que vous avez utilisé pour le déploiement initial (pas le rôle de CodePipeline service).

  6. Sous Type de déploiement, choisissez Sur place.

  7. Sous Configuration de l'environnement, choisissez Amazon EC2 Instances. Choisissez Nom dans la zone Clé et, dans la zone Valeur, choisissez MyCodePipelineDemo dans la liste. Conservez la configuration par défaut pour Paramètres de déploiement.

  8. Dans Configuration de déploiement, choisissez CodeDeployDefault.OneAtaTime.

  9. Dans Équilibreur de charge, désélectionnez Activer l'équilibrage de charge.

  10. Choisissez Créer un groupe de déploiement.

Ajout du groupe de déploiement en tant qu'étape supplémentaire dans votre pipeline

Maintenant que vous disposez d'un autre groupe de déploiement, vous pouvez ajouter une étape qui utilise ce groupe de déploiement pour effectuer le déploiement sur les mêmes EC2 instances que celles que vous avez utilisées précédemment. Vous pouvez utiliser la CodePipeline console ou le AWS CLI pour ajouter cette étape.

Création d'une troisième étape (console)

Vous pouvez utiliser la CodePipeline console pour ajouter une nouvelle étape qui utilise le nouveau groupe de déploiement. Comme ce groupe de déploiement est déployé sur les EC2 instances que vous avez déjà utilisées, l'action de déploiement échoue à cette étape.

  1. Connectez-vous à la CodePipeline console AWS Management Console et ouvrez-la à l'adresse http://console.aws.amazon. com/codesuite/codepipeline/home.

  2. Dans Nom, choisissez le nom du pipeline que vous avez créé, MyFirstPipeline.

  3. Sur la page des détails du pipeline, choisissez Edit.

  4. Sur la page Modifier, choisissez + Ajouter une étape pour ajouter une étape immédiatement après l'étape Déploiement.

    Image montrant le bouton + Ajouter une étape sur l'écran d'édition
  5. Dans Add stage (Ajouter une étape), dans Stage name (Nom de l'étape), saisissez Production. Sélectionnez Ajouter une étape.

  6. Dans la nouvelle étape, choisissez + Add action group (+ Ajouter un groupe d'actions).

  7. Dans Edit action (Modifier l'action), dans Action name (Nom de l'action), saisissez Deploy-Second-Deployment. Dans Action provider, sous Deploy, sélectionnez CodeDeploy.

  8. Dans la CodeDeploy section, dans Nom de l'application, choisissez MyDemoApplication dans la liste déroulante, comme vous l'avez fait lorsque vous avez créé le pipeline. Dans Groupe de déploiement, choisissez le groupe de déploiement que vous venez de créer, CodePipelineProductionFleet. Dans Input artifacts (Artefacts d'entrée), choisissez l'artefact d'entrée à partir de l'action source. Choisissez Save (Enregistrer).

  9. Sur la page Modifier, choisissez Enregistrer. Dans Enregistrer les modifications du pipeline, choisissez Enregistrer.

  10. Bien que la nouvelle étape ait été ajoutée à votre pipeline, l'état affiché est Pas encore d'exécution, car aucune modification n'a déclenché une autre exécution du pipeline. Vous devez relancer manuellement la dernière révision pour voir comment le pipeline modifié s'exécute. Sur la page des détails du pipeline, choisissez Libérer le changement, puis sélectionnez Libérer lorsque vous y êtes invité. Cette opération exécute la révision la plus récente disponible dans chaque emplacement source spécifié d'une action source à travers le pipeline.

    Vous pouvez également utiliser le AWS CLI pour réexécuter le pipeline, à partir d'un terminal sur votre machine Linux, macOS ou Unix locale, ou d'une invite de commande sur votre machine Windows locale, exécutez la start-pipeline-execution commande en spécifiant le nom du pipeline. Cette action exécute l'application dans votre compartiment source par le biais du pipeline une seconde fois.

    aws codepipeline start-pipeline-execution --name MyFirstPipeline

    Cette commande renvoie un objet pipelineExecutionId.

  11. Retournez à la CodePipeline console et dans la liste des pipelines, choisissez MyFirstPipelined'ouvrir la page d'affichage.

    Le pipeline affiche trois étapes et l'état de l'artefact en cours d'exécution durant ces trois étapes. Le pipeline exécute alors toutes les étapes, ce qui peut prendre jusqu'à cinq minutes. Vous constaterez que le déploiement aboutit lors des deux premières étapes, comme avant, mais que lors de l'étape Production, l'action Deploy-Second-Deployment échoue.

  12. Dans l'action Deploy-Second-Deployment, choisissez Détails. Vous êtes redirigé vers la page de CodeDeploy déploiement. Dans ce cas, l'échec est dû au déploiement du premier groupe d'instances sur toutes les EC2 instances, ne laissant aucune instance pour le second groupe de déploiement.

    Note

    Cet échec est intentionnel, afin de démontrer ce qui se passe en cas d'échec dans une étape du pipeline.

Création d'une troisième étape (CLI)

Bien que l'utilisation du AWS CLI pour ajouter une étape à votre pipeline soit plus complexe que celle de la console, elle offre une meilleure visibilité sur la structure du pipeline.

Pour créer une troisième étape pour votre pipeline
  1. Ouvrez une session de terminal sur votre machine Linux, macOS ou Unix locale, ou une invite de commande sur votre machine Windows locale, et exécutez la get-pipeline commande pour afficher la structure du pipeline que vous venez de créer. Pour MyFirstPipeline, saisissez la commande suivante :

    aws codepipeline get-pipeline --name "MyFirstPipeline"

    Cette commande renvoie la structure de MyFirstPipeline. La première partie du résultat doit être semblable à l'exemple suivant :

    { "pipeline": { "roleArn": "arn:aws:iam::80398EXAMPLE:role/AWS-CodePipeline-Service", "stages": [ ...

    La dernière partie de la sortie inclut les métadonnées du pipeline et doit être similaire à ce qui suit :

    ... ], "artifactStore": { "type": "S3" "location": "amzn-s3-demo-bucket", }, "name": "MyFirstPipeline", "version": 4 }, "metadata": { "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline", "updated": 1501626591.112, "created": 1501626591.112 } }
  2. Copiez et collez cette structure dans un éditeur de texte brut et enregistrez le fichier en tant que pipeline.json. Pour plus de commodité, enregistrez ce fichier dans le même répertoire où vous exécutez les commandes aws codepipeline.

    Note

    Vous pouvez les rediriger JSON directement dans un fichier à l'aide de la get-pipeline commande suivante :

    aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
  3. Copiez la section de l'étape Déployer et collez-la après les deux premières étapes. Il s'agit d'une étape de déploiement, tout comme l'étape Déployer, par conséquent vous l'utiliserez comme modèle pour la troisième étape.

  4. Modifiez le nom de l'étape et les détails du groupe de déploiement.

    L'exemple suivant montre ce JSON que vous ajoutez au fichier pipeline.json après l'étape de déploiement. Modifiez les éléments mis en surbrillance en insérant les nouvelles valeurs. N'oubliez pas d'inclure une virgule pour séparer les définitions des étapes Déployer et Production.

    , { "name": "Production", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-Second-Deployment", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineProductionFleet" }, "runOrder": 1 } ] }
  5. Si vous travaillez avec la structure de pipeline récupérée à l'aide de la get-pipeline commande, vous devez supprimer les metadata lignes du JSON fichier. Sinon, la commande update-pipeline ne peut pas l'utiliser. Supprimez les lignes "metadata": { } et les champs "updated", "created" et "pipelineARN".

    Par exemple, supprimez les lignes suivantes de la structure :

    "metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" }

    Enregistrez le fichier.

  6. Exécutez la update-pipeline commande en spécifiant le JSON fichier de pipeline, comme suit :

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json

    Cette commande renvoie toute la structure du pipeline mise à jour.

    Important

    N'oubliez pas d'inclure file:// devant le nom du fichier. Il est nécessaire dans cette commande.

  7. Exécutez la commande start-pipeline-execution en spécifiant le nom du pipeline. Cette action exécute l'application dans votre compartiment source par le biais du pipeline une seconde fois.

    aws codepipeline start-pipeline-execution --name MyFirstPipeline

    Cette commande renvoie un objet pipelineExecutionId.

  8. Ouvrez la CodePipeline console et MyFirstPipelinechoisissez dans la liste des pipelines.

    Le pipeline affiche trois étapes et l'état de l'artefact en cours d'exécution durant ces trois étapes. Le pipeline exécute alors toutes les étapes, ce qui peut prendre jusqu'à cinq minutes. Bien que le déploiement aboutisse lors des deux premières étapes, comme avant, l'étape Production indique que l'action Deploy-Second-Deployment a échoué.

  9. Dans l'action Deploy-Second-Deployment, choisissez Détails pour voir les détails de l'échec. Vous êtes redirigé vers la page de détails du CodeDeploy déploiement. Dans ce cas, l'échec est dû au déploiement du premier groupe d'instances sur toutes les EC2 instances, ne laissant aucune instance pour le second groupe de déploiement.

    Note

    Cet échec est intentionnel, afin de démontrer ce qui se passe en cas d'échec dans une étape du pipeline.

(Facultatif) Étape 6 : désactiver et activer les transitions entre les étapes dans CodePipeline

Vous pouvez activer ou désactiver la transition entre les étapes d'un pipeline. La désactivation de la transition entre les étapes vous permet de contrôler manuellement les transitions d'une étape à une autre. Par exemple, vous pouvez exécuter les deux premières étapes d'un pipeline, puis désactiver les transitions vers la troisième étape tant que vous n'êtes pas prêt à procéder au déploiement sur la production, ou bien si vous devez remédier à un problème ou à un échec dans cette étape.

Pour désactiver et activer les transitions entre les étapes d'un CodePipeline pipeline
  1. Ouvrez la CodePipeline console et MyFirstPipelinechoisissez dans la liste des pipelines.

  2. Sur la page des détails du pipeline, choisissez le bouton Désactiver la transition entre la deuxième étape, (Déployer) et la troisième étape que vous avez ajoutée à la section précédente (Production).

  3. Dans Disable transition (Désactiver la transition), saisissez une raison pour désactiver la transition entre les étapes et choisissez Disable (Désactiver).

    La flèche entre les étapes affiche une icône et le changement de couleur, ainsi que le bouton Enable transition (Activer la transition).

    Image montrant la raison saisie pour désactiver la transition : « Désactiver la transition pendant que je corrige l'échec »
  4. Chargez à nouveau votre modèle dans le compartiment S3. Le compartiment étant versionné, ce changement lance le pipeline.

  5. Revenez à la page des détails de votre pipeline et observez l'état des étapes. Le pipeline affiche alors les réussites et les progrès en cours dans les deux premières étapes, mais aucune modification ne se produit au niveau de la troisième étape. Ce processus peut prendre quelques minutes.

  6. Activez la transition en cliquant sur le bouton Enable transition (Activer la transition) entre les deux étapes. Dans la boîte de dialogue Activation d'une transition, choisissez Activer. L'étape lance l'exécution en quelques minutes et essaie de traiter l'artefact qui a déjà été exécuté dans les deux premières étapes du pipeline.

    Note

    Si vous souhaitez que cette troisième étape réussisse, modifiez le groupe de CodePipelineProductionFleet déploiement avant d'activer la transition et spécifiez un autre ensemble d'EC2instances dans lequel l'application est déployée. Pour de plus amples informations sur cette étape, veuillez consulter Modification des paramètres de groupe de déploiement. Si vous créez d'autres EC2 instances, vous risquez d'encourir des coûts supplémentaires.

Étape 7 : Nettoyer les ressources

Vous pouvez utiliser certaines des ressources que vous avez créées au cours de ce didacticiel pour le Didacticiel : Création d'un pipeline à quatre étapes. Par exemple, vous pouvez réutiliser l' CodeDeploy application et le déploiement. Vous pouvez configurer une action de génération avec un fournisseur tel qu' CodeBuildun service de génération entièrement géré dans le cloud. Vous pouvez également configurer une action de génération qui utilise un fournisseur avec un serveur ou un système de génération, tel que Jenkins.

Toutefois, une fois ce didacticiel terminé, ou d'autres, vous devez supprimer le pipeline, ainsi que les ressources qu'il utilise, afin que l'utilisation de ces ressources ne vous soit pas facturée. Supprimez d'abord le pipeline, puis l' CodeDeploy application et ses EC2 instances Amazon associées, et enfin le compartiment S3.

Pour nettoyer les ressources utilisées dans ce didacticiel
  1. Pour nettoyer vos CodePipeline ressources, suivez les instructions de la section Supprimer un pipeline dans AWS CodePipeline.

  2. Pour nettoyer vos CodeDeploy ressources, suivez les instructions de la section Pour nettoyer les ressources (console).

  3. Pour supprimer le compartiment S3, suivez les instructions contenues dans Suppression ou vidage d'un compartiment. Si vous ne souhaitez pas créer davantage de pipelines, supprimez le compartiment S3 créé pour le stockage de vos artefacts de pipeline. Pour plus d'informations sur ce compartiment, consultez CodePipeline concepts .