

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.

# Automatisez la gestion dynamique du pipeline pour le déploiement de solutions de correctifs dans les environnements Gitflow en utilisant et AWS Service Catalog AWS CodePipeline
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions"></a>

*Balaji Vedagiri, Faisal Shahdad, Shanmugam Shanker et Vivek Thangamuthu, Amazon Web Services*

## Résumé
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-summary"></a>

**Note**  
AWS CodeCommit n'est plus disponible pour les nouveaux clients. Les clients existants de AWS CodeCommit peuvent continuer à utiliser le service normalement. [En savoir plus](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider)

Ce modèle concerne un scénario de gestion d'un pipeline de correctifs dynamiques dédié uniquement au déploiement sécurisé de solutions de correctifs dans un environnement de production. La solution est mise en œuvre et gérée à l'aide d'un AWS Service Catalog portefeuille et d'un produit. Une EventBridge règle Amazon est utilisée pour l'automatisation des événements. Les restrictions sont appliquées en utilisant les contraintes du portefeuille Service Catalog et les rôles Gestion des identités et des accès AWS (IAM) pour les développeurs. Seule une AWS Lambda fonction est autorisée à lancer le produit Service Catalog, déclenchée par la EventBridge règle. Ce modèle est conçu pour les environnements dotés d'une configuration Gitflow spécifique, décrite dans [Informations supplémentaires](#automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-additional).

Généralement, un correctif est déployé pour résoudre les problèmes critiques ou de sécurité signalés dans un environnement réel, tel que le mode de production. Les correctifs doivent être déployés directement dans les environnements de préparation et de production uniquement. Les pipelines de préparation et de production sont largement utilisés pour les demandes de développement régulières. Ces pipelines ne peuvent pas être utilisés pour déployer des correctifs car certaines fonctionnalités permanentes de l'assurance qualité ne peuvent pas être promues en production. Pour publier des correctifs, ce modèle décrit un pipeline dynamique de courte durée doté des fonctionnalités de sécurité suivantes :
+ **Création automatique** : un pipeline de correctifs est automatiquement créé chaque fois qu'une branche de correctifs est créée dans un AWS CodeCommit référentiel. 
+ **Restrictions d'accès** — Les développeurs n'ont pas accès à la création de ce pipeline en dehors du processus de correctif. 
+ **Étape contrôlée** — Le pipeline possède une étape contrôlée avec un jeton d'accès spécial, ce qui garantit qu'une pull request (PR) ne peut être créée qu'une seule fois. 
+ **Étapes d'**approbation — Les étapes d'approbation sont incluses dans le pipeline pour obtenir les approbations nécessaires des parties prenantes concernées. 
+ **Suppression automatique** — Le pipeline de correctifs est automatiquement supprimé chaque fois qu'une `hotfix` branche est supprimée du CodeCommit référentiel après sa fusion avec un PR. 

## Conditions préalables et limitations
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-prereqs"></a>

**Conditions préalables**
+ Trois actifs Comptes AWS sont requis comme suit :
  + Compte d'outils - Pour la configuration de l'intégration continue et de la livraison continue (CI/CD).
  + Compte Stage : pour les tests d'acceptation par les utilisateurs.
  + Compte de production : pour un utilisateur final professionnel.
  + (Facultatif) Ajoutez un Compte AWS pour faire office de compte QA. Ce compte est requis si vous souhaitez à la fois une configuration de pipeline principal, y compris l'assurance qualité, et une solution de pipeline de correctifs pour les tests.
+ Une AWS CloudFormation pile avec une condition facultative à déployer dans le compte QA à l'aide du pipeline principal, si nécessaire. Le modèle peut toujours être testé sans la configuration du pipeline principal en créant et en supprimant une `hotfix` branche.
+ Un bucket Amazon Simple Storage Service (Amazon S3) pour stocker CloudFormation les modèles utilisés pour créer les produits Service Catalog.
+ Créez des règles d'approbation des relations publiques pour le CodeCommit référentiel conformément aux exigences de conformité (après avoir créé le référentiel).
+ Limitez les autorisations IAM des développeurs et des chefs d'équipe pour refuser l'exécution de la fonction Lambda [prcreation-lambda](https://github.com/aws-samples/dynamic_hotfix_codepipeline/blob/main/pre-requisites/lambdasetup.yaml#L55), car elle ne doit être invoquée que depuis le pipeline.

**Limites**
+ Le CloudFormation fournisseur est utilisé lors de la phase de déploiement, et l'application est déployée à l'aide d'un ensemble de CloudFormation modifications. Si vous souhaitez utiliser une autre option de déploiement, modifiez la CodePipeline pile selon vos besoins.
+ Ce modèle utilise AWS CodeBuild d'autres fichiers de configuration pour déployer un exemple de microservice. Si vous avez un autre type de charge de travail (par exemple, des charges de travail sans serveur), vous devez mettre à jour toutes les configurations pertinentes.
+ Ce modèle déploie l'application en une seule fois Région AWS (par exemple, USA East (Virginie du Nord) us-east-1). Comptes AWS Pour effectuer un déploiement dans plusieurs régions, modifiez la référence de région dans les commandes et les piles.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section [Services AWS par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

## Architecture
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-architecture"></a>

Les diagrammes de cette section fournissent des flux de travail pour un événement de création de cycle de vie et pour un événement de suppression du cycle de vie.

![Flux de travail pour créer un événement du cycle de vie.](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/64311acc-8c0f-4734-aa1b-74345d86c752/images/3939f77c-4221-4c23-a3a1-3e8a294b2b32.png)


Le schéma précédent relatif à la création d'un événement du cycle de vie montre ce qui suit :

1. Le développeur crée une `hotfix-*` branche dans le CodeCommit référentiel pour développer une solution liée au correctif.

1. L'événement de création de `hotfix-*` branche est capturé par le biais de la EventBridge règle. Les détails de l'événement incluent le nom du référentiel et le nom de la branche.

1. La EventBridge règle invoque la AWS Lambda fonction. `hotfix-lambda-function` La EventBridge règle transmet les informations d'événement à la fonction Lambda en entrée.

1. La fonction Lambda traite l'entrée pour récupérer le nom du référentiel et le nom de la branche. Il lance le produit Service Catalog avec les valeurs extraites des entrées traitées.

1. Le produit Service Catalog inclut une configuration de pipeline qui déploiera la solution dans les environnements de scène et de production. Le bloc de pipeline inclut les étapes de source, de construction et de déploiement. Il existe également une étape d'approbation manuelle pour promouvoir le déploiement dans l'environnement de production.

1. L'étape source récupère le code du référentiel et de la `hotfix-*` branche créés lors de la première étape. Le code est transmis à la phase de construction via un compartiment Amazon S3 pour les artefacts. Au cours de la phase de construction, une image de conteneur est créée qui inclut le correctif logiciel développé dans la `hotfix-*` branche et introduit dans Amazon Elastic Container Registry (Amazon ECR).

1. De phase de déploiement en phase, l'environnement met à jour Amazon Elastic Container Service (Amazon ECS) avec la dernière image de conteneur incluant le correctif logiciel. Le correctif est déployé en créant et en exécutant un ensemble de CloudFormation modifications.

1. La fonction `prcreation-lambda` Lambda est invoquée après un déploiement réussi dans l'environnement Stage. Cette fonction Lambda crée un PR à partir de la `hotfix-*` branche vers les `main` branches `develop` et du référentiel. La fonction Lambda garantit que le correctif développé dans la `hotfix-*` branche est rétrofusionné et inclus dans les déploiements ultérieurs.

1. Une étape d'approbation manuelle permet de garantir que les parties prenantes concernées examinent le correctif et approuvent le déploiement en production.

1. La phase de déploiement dans l'environnement de production met à jour Amazon ECS avec la dernière image de conteneur incluant le correctif. Le correctif est déployé en créant et en exécutant un ensemble de CloudFormation modifications.

![Flux de travail pour supprimer un événement du cycle de vie.](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/64311acc-8c0f-4734-aa1b-74345d86c752/images/192aa897-bd9b-4a9f-804e-340371612b3b.png)


Le schéma précédent relatif à la suppression d'un événement du cycle de vie montre ce qui suit :

1. Le développeur supprime la `hotfix-*` branche après le déploiement réussi du correctif dans l'environnement de production.

1. L'événement de suppression de `hotfix-*` branche est capturé par le biais d'une EventBridge règle. Les détails de l'événement incluent le nom du référentiel et le nom de la branche.

1. La EventBridge règle invoque la fonction Lambda. La EventBridge règle transmet les informations d'événement à la fonction Lambda en entrée.

1. La fonction Lambda traite l'entrée pour récupérer le nom du référentiel et le nom de la branche. La fonction Lambda détermine le produit Service Catalog correspondant à partir de l'entrée transmise, puis met fin au produit.

1. La résiliation du produit provisionné par le Service Catalog supprime le pipeline et les ressources pertinentes qui ont été créées précédemment dans ce produit.

**Automatisation et mise à l'échelle**
+ Le modèle inclut une EventBridge règle et une fonction Lambda, qui peuvent gérer plusieurs demandes de création de branche Hotfix en parallèle. La fonction Lambda approvisionne le produit Service Catalog pour la règle d'événement correspondante.
+ La configuration du pipeline est gérée à l'aide du produit Service Catalog, qui fournit des fonctionnalités de contrôle de version. La solution s'adapte également automatiquement pour gérer en parallèle plusieurs développements de correctifs pour la même application.
+ La fonction [prcreation-lambda](https://github.com/aws-samples/dynamic_hotfix_codepipeline/blob/main/pre-requisites/lambdasetup.yaml#L55) garantit que ces modifications du correctif sont également fusionnées dans les `develop` branches `main` et par le biais d'une création automatique de pull request. Cette approche est essentielle pour maintenir les branches `main` et les `develop` branches à jour avec tous les correctifs et éviter d'éventuelles régressions de code. Ce processus permet de maintenir la cohérence entre les branches et d'empêcher les régressions de code en garantissant que toutes les branches à longue durée de vie disposent des derniers correctifs.

## Outils
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-tools"></a>

**Services AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)vous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie à travers Comptes AWS et Régions AWS.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)est un service de génération entièrement géré qui vous aide à compiler le code source, à exécuter des tests unitaires et à produire des artefacts prêts à être déployés.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)est un service de contrôle de version qui vous permet de stocker et de gérer de manière privée des référentiels Git, sans avoir à gérer votre propre système de contrôle de source. AWS CodeCommit n'est plus disponible pour les nouveaux clients. Les clients existants de AWS CodeCommit peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [Comment migrer votre AWS CodeCommit dépôt vers un autre fournisseur Git](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider/).
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)vous permet de modéliser et de configurer rapidement les différentes étapes d'une version logicielle et d'automatiser les étapes nécessaires à la publication continue des modifications logicielles.
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) est un service de gestion de conteneurs évolutif et rapide, qui facilite l'exécution, l'arrêt et la gestion de conteneurs Docker sur un cluster.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.
+ [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html)vous permet de gérer de manière centralisée les catalogues de services informatiques approuvés. AWS Les utilisateurs finaux peuvent déployer rapidement uniquement les services informatiques approuvés dont ils ont besoin, en respectant les contraintes définies par votre organisation.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

