

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: Cree una canalización con AWS CloudFormation
<a name="tutorials-cloudformation"></a>

En los ejemplos se proporcionan plantillas de muestra que puede utilizar AWS CloudFormation para crear una canalización que despliegue la aplicación en las instancias cada vez que se modifique el código fuente. La plantilla de ejemplo crea una canalización que se puede visualizar en AWS CodePipeline. La canalización detecta la llegada de un cambio guardado a través de Amazon CloudWatch Events.

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

**Topics**
+ [Ejemplo 1: crear una AWS CodeCommit canalización con AWS CloudFormation](tutorials-cloudformation-codecommit.md)
+ [Ejemplo 2: Crear una canalización de Amazon S3 con AWS CloudFormation](tutorials-cloudformation-s3.md)

# Ejemplo 1: crear una AWS CodeCommit canalización con AWS CloudFormation
<a name="tutorials-cloudformation-codecommit"></a>

En este tutorial, se muestra cómo usar la AWS CloudFormation consola para crear una infraestructura que incluya una canalización conectada a un repositorio de CodeCommit origen. En este tutorial, utilizarás el archivo de plantilla de ejemplo proporcionado para crear tu pila de recursos, que incluye el almacén de artefactos, la canalización y los recursos de detección de cambios, como la regla de Amazon CloudWatch Events. Una vez que hayas creado tu pila de recursos AWS CloudFormation, podrás ver tu canalización en la consola. AWS CodePipeline La canalización es una canalización de dos etapas: una etapa CodeCommit de origen y una etapa de CodeDeploy implementación.

**Requisitos previos**:

Debe haber creado los siguientes recursos para utilizarlos con la plantilla de AWS CloudFormation ejemplo:
+ Debe haber creado un repositorio de origen. Puede usar el AWS CodeCommit repositorio en el que creó[Tutorial: Crear una canalización sencilla (CodeCommit repositorio)](tutorials-simple-codecommit.md).
+ Debe haber creado un grupo de CodeDeploy aplicaciones y despliegues. Puede utilizar los recursos de CodeDeploy creados en [Tutorial: Crear una canalización sencilla (CodeCommit repositorio)](tutorials-simple-codecommit.md).
+ [Elige uno de estos enlaces para descargar el archivo de AWS CloudFormation plantilla de ejemplo para crear una canalización: [YAML \$1 JSON](samples/codepipeline-codecommit-events-yaml.zip)](samples/codepipeline-codecommit-events-json.zip)

  Descomprima el archivo y colóquelo en su equipo local.
+ Descarga el archivo de aplicación de ejemplo [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip).



**Crea tu canalización en AWS CloudFormation**

