

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.

# Tutorial: Crear una canalización de cuatro etapas
<a name="tutorials-four-stage-pipeline"></a>

Ahora que ha creado su primera canalización en [Tutorial: Crear una canalización simple (bucket de S3)](tutorials-simple-s3.md) o [Tutorial: Crear una canalización sencilla (CodeCommit repositorio)](tutorials-simple-codecommit.md), puede comenzar a crear canalizaciones más complejas. En este tutorial, se explica cómo crear una canalización de cuatro etapas que utiliza un GitHub repositorio para el código fuente, un servidor de compilación Jenkins para crear el proyecto y una CodeDeploy aplicación para implementar el código creado en un servidor provisional. En el siguiente diagrama se muestra la canalización inicial de tres etapas.

![Un diagrama que muestra la etapa de origen con la acción de origen, una etapa de compilación con la acción de Jenkins y una etapa de implementación con la acción de implementación.](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/flow-codepipeline-codecommit-jenkins.png)


Una vez creada la canalización, la editará para añadir una etapa con una acción de prueba para probar el código, utilizando Jenkins también. 

Para crear esta canalización, primero debe configurar los recursos necesarios. Por ejemplo, si quieres usar un GitHub repositorio para tu código fuente, debes crear el repositorio antes de poder añadirlo a una canalización. Este tutorial le ayudará a configurar Jenkins en una instancia EC2 con fines demostrativos. 

**importante**  
Muchas de las acciones que añadas a la canalización en este procedimiento implican AWS recursos que debes crear antes de crear la canalización. AWS Los recursos para las acciones de origen siempre deben crearse en la misma AWS región en la que se creó la canalización. Por ejemplo, si creas tu canalización en la región EE.UU. Este (Ohio), tu CodeCommit repositorio debe estar en la región EE.UU. Este (Ohio).   
Puedes añadir acciones entre regiones al crear tu canalización. AWS los recursos para las acciones entre regiones deben estar en la misma AWS región en la que planeas ejecutar la acción. Para obtener más información, consulte [Añadir una acción interregional en CodePipeline](actions-create-cross-region.md).

**importante**  
Como parte de la creación de una canalización, se utilizará un depósito de artefactos de S3 proporcionado por el cliente CodePipeline para fabricar artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca a una Cuentas de AWS persona segura y fiable.

Antes de empezar este tutorial, debe haber completado los requisitos previos generales indicados en [Empezar con CodePipeline](getting-started-codepipeline.md).