**Autres outils**
+ [CloudFormation Linter (cfn-lint) est un linter](https://github.com/aws-cloudformation/cfn-lint) [qui vérifie les modèles CloudFormation YAML ou JSON par rapport à la spécification des ressources. CloudFormation ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html) Il effectue également d'autres contrôles, tels que la vérification de la validité des valeurs des propriétés des ressources et le respect des meilleures pratiques.
+ [cfn-nag](https://github.com/stelligent/cfn_nag) est un outil open source qui identifie les problèmes de sécurité potentiels dans les CloudFormation modèles en recherchant des modèles.
+ [Docker](https://www.docker.com/) est un ensemble de produits de plateforme en tant que service (PaaS) qui utilisent la virtualisation au niveau du système d'exploitation pour fournir des logiciels dans des conteneurs. Ce modèle utilise Docker pour créer et tester des images de conteneurs localement.
+ [Git](https://git-scm.com/docs) est un système de contrôle de version distribué et open source.

**Référentiel de code**

Le code de ce modèle est disponible dans le référentiel GitHub [dynamic\_hotfix\_codepipeline](https://github.com/aws-samples/dynamic_hotfix_codepipeline).

## Bonnes pratiques
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-best-practices"></a>

Passez en revue et ajustez les rôles IAM et les politiques de contrôle des services (SCP) dans votre environnement afin de vous assurer qu'ils limitent l'accès de manière appropriée. Cela est essentiel pour empêcher toute action susceptible de passer outre aux mesures de sécurité incluses dans ce modèle. Respectez le principe du moindre privilège et accordez les autorisations minimales requises pour effectuer une tâche. Pour plus d'informations, consultez les sections [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) et [Bonnes pratiques en matière de sécurité](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans la documentation IAM.

## Épopées
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-epics"></a>

### Configuration de l'environnement de travail
<a name="set-up-the-work-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Pour cloner le référentiel. | Pour cloner l'exemple de [référentiel](https://github.com/aws-samples/dynamic_hotfix_codepipeline) dans un nouveau répertoire de votre lieu de travail, exécutez la commande suivante :<pre>git clone git@github.com:aws-samples/dynamic_hotfix_codepipeline.git</pre> | AWS DevOps | 
| Exportez les variables d'environnement pour le déploiement de la CloudFormation pile. | Définissez les variables d'environnement suivantes qui seront utilisées comme entrée dans les CloudFormation piles ultérieurement dans ce modèle.[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html)<pre>export BucketStartName=<BucketName></pre>[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html)<pre>export ProdAccount=<prodaccountnumber><br />export StageAccount=<stage/preprodaccountnumber><br />export QAAccount=<qaccountnumber><br />export ToolsAccount=<toolsaccountnumber><br />export DepRegion=<region></pre> | AWS DevOps | 

### Configurer les prérequis requis dans Comptes AWS
<a name="set-up-prerequisites-required-in-aws-accounts"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez les ressources nécessaires CI/CD dans le compte d'outils. | Pour déployer la CloudFormation pile dans le compte Tools, utilisez les commandes suivantes. (Supprimez le `QAAccount` paramètre si vous n'utilisez pas le compte QA pour la configuration.)<pre>#InToolsAccount<br />aws cloudformation deploy \<br />    --template-file pre-requisites/pre-reqs.yaml \<br />    --stack-name prereqs \<br />    --parameter-overrides BucketStartName=${BucketStartName} \<br />    ApplicationName=${ApplicationName} ProdAccount=${ProdAccount} \<br />    StageAccount=${StageAccount} ToolsAccount=${ToolsAccount} \<br />    QAAccount=${QAAccount} \<br />    --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM --region ${DepRegion}</pre><br />Notez les ressources créées par le CodeCommit référentiel et Amazon ECR à partir de la pile précédente. Ces paramètres sont nécessaires pour configurer la `main` branche du pipeline lors des prochaines étapes. | AWS DevOps | 
| Créez les ressources requises pour CI/CD les comptes de charge de travail. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html) | AWS DevOps | 
| Mettez à jour la politique du compartiment d'artefacts S3 pour autoriser l'accès aux comptes de charge de travail. | Pour mettre à jour les prérequis relatifs à la CloudFormation pile dans le compte d'outils, utilisez les commandes suivantes pour ajouter toutes les autorisations requises pour les comptes de charge de travail de scène et de production. (Supprimez le `QAAccount` paramètre si vous ne l'utilisez pas pour la configuration.)<pre>#InToolsAccount<br />aws cloudformation deploy \<br />    --template-file pre-requisites/pre-reqs.yaml \<br />    --stack-name prereqs \<br />    --parameter-overrides BucketStartName=${BucketStartName} \<br />    ApplicationName=${ApplicationName} ProdAccount=${ProdAccount} \<br />    StageAccount=${StageAccount} ToolsAccount=${ToolsAccount} \<br />    QAAccount=${QAAccount} PutPolicy=true \<br />    --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM --region ${DepRegion}</pre> | AWS DevOps | 

### Configurer la fonction Lambda et les ressources Service Catalog dans le compte d'outils
<a name="set-up-lam-function-and-sc-resources-in-tools-account"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le portefeuille et les produits du Service Catalog. | Pour configurer le portefeuille et les produits du Service Catalog, procédez comme suit :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html) | AWS DevOps | 
| Configurez les fonctions Lambda. | Cette solution utilise les fonctions Lambda suivantes pour gérer les flux de travail liés aux correctifs :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html)<br />Pour permettre aux fonctions Lambda de provisionner et de résilier les produits Service Catalog lorsque `hotfix ` des branches sont créées ou supprimées par le biais de la EventBridge règle associée, procédez comme suit :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html) | AWS DevOps | 