1. Descomprime los archivos de [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip) y súbelos a tu AWS CodeCommit repositorio. Debe cargar los archivos descomprimidos en el directorio raíz del repositorio. Puede seguir las instrucciones en [Paso 2: Agrega un código de muestra a tu CodeCommit repositorio](tutorials-simple-codecommit.md#codecommit-add-code) para enviar los archivos a su repositorio.

1. Abre la AWS CloudFormation consola y selecciona **Create Stack**. Elija **Con nuevos recursos (estándar)**.

1. En **Especificar plantilla**, elija **Cargar una plantilla**. Seleccione **Elegir un archivo** y luego seleccione el archivo de plantilla desde el equipo local. Elija **Siguiente**.

1. En **Stack Name (Nombre de pila)**, escriba el nombre de la canalización. Se muestran los parámetros especificados en la plantilla de muestra. Introduzca los siguientes parámetros: 

   1. En **ApplicationName**, introduce el nombre de tu CodeDeploy aplicación.

   1. En **BetaFleet**, introduzca el nombre de su grupo de CodeDeploy implementación.

   1. En **BranchName**, introduzca la rama del repositorio que desee usar.

   1. En **RepositoryName**, introduce el nombre del repositorio de CodeCommit origen.

1. Elija **Siguiente**. Acepte los valores predeterminados en la siguiente página y, a continuación, elija **Next (Siguiente)**.

1. En **Capacidades**, seleccione **Acepto que AWS CloudFormation podría crear recursos de IAM** y, a continuación, elija **Crear pila**.

1. Una vez creada la pila, consulte la lista de eventos para comprobar si hay errores.

   **Solución de problemas**

   Es posible que el usuario de IAM que está creando la canalización AWS CloudFormation necesite permisos adicionales para crear recursos para la canalización. La política requiere los siguientes permisos para poder AWS CloudFormation crear los recursos de Amazon CloudWatch Events necesarios para la CodeCommit canalización:

   ```
   {
        "Effect": "Allow",
        "Action": [
           "events:PutRule",
           "events:PutEvents",
           "events:PutTargets",
           "events:DeleteRule",
           "events:RemoveTargets",
           "events:DescribeRule"
        ],
        "Resource": "resource_ARN"
   }
   ```

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

   En **Canalizaciones**, elija la canalización y luego **Ver**. El diagrama muestra las etapas de código fuente e implementación de la canalización.
**nota**  
Para ver la canalización que se creó, busque la columna **ID lógico** en la pestaña **Recursos** para su pila en CloudFormation. Anote el nombre de la canalización en la columna **ID físico**. En CodePipeline ella, podrás ver la canalización con el mismo ID físico (nombre de la canalización) de la región en la que creaste la pila.

1. En el repositorio de origen, confirme y envíe un cambio. Sus recursos de detección de cambios recogen el cambio y se inicia la canalización.

# Ejemplo 2: Crear una canalización de Amazon S3 con AWS CloudFormation
<a name="tutorials-cloudformation-s3"></a>

En este tutorial, se muestra cómo utilizar la AWS CloudFormation consola para crear una infraestructura que incluya una canalización conectada a un bucket de origen de Amazon S3. En este tutorial, utilizarás el archivo de plantilla de ejemplo proporcionado para crear tu pila de recursos, que incluye el depósito de origen, el almacén de artefactos, la canalización y los recursos de detección de cambios, como la regla y el seguimiento de Amazon CloudWatch Events. CloudTrail Una vez que haya creado su pila de recursos AWS CloudFormation, podrá ver su canalización en la consola. AWS CodePipeline La canalización es una canalización de dos etapas con una etapa de origen de Amazon S3 y una etapa de CodeDeploy implementación.

**Requisitos previos**:

Debe disponer de los siguientes recursos para utilizarlos con la plantilla de AWS CloudFormation ejemplo:
+ Debe haber creado las instancias de Amazon EC2, donde instaló el CodeDeploy agente en las instancias. Debe haber creado un grupo de CodeDeploy aplicaciones y despliegues. Utilice Amazon EC2 y CodeDeploy los recursos en los que creó. [Tutorial: Crear una canalización sencilla (CodeCommit repositorio)](tutorials-simple-codecommit.md)
+ Seleccione los siguientes enlaces para descargar los archivos de AWS CloudFormation plantilla de ejemplo para crear una canalización con una fuente de Amazon S3: 
  + Descargue la plantilla de ejemplo para su canalización: [YAML](samples/codepipeline-s3-events-yaml.zip) \$1 [JSON](samples/codepipeline-s3-events-json.zip)
  + [Descarga la plantilla de muestra para tu CloudTrail bucket y ruta: [YAML \$1 JSON](samples/codepipeline-s3-cloudtrail-yaml.zip)](samples/codepipeline-s3-cloudtrail-json.zip)
  + Descomprima los archivos y colóquelos en su equipo local.
+ Descarga la aplicación de muestra desde [SampleApp\$1Linux.zip](samples/SampleApp_Linux.zip).

  Guarde el archivo .zip en su equipo local. Debe cargar el archivo .zip una vez que se haya creado la pila.

**Crea tu canalización en AWS CloudFormation**

1. Abre la AWS CloudFormation consola y selecciona **Create Stack**. Elija **Con nuevos recursos (estándar)**.

1. En **Elegir una plantilla**, elija **Cargar una plantilla**. Seleccione **Elegir un archivo** y luego seleccione el archivo de plantilla desde el equipo local. Elija **Siguiente**.

1. En **Stack Name (Nombre de pila)**, escriba el nombre de la canalización. Se muestran los parámetros especificados en la plantilla de muestra. Introduzca los siguientes parámetros: 

   1. En **ApplicationName**, introduce el nombre de tu CodeDeploy aplicación. Puede reemplazar el nombre predeterminado `DemoApplication`.

   1. En **BetaFleet**, introduzca el nombre de su grupo de CodeDeploy implementación. Puede reemplazar el nombre predeterminado `DemoFleet`.

   1. En **SourceObjectKey**, introduzca`SampleApp_Linux.zip`. Puede cargar este archivo en el bucket después de que la plantilla cree el bucket y la canalización.

1. Elija **Siguiente**. Acepte los valores predeterminados en la siguiente página y, a continuación, elija **Next (Siguiente)**.

1. En **Capacidades**, seleccione **Acepto que AWS CloudFormation podría crear recursos de IAM** y, a continuación, elija **Crear pila**.

1. Una vez creada la pila, consulte la lista de eventos para comprobar si hay errores.

   **Solución de problemas**

   Es posible que el usuario de IAM que está creando la canalización AWS CloudFormation necesite permisos adicionales para crear recursos para la canalización. La política requiere los siguientes permisos para poder crear los recursos de Amazon CloudWatch Events necesarios para la canalización de Amazon S3: AWS CloudFormation 

   ```
   {
        "Effect": "Allow",
        "Action": [
           "events:PutRule",
           "events:PutEvents",
           "events:PutTargets",
           "events:DeleteRule",
           "events:RemoveTargets",
           "events:DescribeRule"
        ],
        "Resource": "resource_ARN"
   }
   ```

1. En CloudFormation la pestaña **Recursos** de su pila, consulte los recursos que se crearon para su pila. 
**nota**  
Para ver la canalización que se creó, busque la columna **ID lógico** en la pestaña **Recursos** para su pila en CloudFormation. Anote el nombre de la canalización en la columna **ID físico**. En CodePipeline, puedes ver la canalización con el mismo ID físico (nombre de la canalización) de la región en la que creaste la pila.

   Elija el bucket de S3 con una etiqueta `sourcebucket` en el nombre, como `s3-cfn-codepipeline-sourcebucket-y04EXAMPLE.`. No elija el bucket del artefacto de la canalización.

   El bucket de origen está vacío porque CloudFormation ha creado recientemente el recurso. Abra la consola de Amazon S3 y localice su bucket de `sourcebucket`. Elija **Upload (Cargar)** y siga las instrucciones para cargar el archivo .zip `SampleApp_Linux.zip`.
**nota**  
Cuando Amazon S3 es el proveedor de origen de la canalización, debe cargar en el bucket todos los archivos de origen empaquetados como un solo archivo .zip. De lo contrario, la acción de origen dará error.

1. Inicia sesión en Consola de administración de AWS y abre la CodePipeline consola en [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   En **Canalizaciones**, elija la canalización y luego **Ver**. El diagrama muestra las etapas de código fuente e implementación de la canalización.

1. Complete los pasos del siguiente procedimiento para crear sus recursos de AWS CloudTrail .

**Crea tus AWS CloudTrail recursos en AWS CloudFormation**

1. Abre la AWS CloudFormation consola y selecciona **Create Stack**.

1. En **Elegir una plantilla**, elija **Subir una plantilla en Amazon S3**. Elija **Examinar** y, a continuación, seleccione el archivo de plantilla para los AWS CloudTrail recursos de su ordenador local. Elija **Siguiente**.

1. En **Stack name (Nombre de pila)**, escriba un nombre para la pila de recursos. Se muestran los parámetros especificados en la plantilla de muestra. Introduzca los siguientes parámetros: 

   1. En **SourceObjectKey**, acepte el valor predeterminado del archivo zip de la aplicación de ejemplo.

1. Elija **Siguiente**. Acepte los valores predeterminados en la siguiente página y, a continuación, elija **Next (Siguiente)**.

1. En **Capacidades**, seleccione **Acepto que AWS CloudFormation podría crear recursos de IAM** y, a continuación, elija **Crear**.

1. Una vez creada la pila, consulte la lista de eventos para comprobar si hay errores.

   La política requiere los siguientes permisos para poder crear AWS CloudFormation los CloudTrail recursos necesarios para la canalización de Amazon S3:

   ```
   {
        "Effect": "Allow",
        "Action": [
           "cloudtrail:CreateTrail",
           "cloudtrail:DeleteTrail",
           "cloudtrail:StartLogging",
           "cloudtrail:StopLogging",
           "cloudtrail:PutEventSelectors"
        ],
        "Resource": "resource_ARN"
   }
   ```

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

   En **Canalizaciones**, elija la canalización y luego **Ver**. El diagrama muestra las etapas de código fuente e implementación de la canalización.

1. En el bucket de origen, confirme y envíe un cambio. Sus recursos de detección de cambios recogen el cambio y se inicia la canalización.