

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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline"></a>

*Anand Krishna Varanasi, Amazon Web Services*

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

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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-prereqs"></a>

**Requisitos previos**
+ Un activo Cuenta de AWS
+ AWS Cloud Development Kit (AWS CDK) CLI versión 2.28 o posterior

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

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](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) 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.

1. Descarga los archivos CodeDeploy de configuración.

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

1. 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](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/e27750de-b597-424e-b5bf-4d58dc9b60cc/images/95fc815e-a762-4142-b0fd-2a716823e498.png)


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

**AWS servicios**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 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](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 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 CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatiza las implementaciones en Amazon EC2 o en instancias locales, AWS Lambda funciones o servicios de Amazon Elastic Container Service (Amazon ECS).
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 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)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)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](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions).

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

### Configurar la estación de trabajo de desarrollador
<a name="set-up-your-developer-workstation"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Instale la AWS CDK CLI. | Para obtener instrucciones, consulte la [documentación de AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites). | 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](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html). | AWS DevOps | 
| Instale npm. | Instale el administrador de paquetes **npm**. Para obtener más información, consulte la [documentación npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). | AWS DevOps | 

### Configurar la canalización
<a name="set-up-the-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el repositorio de código. | Clone el repositorio de [Regions GitHub CodePipeline no compatibles](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) en su máquina local ejecutando el siguiente comando.<pre>git clone https://github.com/aws-samples/invisible-codepipeline-unsupported-regions</pre> | DevOps ingeniero | 
| Establezca los parámetros en cdk.json. | Abra el archivo `cdk.json` y proporcione valores para los siguientes parámetros:<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 />donde:+ `pipeline_account`es Cuenta de AWS donde se construirá el oleoducto.<br />+ `pipeline_region`es el Región de AWS lugar donde se construirá el oleoducto.<br />+ `repo_name`es el nombre del CodeCommit repositorio.<br />+ `ec2_tag_key`es la etiqueta adjunta a la instancia de Amazon EC2 en la que desea implementar el código.<br />+ `configName`es el nombre del archivo de CodeDeploy configuración.<br />+ `deploymentGroupName`es el nombre del grupo CodeDeploy de implementación.<br />+ `applicationName`es el nombre CodeDeploy de la aplicación.<br />+ `projectName`es 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.<pre>npm i aws-cdk-lib<br />npm run build<br />cdk synth</pre> | 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`).<pre>cdk deploy</pre> | AWS DevOps | 

### Configure el CodeCommit repositorio para CodeDeploy
<a name="set-up-the-acc-repository-for-acd"></a>


| Tarea | Descripción | Habilidades 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.<pre>git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/app-dev-repo</pre><br />donde el nombre y la región del repositorio dependen de los valores que haya proporcionado en el archivo `cdk.json`. | AWS DevOps | 

### Prueba la canalización
<a name="test-the-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Pruebe la canalización con las instrucciones de implementación. | La `CodeDeploy_Files` carpeta del repositorio de [regiones GitHub CodePipeline no compatibles](https://github.com/aws-samples/invisible-codepipeline-unsupported-regions) 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
<a name="create-a-pipeline-in-aws-regions-that-don-t-support-aws-codepipeline-resources"></a>
+ [Cómo empezar](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites) (AWS CDK documentación)
+ [Introducción al AWS Cloud Development Kit (AWS CDK)](https://catalog.us-east-1.prod.workshops.aws/workshops/5962a836-b214-4fbf-9462-fedba7edcc9b/en-US) (AWS Workshop Studio)
+ [AWS CDK Taller](https://cdkworkshop.com/)