### Création d'un pipeline pour la succursale principale et déploiement de l'application dans les comptes de charge de travail
<a name="create-pipeline-for-main-branch-and-deploy-application-in-workload-accounts"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez le pipeline pour `main` la succursale. | Pour configurer le pipeline pour la branche principale, exécutez la commande suivante dans le compte tools. Remplacez les paramètres pour `MainProductId` et par `MainProductArtifactId` les valeurs issues des sorties de la `servicecatalogsetup` pile.<pre>#InToolsAccount<br />aws servicecatalog provision-product \<br />    --product-id <MainProductId> \<br />    --provisioning-artifact-id <MainProductArtifactId> \<br />    --provisioned-product-name "${ApplicationName}-main-pipeline" \<br />    --provisioning-parameters Key=CodeCommitRepoName,Value="${ApplicationName}-repository" Key=ECRRepository,Value="${ApplicationName}-app" \<br />    --region=${DepRegion}</pre> | AWS DevOps | 
| Déployez l'application à l'aide de la `main` branche. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html) | AWS DevOps | 

### Créez le pipeline pour une branche hotfix-\* et déployez le correctif
<a name="create-the-pipeline-for-a-hotfix--branch-and-deploy-the-hotfix"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez une `hotfix-*` branche et validez les modifications. | Pour créer un pipeline pour la `hotfix-*` branche et déployer le correctif sur les comptes de charge de travail, procédez comme suit :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html) | AWS DevOps | 
| Supprimez la `hotfix-check1` branche. | Pour supprimer la `hotfix-check1` branche créée précédemment, procédez comme suit :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html) | AWS DevOps | 

