

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.

# Créez un pipeline dans les régions AWS qui ne prennent pas en charge AWS CodePipeline
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Anand Krishna Varanasi, Amazon Web Services*

## Résumé
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-summary"></a>

**Remarque** : n' AWS CodeCommit 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/)

AWS CodePipeline est un service d'orchestration de livraison continue (CD) qui fait partie d'un ensemble d' DevOps outils d'Amazon Web Services (AWS). Il s'intègre à une grande variété de sources (telles que les systèmes de contrôle de version et les solutions de stockage), aux produits et services d'intégration continue (CI) d'AWS et de ses partenaires, ainsi qu'aux produits open source afin de fournir un service de end-to-end flux de travail pour des déploiements rapides d'applications et d'infrastructures.

Cependant, il CodePipeline n'est pas pris en charge dans toutes les régions AWS et il est utile de disposer d'un orchestrateur invisible qui connecte les CI/CD services AWS. Ce modèle décrit comment implémenter un pipeline de end-to-end flux de travail dans les régions AWS où il CodePipeline n'est pas encore pris en charge par l'utilisation de CI/CD services AWS tels qu'AWS CodeCommit CodeBuild, AWS et AWS CodeDeploy.

## Conditions préalables et limitations
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**Prérequis**
+ Un compte AWS actif
+ CLI AWS Cloud Development Kit (AWS CDK) version 2.28 ou ultérieure

## Architecture
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-architecture"></a>

**Pile technologique cible**

Le schéma suivant montre un pipeline créé dans une région qui ne le prend pas en charge CodePipeline, telle que la région Afrique (Le Cap). Un développeur envoie les fichiers de CodeDeploy configuration (également appelés *scripts d'accroche du cycle de vie de déploiement*) vers le référentiel Git hébergé par CodeCommit. (Voir le [GitHub référentiel](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) fourni avec ce modèle.) Une EventBridge règle Amazon est automatiquement initiée. CodeBuild

Les fichiers CodeDeploy de configuration sont extraits dans le CodeCommit cadre de l'étape source du pipeline et transférés vers CodeBuild. 

Dans la phase suivante, CodeBuild exécute les tâches suivantes : 

1. Télécharge le fichier TAR du code source de l'application. Vous pouvez configurer le nom de ce fichier à l'aide de Parameter Store, une fonctionnalité d'AWS Systems Manager.

1. Télécharge les fichiers CodeDeploy de configuration.

1. Crée une archive combinée du code source de l'application et des fichiers de CodeDeploy configuration spécifiques au type d'application.

1. Lance le CodeDeploy déploiement sur une instance Amazon Elastic Compute Cloud (Amazon EC2) à l'aide de l'archive combinée.

![\[Création d'un pipeline dans une région AWS non prise en charge\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


## Outils
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-tools"></a>

**Services 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 CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) automatise les déploiements vers les instances Amazon EC2 ou sur site, les fonctions AWS Lambda ou les services Amazon Elastic Container Service (Amazon ECS).
+ [AWS](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) vous CodePipeline aide à modéliser et à configurer rapidement les différentes étapes d'une version logicielle et à automatiser les étapes nécessaires à la publication continue des modifications logicielles.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) est un framework de développement logiciel qui vous aide à définir et à provisionner l'infrastructure du cloud AWS sous forme de code.

**Code**

Le code de ce modèle est disponible dans le référentiel GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions).

## Épopées
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-epics"></a>

### Configurez votre poste de travail de développeur
<a name="set-up-your-developer-workstation"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez l'interface de ligne de commande AWS CDK. | Pour obtenir des instructions, consultez la [documentation AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites). | AWS DevOps | 
| Installez un client Git. | Pour créer des validations, vous pouvez utiliser un client Git installé sur votre ordinateur local, puis transférer vos validations vers le CodeCommit référentiel. Pour effectuer la configuration CodeCommit avec votre client Git, consultez la [CodeCommit documentation](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html). | AWS DevOps | 
| Installez NPM. | Installez le gestionnaire de packages **npm**. Pour plus d'informations, consultez la [documentation npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). | AWS DevOps | 

### Configuration du pipeline
<a name="set-up-the-pipeline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le référentiel de code. | Clonez le référentiel GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) sur votre machine locale en exécutant la commande suivante.<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps ingénieur | 
| Définissez les paramètres dans cdk.json. | Ouvrez le `cdk.json` fichier et saisissez les valeurs des paramètres suivants :<pre>"pipeline_account":"XXXXXXXXXXXX",<br />"pipeline_region":"us-west-2",<br />"repo_name": "app-dev-repo",<br />"ec2_tag_key": "test-vm",<br />"configName" : "cbdeployconfig",<br />"deploymentGroupName": "cbdeploygroup",<br />"applicationName" : "cbdeployapplication",<br />"projectName" : "CodeBuildProject"</pre>où :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline.html) | AWS DevOps | 
| Configurez la bibliothèque de constructions AWS CDK. | Dans le GitHub référentiel cloné, utilisez les commandes suivantes pour installer la bibliothèque de constructions AWS CDK, créer votre application et synthétiser afin de générer le CloudFormation modèle AWS pour l'application.<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | AWS DevOps | 
| Déployez l'exemple d'application AWS CDK. | Déployez le code en exécutant la commande suivante dans une région non prise en charge (telle que`af-south-1`).<pre>cdk deploy</pre> | AWS DevOps | 

### Configurez le CodeCommit référentiel pour CodeDeploy
<a name="set-up-the-codecommit-repository-for-codedeploy"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configuration CI/CD pour l'application. | Clonez le CodeCommit référentiel que vous avez spécifié dans le `cdk.json` fichier (appelé `app-dev-repo` par défaut) pour configurer le CI/CD pipeline de l'application.<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre>où le nom du référentiel et la région dépendent des valeurs que vous avez fournies dans le `cdk.json` fichier. | AWS DevOps | 

### Testez le pipeline
<a name="test-the-pipeline"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Testez le pipeline à l'aide des instructions de déploiement. | Le `CodeDeploy_Files` dossier du référentiel GitHub [CodePipeline Unsupported Regions](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) contient des exemples de fichiers qui indiquent le déploiement CodeDeploy de l'application. Le `appspec.yml` fichier est un fichier CodeDeploy de configuration qui contient des crochets permettant de contrôler le flux de déploiement des applications. Vous pouvez utiliser les fichiers d'exemple`index.html`, `start_server.sh``stop_server.sh`, et `install_dependencies.sh` pour mettre à jour un site Web hébergé sur Apache. Ce sont des exemples : vous pouvez utiliser le code du GitHub référentiel pour déployer n'importe quel type d'application. Lorsque les fichiers sont transférés vers le CodeCommit référentiel, le pipeline invisible est lancé automatiquement. Pour obtenir les résultats du déploiement, vérifiez les résultats des différentes phases dans les CodeDeploy consoles CodeBuild et. | AWS DevOps | 

## Ressources connexes
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [Mise en route](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (documentation AWS CDK)
+ [Présentation du Cloud Development Kit (CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [Atelier AWS CDK](https://cdkworkshop.com/)