View a markdown version of this page

Cree una canalización en Regiones de AWS que no admiten AWS CodePipeline - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree una canalización en Regiones de AWS que no admiten AWS CodePipeline

Anand Krishna Varanasi, Amazon Web Services

Resumen

AWS CodePipeline es un servicio de organización de entrega continua (CD) que forma parte de un conjunto de DevOps herramientas de Amazon Web Services (AWS). Se integra con una gran variedad de fuentes (como sistemas de control de versiones y soluciones de almacenamiento), productos y servicios de integración continua (CI) de AWS nuestros socios AWS y productos de código abierto para proporcionar un servicio de flujo de trabajo integral que permite un despliegue rápido de aplicaciones e infraestructuras.

Sin embargo, CodePipeline no es compatible en todos los Regiones de AWS casos y es útil contar con un orquestador invisible que conecte los servicios. AWS CI/CD Este patrón describe cómo implementar una canalización de flujo de trabajo integral en Regiones de AWS lugares donde aún CodePipeline no es compatible mediante el uso de AWS CI/CD servicios como AWS CodeCommit AWS CodeBuild, y AWS CodeDeploy.

Requisitos previos y limitaciones

Requisitos previos

  • Un activo Cuenta de AWS

  • AWS Cloud Development Kit (AWS CDK) CLI versión 2.28 o posterior

Arquitectura

El siguiente diagrama muestra una canalización que se creó en una región que no es compatible CodePipeline, como la región de África (Ciudad del Cabo). Un desarrollador envía los archivos de CodeDeploy configuración (también denominados scripts de enlace del ciclo de vida de despliegue) al repositorio de Git que aloja. CodeCommit (Consulta el GitHub repositorio que se proporciona con este patrón). Se inicia CodeBuild automáticamente una EventBridge regla de Amazon.

Los archivos CodeDeploy de configuración se obtienen CodeCommit como parte de la etapa de origen de la canalización y se transfieren a ella. CodeBuild 

En la siguiente fase, CodeBuild realiza las siguientes tareas: 

  1. Descargue el archivo TAR del código fuente de la aplicación. Puede configurar el nombre de este archivo mediante el almacén de parámetros, una capacidad de AWS Systems Manager.

  2. Descarga los archivos CodeDeploy de configuración.

  3. Crea un archivo combinado de código fuente de la aplicación y archivos de CodeDeploy configuración específicos del tipo de aplicación.

  4. Inicia el CodeDeploy despliegue en una instancia de Amazon Elastic Compute Cloud (Amazon EC2) mediante el archivo combinado.

Creación de canalizaciones en una región de AWS no compatible

Tools (Herramientas)

AWS servicios

  • AWS CodeBuild es un servicio de compilación completamente administrado que le permite compilar código fuente, poner en marcha pruebas unitarias y producir artefactos listos para implementar.

  • AWS CodeCommit es un servicio de control de versiones que permite almacenar y administrar repositorios de Git de forma privada, sin necesidad de administrar su propio sistema de control de origen.

  • AWS CodeDeployautomatiza las implementaciones en Amazon EC2 o en instancias locales, AWS Lambda funciones o servicios de Amazon Elastic Container Service (Amazon ECS).

  • AWS CodePipeline permite diseñar y configurar rápidamente las diferentes etapas de un proceso de lanzamiento de software y automatizar los pasos necesarios para lanzar los cambios en el software de manera continua.

  • AWS Cloud Development Kit (AWS CDK)es un marco de desarrollo de software que le ayuda a definir y aprovisionar Nube de AWS la infraestructura en código.

Código

El código de este patrón está disponible en el repositorio de GitHub CodePipeline Unsupported Regions.

Epics

TareaDescripciónHabilidades requeridas

Instale la AWS CDK CLI.

Para obtener instrucciones, consulte la documentación de AWS CDK.

AWS DevOps

Instalar un cliente Git.

Para crear confirmaciones, puedes usar un cliente Git instalado en tu computadora local y, a continuación, enviar tus confirmaciones al CodeCommit repositorio. Para configurarlo CodeCommit con tu cliente Git, consulta la CodeCommit documentación.

AWS DevOps

Instale npm.

Instale el administrador de paquetes npm. Para obtener más información, consulte la documentación npm.

AWS DevOps
TareaDescripciónHabilidades requeridas

Clone el repositorio de código.

Clone el repositorio de Regions GitHub CodePipeline no compatibles en su máquina local ejecutando el siguiente comando.

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

Establezca los parámetros en cdk.json.

Abra el archivo cdk.json y proporcione valores para los siguientes parámetros:

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

donde:

  • pipeline_accountes Cuenta de AWS donde se construirá el oleoducto.

  • pipeline_regiones el Región de AWS lugar donde se construirá el oleoducto.

  • repo_namees el nombre del CodeCommit repositorio.

  • ec2_tag_keyes la etiqueta adjunta a la instancia de Amazon EC2 en la que desea implementar el código.

  • configNamees el nombre del archivo de CodeDeploy configuración.

  • deploymentGroupNamees el nombre del grupo CodeDeploy de implementación.

  • applicationNamees el nombre CodeDeploy de la aplicación.

  • projectNamees el nombre CodeBuild del proyecto.

AWS DevOps

Configure la biblioteca de AWS CDK construcción.

En el GitHub repositorio clonado, utilice los siguientes comandos para instalar la biblioteca de AWS CDK construcción, compilar la aplicación y sintetizar para generar la AWS CloudFormation plantilla de la aplicación.

npm i aws-cdk-lib npm run build cdk synth
AWS DevOps

Implemente la AWS CDK aplicación de muestra.

Implemente el código ejecutando el siguiente comando en una región no compatible (por ejemplo af-south-1).

cdk deploy
AWS DevOps
TareaDescripciónHabilidades requeridas

Configure CI/CD para la aplicación.

Clone el CodeCommit repositorio que especificó en el cdk.json archivo (se denomina de forma app-dev-repo predeterminada) para configurar la CI/CD canalización de la aplicación.

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

donde el nombre y la región del repositorio dependen de los valores que haya proporcionado en el archivo cdk.json.

AWS DevOps
TareaDescripciónHabilidades requeridas

Pruebe la canalización con las instrucciones de implementación.

La CodeDeploy_Files carpeta del repositorio de regiones GitHub CodePipeline no compatibles incluye archivos de muestra que indican cómo CodeDeploy implementar la aplicación. El appspec.yml archivo es un archivo CodeDeploy de configuración que contiene enlaces para controlar el flujo de implementación de la aplicación. Puede usar los archivos de muestra index.html, start_server.sh, stop_server.sh y install_dependencies.sh para actualizar un sitio web alojado en Apache. Estos son ejemplos: puede usar el código del GitHub repositorio para implementar cualquier tipo de aplicación. Cuando los archivos se envían al CodeCommit repositorio, la canalización invisible se inicia automáticamente. Para ver los resultados de la implementación, compruebe los resultados de las fases individuales en las CodeDeploy consolas CodeBuild y consolas.

AWS DevOps

Recursos relacionados