Créez un pipeline dans les régions AWS qui ne prennent pas en charge 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 les régions AWS qui ne prennent pas en charge AWS CodePipeline

Créée par Anand Krishna Varanasi (AWS)

Référentiel de code : invisible-codepipeline-unsupported-regions

Environnement : PoC ou pilote

Technologies : infrastructure ; DevOps

Services AWS : AWS CodeBuild ; AWS CodeCommit ; AWS CodeDeploy ; AWS CodePipeline

Récapitulatif

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 services AWS CI/CD. 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 en utilisant les services AWS CI/CD tels qu'AWS CodeBuild, CodeCommit AWS et AWS. CodeDeploy

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif

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

Architecture

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

  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

Services AWS

  • AWS CodeBuild 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 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 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 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) 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.

Épopées

TâcheDescriptionCompétences requises

Installez l'interface de ligne de commande AWS CDK.

Pour obtenir des instructions, consultez la documentation AWS CDK.

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
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 le compte AWS sur lequel le pipeline sera construit.

  • pipeline_regionest la région AWS dans laquelle le pipeline sera construit.

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

  • ec2_tag_keyest la balise attachée à l'instance 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 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.

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

cdk deploy
AWS DevOps
TâcheDescriptionCompétences requises

Configurez le 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 pipeline CI/CD pour 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
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. Voici 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