**Topics**
+ [Paso 1: completar los requisitos previos de](#tutorials-four-stage-pipeline-prerequisites)
+ [Paso 2: Crea una canalización en CodePipeline](#tutorials-four-stage-pipeline-pipeline-create)
+ [Paso 3: Agregar otra etapa a la canalización](#tutorials-four-stage-pipeline-add-stage)
+ [Paso 4: limpie los recursos](#tutorials-four-stage-pipeline-clean-up)

## Paso 1: completar los requisitos previos de
<a name="tutorials-four-stage-pipeline-prerequisites"></a>

Para integrarlo con Jenkins, es AWS CodePipeline necesario que instales el CodePipeline complemento para Jenkins en cualquier instancia de Jenkins con la que quieras usarlo. CodePipeline También debes configurar un usuario o rol de IAM dedicado para usarlos como permisos entre tu proyecto de Jenkins y. CodePipeline La forma más sencilla de integrar Jenkins CodePipeline es instalar Jenkins en una instancia de EC2 que utilice un rol de instancia de IAM que haya creado para la integración de Jenkins. Para que los enlaces de la canalización de acciones de Jenkins se conecten correctamente, debe configurar las opciones del proxy y del firewall del servidor o de la instancia EC2 de forma que permitan las conexiones entrantes en el puerto que el proyecto de Jenkins utiliza. Asegúrese de que ha configurado Jenkins para autenticar a los usuarios y aplicar el control de acceso antes de permitir conexiones en esos puertos (por ejemplo, 443 y 8443 si ha configurado Jenkins para que solo use conexiones HTTPS, o 80 y 8080 si permite conexiones HTTP). Para obtener más información, consulte [Securing Jenkins](https://wiki.jenkins.io/display/JENKINS/Securing+Jenkins).

**nota**  
En este tutorial se usa un ejemplo de código y se configuran los pasos de compilación necesarios para convertir el ejemplo de Haml a HTML. Puede descargar el código de muestra de código abierto del GitHub repositorio siguiendo los pasos que se indican en. [Copia o clona la muestra en un repositorio GitHub](#tutorials-four-stage-pipeline-prerequisites-github) Necesitarás toda la muestra en tu GitHub repositorio, no solo el archivo.zip.   
En este tutorial también se supone lo siguiente:  
Está familiarizado con la instalación y administración de Jenkins y con la creación de proyectos de Jenkins.
Ha instalado Rake y la gema Haml para Ruby en el mismo equipo o la misma instancia que aloja el proyecto de Jenkins.
Ha establecido las variables de entorno del sistema necesarias para poder ejecutar comandos de Rake desde la línea de comandos o el terminal (por ejemplo, en sistemas Windows, se modifica la variable PATH para incluir el directorio donde se instaló Rake).

**Topics**
+ [Copia o clona la muestra en un repositorio GitHub](#tutorials-four-stage-pipeline-prerequisites-github)
+ [Creación de un rol de IAM para usar en la integración de Jenkins](#tutorials-four-stage-pipeline-prerequisites-jenkins-iam-role)
+ [Instale y configure Jenkins y el CodePipeline complemento para Jenkins](#tutorials-four-stage-pipeline-prerequisites-jenkins-configure)

### Copia o clona la muestra en un repositorio GitHub
<a name="tutorials-four-stage-pipeline-prerequisites-github"></a>

**Para clonar la muestra y enviarla a un GitHub repositorio**

1. Descargue el código de muestra del GitHub repositorio o clone los repositorios en su ordenador local. Existen dos muestras de paquetes: 
   + Si va a implementar la muestra en instancias de Amazon Linux, RHEL o Ubuntu Server, elija [codepipeline-jenkins-aws-codedeploy\_linux.zip](https://github.com/awslabs/aws-codepipeline-jenkins-aws-codedeploy_linux). 
   + Si va a implementar la muestra en instancias de Windows Server, elija [CodePipeline-Jenkins](https://github.com/awslabs/AWSCodePipeline-Jenkins-AWSCodeDeploy_windows) - .zip. AWSCodeDeploy\_Windows

1. Desde el repositorio, elija **Fork** para clonar el repositorio de muestra en su cuenta de Github. Para obtener más información, consulte la [Documentación de GitHub](https://help.github.com/articles/create-a-repo/).

### Creación de un rol de IAM para usar en la integración de Jenkins
<a name="tutorials-four-stage-pipeline-prerequisites-jenkins-iam-role"></a>

Como práctica recomendada, considere lanzar una instancia EC2 para alojar el servidor Jenkins y utilizar un rol de IAM para conceder a la instancia los permisos necesarios para interactuar con ella. CodePipeline

1. Inicie sesión en la consola de Consola de administración de AWS IAM y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En la consola de IAM, en el panel de navegación, seleccione **Roles** y **Crear rol**.

1. En **Select type of trusted entity** (Seleccionar el tipo de entidad de confianza), elija **Servicio de AWS**. En **Choose the service that will use this role (Elegir el servicio que utilizará este rol)**, elija **EC2**. En **Select your use case (Seleccionar su caso de uso)**, elija **EC2**. 

1. Elija **Siguiente: permisos**. En la página **Attach permissions policies (Asociar políticas de permisos)**, seleccione la política administrada `AWSCodePipelineCustomActionAccess` y, a continuación, elija **Next: Tags (Siguiente: etiquetas)**. Elija **Siguiente: Revisar**.

1. En la página **Review (Revisar)**, **en Role name (Nombre del rol)**, especifique el nombre del rol que va a crear específicamente para la integración de Jenkins (por ejemplo, {{JenkinsAccess}}) y elija **Create role (Crear rol)**.

Cuando cree la instancia EC2 en la que va a instalar Jenkins, en **Step 3: Configure Instance Details (Paso 3: Configurar detalles de la instancia)**, asegúrese de que elige el rol de instancia (por ejemplo, {{JenkinsAccess}}).

Para obtener más información sobre los roles de instancia y Amazon EC2, consulte [Roles de IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html), [Uso de un rol de IAM para conceder permisos a aplicaciones que se ejecutan en instancias de Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-ec2instance.html) y [Creación de un rol para delegar permisos en un Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-creatingrole-service.html).

### Instale y configure Jenkins y el CodePipeline complemento para Jenkins
<a name="tutorials-four-stage-pipeline-prerequisites-jenkins-configure"></a>

**Para instalar Jenkins y el CodePipeline complemento para Jenkins**

1. Cree la instancia EC2 en la que va a instalar Jenkins y en **Step 3: Configure Instance Details (Paso 3: Configurar detalles de instancia)**, asegúrese de elegir el rol de instancia que ha creado (por ejemplo, {{JenkinsAccess}}). Para obtener más información sobre la creación de instancias EC2, consulte [Lanzamiento de una instancia de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance_linux.html) en la *Guía del usuario de Amazon EC2*. 
**nota**  
Si ya posee los recursos de Jenkins que desea usar, puede hacerlo, pero debe crear un usuario de IAM especial, aplicar la política administrada `AWSCodePipelineCustomActionAccess` a ese usuario y configurar y usar las credenciales de acceso de dicho usuario en su recurso de Jenkins. Si desea usar la interfaz de usuario de Jenkins para proporcionar las credenciales, configure Jenkins para que solo permita HTTPS. Para obtener más información, consulte [Solución de problemas CodePipeline](troubleshooting.md).

1. Instale Jenkins en la instancia EC2. Para obtener más información, consulte la documentación de Jenkins para [instalar Jenkins](https://www.jenkins.io/doc/book/installing/linux/) y [comenzar y obtener acceso a Jenkins](https://wiki.jenkins.io/JENKINS/Starting-and-Accessing-Jenkins.html), además de [details of integration with Jenkins](integrations-action-type.md#JenkinsInt_2) en [Integraciones de productos y servicios con CodePipeline](integrations.md).

1. Lance Jenkins y en la página de inicio, elija **Manage Jenkins**.

1. En la página **Manage Jenkins**, elija **Manage Plugins**.

1. Elija la pestaña **Available (Disponible)** y, en el cuadro de búsqueda **Filter (Filtrar)**, escriba **AWS CodePipeline**. Elija el **CodePipeline complemento para Jenkins** de la lista y elija **Descargar ahora e instalar** después de reiniciar.

1. En la página **Installing Plugins/Upgrades**, seleccione **Restart Jenkins when installation is complete and no jobs are running**.

1. Elija **Back to Dashboard**.

1. En la página de inicio, elija **New Item**.

1. En **Nombre del elemento**, introduce un nombre para el proyecto de Jenkins (por ejemplo,{{MyDemoProject}}). Elija **Freestyle project** y después haga clic en **OK**.
**nota**  
Asegúrese de que el nombre del proyecto cumple los requisitos de CodePipeline. Para obtener más información, consulte [Cuotas en AWS CodePipeline](limits.md).

1. En la página de configuración del proyecto, seleccione la casilla **Execute concurrent builds if necessary**. En **Source Code Management (Administración de código fuente)**, elija **AWS CodePipeline**. Si ha instalado Jenkins en una instancia de EC2 y la ha configurado AWS CLI con el perfil del usuario de IAM que creó para la integración entre Jenkins CodePipeline y Jenkins, deje todos los demás campos vacíos.

1. Elija **Avanzado** y, en **Proveedor**, introduzca un nombre para el proveedor de la acción tal y como aparecerá CodePipeline (por ejemplo,). {{MyJenkinsProviderName}} Asegúrese de que el nombre es único y fácil de recordar. Lo usará cuando añada una acción de compilación a la canalización más adelante en este tutorial y nuevamente cuando añada una acción de prueba.
**nota**  
Este nombre de acción debe cumplir los requisitos de denominación de acciones de CodePipeline. Para obtener más información, consulte [Cuotas en AWS CodePipeline](limits.md).

1. En **Build Triggers**, desmarque las casillas marcadas y seleccione **Poll SCM**. En **Schedule (Programación)**, escriba cinco asteriscos separados por espacios, de la siguiente manera:

   ```
   * * * * *
   ```

   Esto sondea CodePipeline cada minuto. 

1. En **Build**, elija **Add build step**. Elija **Ejecutar intérprete de comandos** (Amazon Linux, RHEL o Ubuntu Server) **Ejecutar el comando por lotes** (Windows Server) y, a continuación, introduzca lo siguiente:

   ```
   rake
   ```
**nota**  
Asegúrese de que el entorno está configurado con las variables y los valores obligatorios para ejecutar rake; de lo contrario, la compilación presentará errores.

1. Selecciona **Añadir acción posterior a la creación** y, a continuación, selecciona **AWS CodePipeline Publicador**. Elija **Añadir** y, en **Ubicaciones de salida de compilación**, deje la ubicación en blanco. Esta configuración es la predeterminada. Creará un archivo comprimido al final del proceso de compilación.

1. Elija **Save** para guardar su proyecto de Jenkins.

## Paso 2: Crea una canalización en CodePipeline
<a name="tutorials-four-stage-pipeline-pipeline-create"></a>

En esta parte del tutorial, va a crear una canalización utilizando el asistente **Create Pipeline (Crear canalización)**. 

**Para crear un proceso de publicación CodePipeline automatizado**

1. Inicie sesión en la CodePipeline consola Consola de administración de AWS y ábrala en [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Si es necesario, use el selector de regiones para cambiar a la región en la que se encuentran los recursos de canalización. Por ejemplo, si ha creado recursos para el tutorial anterior en `us-east-2`, asegúrese de que el selector de regiones esté establecido en Este de EE. UU. (Ohio).

   Para obtener más información sobre las regiones y los puntos finales disponibles CodePipeline, consulte [AWS CodePipeline puntos finales y cuotas](https://docs.aws.amazon.com/general/latest/gr/codepipeline.html).

1. En la página **Bienvenido**, **Introducción** o **Canalizaciones**, elija **Crear canalización**.

1. En la página **Paso 1: elección de la opción de creación**, en **Opciones de creación**, seleccione la opción **Crear una canalización personalizada**. Elija **Siguiente**.

1. En la página **Paso 2: elegir la configuración de la canalización**, en **Nombre de la canalización**, escriba el nombre de la canalización.

1. CodePipeline proporciona canalizaciones de tipo V1 y V2, que difieren en sus características y precios. El tipo V2 es el único tipo que puede elegir en la consola. Para obtener más información, consulte [Tipos de canalización](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Para obtener información sobre los precios de CodePipeline, consulte [Precios](https://aws.amazon.com/codepipeline/pricing/).

1. En **Función de servicio**, elija **Nueva función de servicio** CodePipeline para poder crear una función de servicio en IAM.

1. En **Advanced settings (Configuración avanzada)**, deje los valores predeterminados y elija **Next (Siguiente)**.

1. En la página **Paso 3: Añadir la fase de origen**, en **Proveedor de origen**, seleccione **GitHub**.

1. En **Conexión**, seleccione una conexión existente o cree una nueva. Para crear o gestionar una conexión para la acción GitHub de origen, consulte[GitHub conexiones](connections-github.md).

1. En **Paso 4: agregar la etapa de compilación**, elija **Agregar Jenkins**. En **Nombre del proveedor**, introduce el nombre de la acción que proporcionaste en el CodePipeline complemento de Jenkins (por ejemplo{{MyJenkinsProviderName}}). Este nombre debe coincidir exactamente con el nombre del CodePipeline complemento de Jenkins. En **Server URL (URL del servidor)**, escriba la URL de la instancia EC2 en la que se ha instalado Jenkins. **En **Nombre del proyecto**, introduce el nombre del proyecto que creaste en Jenkins, por ejemplo{{MyDemoProject}}, y luego selecciona Siguiente.**

1. En **Paso 5: agregación de la etapa de prueba**, elija **Omitir la etapa de prueba** y, a continuación, acepte el mensaje de advertencia eligiendo **Omitir** una vez más. 

   Elija **Siguiente**.

1. En el **paso 6: Añadir la fase de despliegue**, reutilice la CodeDeploy aplicación y el grupo de despliegue en [Tutorial: Crear una canalización simple (bucket de S3)](tutorials-simple-s3.md) los que creó. En **Deploy provider (Proveedor de implementación)**, elija **CodeDeploy**. En **Nombre de la aplicación**, escriba **CodePipelineDemoApplication** o haga clic en el botón de actualización y elija el nombre de la aplicación en la lista. En **Deployment group (Grupo de implementación)**, escriba **CodePipelineDemoFleet** o elija un grupo de la lista. A continuación, elija **Next (Siguiente)**.
**nota**  
Puede utilizar sus propios CodeDeploy recursos o crear otros nuevos, pero puede incurrir en costes adicionales.

1. En el **paso 7: Revisar**, revisa la información y, a continuación, selecciona **Crear canalización**.

1. La canalización se inicia automáticamente y ejecuta la muestra en la canalización. Puede ver los mensajes de progreso y éxito y fracaso a medida que la canalización crea el ejemplo de Haml en HTML y lo despliega en una página web en cada una de las instancias de Amazon EC2 de la implementación. CodeDeploy

## Paso 3: Agregar otra etapa a la canalización
<a name="tutorials-four-stage-pipeline-add-stage"></a>

Ahora, agregará una etapa de prueba y, después, agregará a esa etapa una acción de prueba que use la prueba de Jenkins del ejemplo para determinar si la página web tiene contenido. Esta prueba solo tiene fines ilustrativos.

**nota**  
Si no quisiese añadir otra etapa a la canalización, podría añadir una acción de prueba a la etapa de ensayo de la canalización, antes o después de la acción de implementación.

### Agregar una etapa de prueba a la canalización
<a name="tutorials-four-stage-pipeline-add-stage-console"></a>

**Topics**
+ [Buscar la dirección IP de una instancia](#tutorials-four-stage-pipeline-instance-ip-lookup)
+ [Crear un proyecto de Jenkins para probar la implementación](#tutorials-four-stage-pipeline-create-jenkins-project)
+ [Crear una cuarta etapa](#tutorials-four-stage-pipeline-create-fourth-stage)

#### Buscar la dirección IP de una instancia
<a name="tutorials-four-stage-pipeline-instance-ip-lookup"></a>

**Para comprobar la dirección IP de una instancia en la que ha implementado el código**

1. Cuando el estado de canalización aparezca como **Succeeded** en el área de estado de la etapa Staging (Ensayo), elija **Details**. 

1. En la sección **Deployment Details**, en **Instance ID**, elija el ID de instancia de una de las instancias implementadas correctamente. 

1. Copie la dirección IP de la instancia (por ejemplo,). {{192.168.0.4}} Usará esta dirección IP en la prueba de Jenkins.

#### Crear un proyecto de Jenkins para probar la implementación
<a name="tutorials-four-stage-pipeline-create-jenkins-project"></a>

**Para crear el proyecto de Jenkins**

1. En la instancia en la que ha instalado Jenkins, abra Jenkins y en la página principal, elija **New Item**.

1.  En **Nombre del elemento**, introduzca un nombre para el proyecto de Jenkins (por ejemplo,{{MyTestProject}}). Elija **Freestyle project** y después haga clic en **OK**.
**nota**  
Asegúrese de que el nombre del proyecto cumpla con los CodePipeline requisitos. Para obtener más información, consulte [Cuotas en AWS CodePipeline](limits.md).

1. En la página de configuración del proyecto, seleccione la casilla **Execute concurrent builds if necessary**. En **Source Code Management (Administración de código fuente)**, elija **AWS CodePipeline**. Si ha instalado Jenkins en una instancia de EC2 y la ha configurado AWS CLI con el perfil del usuario de IAM que creó para la integración entre Jenkins CodePipeline y Jenkins, deje todos los demás campos vacíos. 
**importante**  
Si está configurando un proyecto de Jenkins y no está instalado en una instancia de Amazon EC2, o está instalado en una instancia EC2 que ejecuta un sistema operativo Windows, complete los campos requeridos por la configuración del puerto y el host del proxy, y proporcione las credenciales del usuario o rol de IAM que configuró para la integración entre Jenkins y. CodePipeline

1. Elija **Avanzado** y en **Categoría**, elija **Prueba**. 

1. En **Provider**, introduzca el mismo nombre que utilizó para el proyecto de compilación (por ejemplo,). {{MyJenkinsProviderName}} Usará este nombre cuando añada la acción de prueba a la canalización más adelante en este tutorial.
**nota**  
Este nombre debe cumplir los requisitos de CodePipeline denominación para las acciones. Para obtener más información, consulte [Cuotas en AWS CodePipeline](limits.md).

1. En **Build Triggers**, desmarque las casillas marcadas y seleccione **Poll SCM**. En **Schedule (Programación)**, escriba cinco asteriscos separados por espacios, de la siguiente manera:

   ```
   * * * * *
   ```

   Esto sondea CodePipeline cada minuto. 

1. En **Build**, elija **Add build step**. Si va a realizar la implementación en instancias de Amazon Linux, RHEL, o Ubuntu Server, elija **Ejecutar intérprete de comandos**. A continuación, escriba lo siguiente, donde la dirección IP será la dirección de la instancia EC2 que copió anteriormente:

   ```
   TEST_IP_ADDRESS={{192.168.0.4}} rake test
   ```

   Si va a realizar la implementación en instancias de Windows Server, elija **Ejecutar comando por lotes** y escriba la siguiente información, donde la dirección IP es la dirección de la instancia EC2 que copió anteriormente:

   ```
   set TEST_IP_ADDRESS={{192.168.0.4}} rake test
   ```
**nota**  
La prueba adopta el puerto 80 como puerto predeterminado. Si desea especificar un puerto diferente, añada una indicación de puerto de prueba, tal y como se indica a continuación:   

   ```
   TEST_IP_ADDRESS={{192.168.0.4}} TEST_PORT={{8000}} rake test
   ```

1. Selecciona **Añadir acción posterior a la creación** y, a continuación, selecciona **AWS CodePipeline Publicador**. No elija **Add**.

1. Elija **Save** para guardar su proyecto de Jenkins.

#### Crear una cuarta etapa
<a name="tutorials-four-stage-pipeline-create-fourth-stage"></a>

**Para añadir una etapa a la canalización que incluya la acción de prueba de Jenkins**

1. Inicie sesión en la CodePipeline consola Consola de administración de AWS y ábrala en [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. En **Name (Nombre)**, elija el nombre de la canalización que ha creado, MySecondPipeline. 

1. En la página de detalles de la canalización, elija **Edit**. 

1. En la página **Edit (Editar)**, elija **\+ Stage (\+ Etapa)** para añadir una etapa inmediatamente después de la etapa de compilación. 

1. En el campo de nombre de la etapa nueva, escriba un nombre (por ejemplo, **Testing**) y elija **\+ Add action group (Agregar grupo de acciones)**. 

1. En **Nombre de la acción**, introduzca{{MyJenkinsTest-Action}}. En **Proveedor de pruebas**, elija el nombre del proveedor que especificó en Jenkins (por ejemplo,{{MyJenkinsProviderName}}). En **Nombre del proyecto**, ingresa el nombre del proyecto que creaste en Jenkins (por ejemplo,{{MyTestProject}}). **En **Artefactos de entrada**, elige el artefacto de la versión de Jenkins cuyo nombre predeterminado es y{{BuildArtifact}}, a continuación, selecciona Listo.**
**nota**  
Dado que la acción de prueba de Jenkins opera en la aplicación integrada en el paso de compilación de Jenkins, utilice el artefacto de compilación para el artefacto de entrada de la acción de prueba.

   Para obtener más información acerca de los artefactos de entrada y salida y de la estructura de las canalizaciones, consulte [CodePipeline referencia de estructura de tubería](reference-pipeline-structure.md).

1. En la página **Edit**, elija **Save pipeline changes**. En el cuadro de diálogo **Save pipeline changes**, elija **Save and continue**.

1. Aunque se ha añadido la nueva etapa a la canalización, el estado **No executions yet** aparece en esa etapa porque no se han producido cambios que activen otra ejecución de la canalización. Para ejecutar la muestra en la canalización revisada, elija **Liberar cambio** en la página de detalles de la canalización. 

   La vista de canalización muestra las etapas y acciones de su canalización y el estado de la revisión que se ejecuta en esas cuatro etapas. El tiempo que tarde en ejecutarse la canalización en todas las etapas dependerá del tamaño de los artefactos, la complejidad de la compilación y las acciones de prueba y otros factores. 

## Paso 4: limpie los recursos
<a name="tutorials-four-stage-pipeline-clean-up"></a>

Una vez completado este tutorial, debe eliminar la canalización y los recursos que utiliza para que no se le cobre por el uso continuado de esos recursos. Si no tiene intención de seguir utilizándola CodePipeline, elimine la canalización, luego la CodeDeploy aplicación y sus instancias de Amazon EC2 asociadas y, por último, el bucket de Amazon S3 que se utiliza para almacenar artefactos. También debería considerar la posibilidad de eliminar otros recursos, como el GitHub repositorio, si no tiene intención de seguir utilizándolos.

**Para limpiar los recursos usados en este tutorial**

1. Abra una sesión de terminal en su máquina Linux, macOS o Unix local o en un símbolo del sistema en su máquina Windows local y ejecute el comando **delete-pipeline** para eliminar la canalización creada. En **MySecondPipeline**, debería escribir el siguiente comando: 

   ```
   aws codepipeline delete-pipeline --name "MySecondPipeline"
   ```

   Este comando no devuelve nada.

1. Para limpiar CodeDeploy los recursos, sigue las instrucciones de [Cleaning Up](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-walkthrough.html#getting-started-walkthrough-clean-up).

1. Para limpiar los recursos de la instancia, elimine la instancia EC2 en la que instaló Jenkins. Para obtener más información, consulte [Eliminación de la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-clean-up-your-instance.html).

1. Si no tiene intención de crear más canalizaciones o CodePipeline volver a utilizarlas, elimine el bucket de Amazon S3 que se utiliza para almacenar los artefactos de su canalización. Para eliminar el bucket, siga las instrucciones que se indican en [Eliminar un bucket](https://docs.aws.amazon.com/AmazonS3/latest/UG/DeletingaBucket.html).

1. Si no tiene intención de volver a usar los demás recursos de esta canalización, plantéese eliminarlos siguiendo las instrucciones de la guía de ese recurso específico. Por ejemplo, si desea eliminar el GitHub repositorio, siga las instrucciones de [Eliminar un repositorio](https://help.github.com/articles/deleting-a-repository/) en el sitio GitHub web.