### nettoyer des ressources ;
<a name="clean-up-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Nettoyez les ressources déployées. | Pour nettoyer les ressources déployées précédemment, procédez comme suit :[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-dynamic-pipeline-management-for-deploying-hotfix-solutions.html)<pre>##In Tools Account##<br />aws cloudformation delete-stack --stack-name servicecatalogsetup --region ${DepRegion}<br />aws cloudformation delete-stack --stack-name prlambdasetup --region ${DepRegion}<br />aws cloudformation delete-stack --stack-name prereqs --region ${DepRegion}</pre><pre>##In Workload Accounts##<br />aws cloudformation delete-stack --stack-name inframainstack --region ${DepRegion}</pre><br />Pour plus d'informations, consultez [la section Suppression de produits provisionnés](https://docs.aws.amazon.com/servicecatalog/latest/userguide/enduser-delete.html) dans la documentation du Service Catalog. | AWS DevOps | 

## Résolution des problèmes
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Les modifications que vous avez apportées au CodeCommit référentiel ne sont pas déployées. | Vérifiez les CodeBuild journaux pour détecter les erreurs lors de l'action de compilation de Docker. Pour plus d’informations, consultez la [documentation CodeBuild ](https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html). | 
| Le produit Service Catalog n'est pas approvisionné. | Passez en revue les CloudFormation piles associées pour détecter les événements ayant échoué. Pour plus d’informations, consultez la [documentation CloudFormation ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html). | 

