View a markdown version of this page

Créez un pipeline dans Régions AWS qui ne supportent pas AWS CodePipeline - Recommandations AWS

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

Anand Krishna Varanasi, Amazon Web Services

Résumé

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

Prérequis

  • Un actif Compte AWS

  • AWS Cloud Development Kit (AWS CDK) CLI version 2.28 ou ultérieure

Architecture

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 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.

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

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

  4. 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

Outils

AWS services

  • AWS CodeBuildest 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 CodeCommitest 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 CodeDeployautomatise 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 CodePipelinevous 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.

  • AWS Cloud Development Kit (AWS CDK)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.

Épopées

Sous-tâcheDescriptionCompétences requises

Installez la AWS CDK CLI.

Pour obtenir des instructions, consultez la AWS CDK documentation.

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.

AWS DevOps

Installez NPM.

Installez le gestionnaire de packages npm. Pour plus d'informations, consultez la documentation npm.

AWS DevOps
Sous-tâcheDescriptionCompétences requises

Clonez le référentiel de code.

Clonez le référentiel GitHub CodePipeline Unsupported Regions sur votre machine locale en exécutant la commande suivante.

git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions
DevOps ingénieur

Définissez les paramètres dans cdk.json.

Ouvrez le cdk.json fichier et saisissez les valeurs des paramètres suivants :

"pipeline_account":"XXXXXXXXXXXX", "pipeline_region":"us-west-2", "repo_name": "app-dev-repo", "ec2_tag_key": "test-vm", "configName" : "cbdeployconfig", "deploymentGroupName": "cbdeploygroup", "applicationName" : "cbdeployapplication", "projectName" : "CodeBuildProject"

où :

  • pipeline_accountest l' Compte AWS endroit où le gazoduc sera construit.

  • pipeline_regionest l' Région AWS endroit où le gazoduc sera construit.

  • repo_nameest le nom du CodeCommit dépôt.

  • ec2_tag_keyest la balise attachée à l'instance Amazon EC2 sur laquelle vous souhaitez déployer le code.

  • configNameest le nom du fichier CodeDeploy de configuration.

  • deploymentGroupNameest le nom du groupe CodeDeploy de déploiement.

  • applicationNameest le nom de CodeDeploy l'application.

  • projectNameest 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.

npm i aws-cdk-lib npm run build cdk synth
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 queaf-south-1).

cdk deploy
AWS DevOps
Sous-tâcheDescriptionCompé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.

git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo

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
Sous-tâcheDescriptionCompétences requises

Testez le pipeline à l'aide des instructions de déploiement.

Le CodeDeploy_Files dossier du référentiel GitHub 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'exempleindex.html, start_server.shstop_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