

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 Régions AWS qui ne supportent pas 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>

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) de AWS et aux AWS partenaires, ainsi qu'aux produits open source pour fournir un service de flux de travail de bout en bout pour des déploiements rapides d'applications et d'infrastructures.

Cependant, il CodePipeline n'est pas pris en charge dans tous les Régions AWS cas et il est utile de disposer d'un orchestrateur invisible qui connecte les AWS CI/CD services. Ce modèle décrit comment implémenter un pipeline de flux de travail de bout en bout Régions AWS là où il CodePipeline n'est pas encore pris en charge en utilisant AWS CI/CD des services tels que AWS CodeCommit AWS CodeBuild, 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 actif Compte AWS
+ Cloud Development Kit AWS (AWS CDK) CLI version 2.28 ou ultérieure

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

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é de 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>

**AWS services**
+ [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 sur Amazon EC2 ou sur des instances, des AWS Lambda fonctions ou des services Amazon Elastic Container Service (Amazon ECS) sur site.
+ [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.
+ [Cloud Development Kit AWS (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 AWS Cloud l'infrastructure dans le 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 la AWS CDK CLI. | Pour obtenir des instructions, consultez la [AWS CDK documentation](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><br />où :+ `pipeline_account`est l' Compte AWS endroit où le gazoduc sera construit.<br />+ `pipeline_region`est l' Région AWS endroit où le gazoduc sera construit.<br />+ `repo_name`est le nom du CodeCommit dépôt.<br />+ `ec2_tag_key`est la balise attachée à l'instance Amazon EC2 sur laquelle vous souhaitez déployer le code.<br />+ `configName`est le nom du fichier CodeDeploy de configuration.<br />+ `deploymentGroupName`est le nom du groupe CodeDeploy de déploiement.<br />+ `applicationName`est le nom de CodeDeploy l'application.<br />+ `projectName`est le nom CodeBuild du projet. | AWS DevOps | 
| Configurez la bibliothèque de AWS CDK construction. | Dans le GitHub référentiel cloné, utilisez les commandes suivantes pour installer la bibliothèque de AWS CDK construction, créer votre application et synthétiser afin de générer le AWS CloudFormation modèle de l'application.<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | AWS DevOps | 
| Déployez l'exemple AWS CDK d'application. | 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-acc-repository-for-acd"></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><br />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) (AWS CDK documentation)
+ [Présentation du Cloud Development Kit AWS (AWS CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [AWS CDK Atelier](https://cdkworkshop.com/)