## Ressources connexes
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-resources"></a>
+ [Commandes Git de base](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-basic-git.html)
+ [Configurer une politique IAM pour limiter les transferts et les fusions vers une succursale](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-conditional-branch.html#how-to-conditional-branch-create-policy)
+ [Se connecter à un AWS CodeCommit référentiel](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html)
+ [Octroi d'accès aux utilisateurs](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_users.html)
+ [Transférer une image Docker vers un référentiel privé Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)
+ [Résolution des problèmes AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html)
+ [Qu'est-ce que c'est AWS CodePipeline ?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)

## Informations supplémentaires
<a name="automate-dynamic-pipeline-management-for-deploying-hotfix-solutions-additional"></a>

Ce modèle est conçu pour les environnements dotés d'une configuration Gitflow qui est adoptée pour le flux de travail de développement au CI/CD cours du processus. Les pipelines suivent le cycle de déploiement qui commence par le développement et passe par les environnements d'assurance qualité (QA), de phase et de production. La CI/CD configuration inclut deux branches git avec des déploiements promotionnels dans les environnements suivants :
+ La `develop` branche se déploie dans l'environnement de développement.
+ La `main` succursale effectue des déploiements dans les environnements d'assurance qualité, de scène et de production.

Dans cette configuration, il est difficile d'appliquer un correctif ou un correctif de sécurité plus rapidement que le cycle de déploiement habituel alors que le développement actif de nouvelles fonctionnalités est en cours. Un processus dédié est nécessaire pour traiter les correctifs ou les demandes de sécurité, afin de garantir le bon fonctionnement et la sécurité des environnements en direct.

Toutefois, vous pouvez utiliser les autres options disponibles sans avoir besoin d'un processus de déploiement dédié si :
+ Le CI/CD processus est bien équipé avec des tests automatisés, tels que des tests fonctionnels et end-to-end des tests, qui éliminent le besoin de tests manuels et évitent les retards dans les déploiements en production. Toutefois, si les tests automatisés ne sont pas bien intégrés au CI/CD processus, apporter une petite correction à l'environnement de production peut s'avérer complexe et fastidieux pour les développeurs. Cela est dû au fait que de nouvelles fonctionnalités peuvent être en attente d'approbation et de validation dans l'environnement d'assurance qualité. Un correctif logiciel ou un correctif de sécurité ne peuvent pas être mis en production de manière simple et simultanée.
+ Les équipes de développement déploient en permanence de nouvelles fonctionnalités dans l'environnement de production, en intégrant des correctifs ou des correctifs de sécurité dans le déploiement planifié de chaque nouvelle fonctionnalité. En d'autres termes, la prochaine mise à jour des fonctionnalités de l'environnement de production comprend deux composants : l'ajout d'une nouvelle fonctionnalité et l'inclusion du correctif logiciel ou du correctif de sécurité. Toutefois, si le cycle de déploiement n'est pas continu, plusieurs nouvelles fonctionnalités peuvent déjà être en attente d'approbation dans l'environnement d'assurance qualité. Gérer les différentes versions et s'assurer que les modifications correctes sont réappliquées peut alors devenir complexe et source d'erreurs.

**Note**  
Si vous utilisez [la version 2](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types.html#:~:text=V2%20type%20pipelines%20have%20the%20same%20structure) de AWS CodePipeline avec des déclencheurs appropriés configurés sur la `hotfix` branche, vous avez toujours besoin d'un processus dédié pour traiter les demandes imprévues. Dans la version 2, vous pouvez configurer des déclencheurs pour les requêtes push ou pull. L'exécution sera soit mise en file d'attente, soit exécutée immédiatement, en fonction de l'état précédent du pipeline. Cependant, avec un pipeline dédié, les correctifs sont appliqués immédiatement à l'environnement de production, ce qui garantit que les problèmes urgents sont résolus sans délai.