View a markdown version of this page

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 est d'utiliser l'assistant de création de pipeline dans la AWS CodePipeline console.

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

Note

Lorsqu'Amazon S3 est le fournisseur source de votre pipeline, vous pouvez compresser votre ou vos fichiers source dans un seul fichier .zip et 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é par CodePipeline les artefacts. (Ce compartiment 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 Comptes AWS à une société sûre et 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 au cours 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 dans laquelle 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 la gestion 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 Console de gestion AWS. 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

    Étant donné que 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 la gestion des versions est activée, 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 déployer 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 au format YAML utilisé CodeDeploy pour gérer un déploiement. Pour plus d'informations sur le AppSpec fichier, consultez 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 à 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_dependenciesstart_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 dans lequel écrire les nouveaux fichiers.

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

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

    1. Choisissez Charger.

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

    3. Choisissez Charger.

Étape 2 : Création d'instances Windows Amazon EC2 et installation de l'agent CodeDeploy

Note

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

Au cours de cette étape, vous allez créer les instances Amazon EC2 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 permettent l'installation et la gestion de l' CodeDeploy agent sur les instances. L' CodeDeploy agent est un progiciel qui permet d'utiliser une instance dans le cadre de CodeDeploy déploiements. Vous joignez également des politiques qui permettent à l'instance de récupérer les fichiers que l' CodeDeploy agent utilise pour déployer votre application et de permettre à l'instance d'être gérée par SSM.

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

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

  3. Choisissez Créer un rôle.

  4. Sous Sélectionner le type d'entité de confiance, sélectionnez Service AWS. Sous Choose a use case (Choisir un cas d'utilisation), sélectionnez EC2, puis 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.

    Choisissez Créer un rôle.

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

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

  3. Sous Nom et balises, dans Nom, entrezMyCodePipelineDemo. Cela affecte aux instances une clé de balise de Name et une valeur de balise deMyCodePipelineDemo. Vous créez ultérieurement une CodeDeploy application qui déploie 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. (Cette AMI est décrite comme Microsoft Windows Server 2019 Base et est étiquetée « éligible au niveau gratuit » et se trouve sous Quick Start.)

  5. Dans 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 Continuer sans paire de touches.

    Note

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

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

    Dans IP Auto-assign 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 SSH, sous Type de source, choisissez My IP.

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

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

  9. Dans Résumé, sous Nombre d'instances, saisissez2.

  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. Une fois que l'instance a démarré, son état devient running et elle reçoit un nom DNS public. (Si la colonne DNS public n'est pas affichée, choisissez l'Show/Hideicône, puis sélectionnez DNS public.)

  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éez 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 console IAM à l’adresse https://console.aws.amazon.com/iam/.

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

  3. Choisissez Créer un rôle.

  4. Sous Sélectionner une entité de confiance, choisissez Service AWS. Sous Use case (Cas d'utilisation), choisissez CodeDeploy. Choisissez CodeDeploy parmi 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 à l'adresse 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, sélectionnez 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 approuvé AWS CodeDeploy avec, au minimum, la confiance et les autorisations décrites dans Créer un rôle de service pour CodeDeploy. Pour connaître le rôle de service ARN, consultez Obtention de l'ARN du rôle de service (console).

  4. Dans Type de déploiement, sélectionnez In-place.

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

    Important

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

  6. Dans Configuration de l'agent avec AWS Systems Manager, choisissez Maintenant et planifiez les mises à jour. Cela permet d'installer l'agent sur l'instance. L'instance Windows est déjà configurée avec l'agent SSM et va maintenant être mise à jour avec l' CodeDeploy agent.

  7. Dans Paramètres de déploiement, choisissezCodeDeployDefault.OneAtaTime.

  8. Dans Load Balancer, assurez-vous que la case Activer l'équilibrage de charge n'est pas sélectionné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 automatique
  1. Connectez-vous à Console de gestion AWS et ouvrez la CodePipeline console à 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. Sur la page Étape 1 : Choisissez l'option de création, sous Options de création, choisissez l'option Créer un pipeline personnalisé. Choisissez Suivant.

  4. À l'étape 2 : choisissez les paramètres du pipeline, dans Nom du pipeline, entrezMyFirstPipeline.

    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.

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

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

    • Choisissez Nouveau rôle de service pour permettre CodePipeline de créer un nouveau rôle de service dans IAM.

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

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

  8. À l'étape 3 : Ajouter une étape source, dans Source provider, 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 Étape suivante.

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

    Choisissez Suivant.

  9. À l'étape 4 : Ajouter une étape de construction, choisissez Ignorer l'étape de génération, puis acceptez le message d'avertissement en choisissant de nouveau Ignorer. Choisissez Suivant.

  10. À l'étape 5 : Ajouter une phase de test, choisissez Ignorer la phase de test, puis acceptez le message d'avertissement en choisissant de nouveau Ignorer.

    Choisissez Suivant.

  11. À l'étape 6 : Ajouter une étape de déploiement, dans Deploy provider, choisissez CodeDeploy . Par défaut, le champ Région est Région AWS identique à 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.

  12. À l'étape 7 : Passez en revue, passez en revue les informations, puis choisissez Créer un pipeline.

  13. Le pipeline commence à s'exécuter. Vous pouvez consulter les messages de progression, de réussite et d'échec au fur et à mesure que l' CodePipeline exemple déploie une page Web sur chacune des instances Amazon EC2 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 étape Déploiement qui déploie ces modifications dans les instances EC2 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, sous DNS public, copiez l'adresse, puis collez-la dans la barre d'adresses 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 un déploiement depuis des serveurs intermédiaires aux serveurs de production à l'aide d' CodeDeploy. Tout d'abord, vous créez un autre groupe de déploiement CodePipelineDemoApplication dans le 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 fichier JSON, puis 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 vous le déployez sur les mêmes instances Amazon EC2 que précédemment. Cette étape est uniquement abordée à des fins pédagogiques. Il est délibérément conçu pour ne pas vous montrer comment les erreurs sont affichées dans. CodePipeline

Pour créer un deuxième groupe de déploiement dans CodeDeploy
  1. Ouvrez la CodeDeploy console à l'adresse 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 Service Role, choisissez le même rôle CodeDeploy de service que vous avez utilisé pour le déploiement initial (pas le rôle CodePipeline de service).

  6. Dans Type de déploiement, sélectionnez In-place.

  7. Sous Configuration de l'environnement, choisissez Instances Amazon EC2. 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 procéder à un déploiement sur les mêmes instances EC2 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. Ce groupe de déploiement se déploie dans les instances EC2 que vous avez déjà utilisées ; par conséquent l'action de déploiement échoue dans cette étape.

  1. Connectez-vous à Console de gestion AWS et ouvrez la CodePipeline console à 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 Déployer, choisissez CodeDeploy.

  8. Dans la CodeDeploy section, dans Nom MyDemoApplication de l'application, choisissez dans la liste déroulante, comme vous l'avez fait lors de la création du 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 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 Release change, puis choisissez Release 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, depuis un terminal sur votre machine Linux, macOS ou Unix locale, ou depuis 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. Revenez à la CodePipeline console et, dans la liste des pipelines, choisissez MyFirstPipeline d'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 voyez que le déploiement est réussi lors des deux premières étapes, comme précédemment, mais la phase de production indique que l'Deploy-Second-Deploymentaction a échoué.

  12. Dans l'Deploy-Second-Deploymentaction, choisissez Détails. Vous êtes redirigé vers la page concernant le déploiement CodeDeploy. Dans ce cas, l'échec résulte du fait que, le premier groupe d'instance ayant été déployé sur toutes les instances EC2, aucune instance n'est disponible 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 (interface de ligne de commande)

Bien que l'utilisation AWS CLI de pour ajouter une étape à votre pipeline soit plus complexe que l'utilisation 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, puis 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 diriger le JSON directement dans un fichier avec la commande get-pipeline, en procédant comme suit :

    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 le JSON que vous ajoutez au fichier pipeline.json après la phase 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 utilisez la structure de pipeline extraite à l'aide de la commande get-pipeline, vous devez supprimer les lignes metadata du fichier JSON. 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 commande update-pipeline en spécifiant le fichier JSON du pipeline d'une manière similaire à l'exemple suivant :

    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 faites votre choix MyFirstPipeline 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 soit un succès lors des deux premières étapes, tout comme auparavant, la phase de production montre que l'Deploy-Second-Deploymentaction a échoué.

  9. Dans l'Deploy-Second-Deploymentaction, 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 résulte du fait que, le premier groupe d'instance ayant été déployé sur toutes les instances EC2, aucune instance n'est disponible 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ésactivez et activez 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 activer et désactiver les transitions entre les étapes d'un CodePipeline pipeline
  1. Ouvrez la CodePipeline console et faites votre choix MyFirstPipeline 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 sous la forme « Désactivation de la transition pendant que je résous la panne »
  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 voulez 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'instances EC2 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. La création d'instances EC2 supplémentaires peut entraîner des frais.

É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 auprès d'un fournisseur tel que CodeBuild, qui est un 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 instances Amazon EC2 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.