

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.

# Úselo AWS CodeBuild con AWS CodePipeline para probar el código y ejecutar compilaciones
<a name="how-to-create-pipeline"></a>

Puedes automatizar el proceso de publicación si lo utilizas AWS CodePipeline para probar tu código y ejecutar tus compilaciones AWS CodeBuild.

En la siguiente tabla se muestran las tareas y los métodos disponibles que se pueden realizar. El uso AWS SDKs de para realizar estas tareas queda fuera del ámbito de este tema. 


****  

| Tarea | Enfoques disponibles | Enfoques descritos en este tema | 
| --- | --- | --- | 
| Cree una canalización de entrega continua (CD) CodePipeline que automatice las compilaciones con CodeBuild |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/how-to-create-pipeline.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/how-to-create-pipeline.html)  | 
| Añada la automatización, pruebe y desarrolle con CodeBuild ella a una canalización existente en CodePipeline |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/how-to-create-pipeline.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/how-to-create-pipeline.html)  | 

**Topics**
+ [

## Requisitos previos
](#how-to-create-pipeline-prerequisites)
+ [

# Cree una canalización que utilice CodeBuild (CodePipeline consola)
](how-to-create-pipeline-console.md)
+ [

# Cree una canalización que utilice CodeBuild (AWS CLI)
](how-to-create-pipeline-cli.md)
+ [

# Añadir una acción de CodeBuild compilación a una canalización (CodePipeline consola)
](how-to-create-pipeline-add.md)
+ [

# Añadir una acción CodeBuild de prueba a una canalización (CodePipeline consola)
](how-to-create-pipeline-add-test.md)

## Requisitos previos
<a name="how-to-create-pipeline-prerequisites"></a>

1. Responda a las preguntas de [Planificación de una compilación](planning.md).

1. Si utiliza un usuario para acceder CodePipeline en lugar de una cuenta AWS raíz o un usuario administrador, adjunte la política gestionada nombrada `AWSCodePipelineFullAccess` al usuario (o al grupo de IAM al que pertenece el usuario). No se recomienda utilizar una cuenta AWS raíz. Esta política concede al usuario permiso para crear la canalización en CodePipeline. Para obtener más información, consulte [Asociar políticas administradas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console) en la *Guía del usuario*.
**nota**  
La entidad de IAM que asocia la política al usuario (o al grupo de IAM al que pertenece el usuario) debe tener permiso en IAM para asociar políticas. Para obtener más información, consulte [Delegación de permisos para administrar usuarios, grupos y credenciales de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_delegate-permissions.html) en la *Guía del usuario*.

1. Cree un rol de CodePipeline servicio si aún no tiene uno disponible en su AWS cuenta. CodePipeline utiliza este rol de servicio para interactuar con otros AWS servicios AWS CodeBuild, incluso en su nombre. Por ejemplo, para usar la función de servicio AWS CLI para crear una función CodePipeline de servicio, ejecute el `create-role` comando de IAM:

   Para Linux, macOS o Unix:

   ```
   aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document '{"Version": "2012-10-17",		 	 	 "Statement":{"Effect":"Allow","Principal":{"Service":"codepipeline.amazonaws.com"},"Action":"sts:AssumeRole"}}'
   ```

   Para Windows:

   ```
   aws iam create-role --role-name AWS-CodePipeline-CodeBuild-Service-Role --assume-role-policy-document "{\"Version\":\"2012-10-17\",		 	 	 \"Statement\":{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"codepipeline.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}}"
   ```
**nota**  
La entidad de IAM que crea esta función de CodePipeline servicio debe tener permiso en IAM para crear funciones de servicio.

1. Tras crear una función de CodePipeline servicio o identificar una existente, debe añadir la política de función de CodePipeline servicio predeterminada a la función de servicio, tal como se describe en la sección [Revise la política de función de CodePipeline servicio predeterminada](https://docs.aws.amazon.com/codepipeline/latest/userguide/iam-identity-based-access-control.html#how-to-custom-role) de la *Guía del AWS CodePipeline usuario*, si aún no forma parte de la política de la función.
**nota**  
La entidad de IAM que añada esta política de funciones de CodePipeline servicio debe tener permiso en IAM para añadir políticas de funciones de servicio a las funciones de servicio.

1. Cree y cargue el código fuente en un tipo de repositorio compatible con CodeBuild y CodePipeline, por ejemplo CodeCommit, Amazon S3, Bitbucket o GitHub. El código fuente debe contener un archivo buildspec, pero puede declarar uno cuando defina un proyecto de compilación más adelante en este tema. Para obtener más información, consulte la [Referencia de la especificación de compilación](build-spec-ref.md).
**importante**  
Si tiene previsto utilizar la canalización para implementar el código fuente compilado, el artefacto de salida de la compilación debe ser compatible con el sistema de implementación que utilice.   
Para ello OpsWorks, consulte el [código fuente de la aplicación](https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-source) y su [uso CodePipeline con OpsWorks](https://docs.aws.amazon.com/opsworks/latest/userguide/other-services-cp.html) en la *Guía del OpsWorks usuario*.

# Cree una canalización que utilice CodeBuild (CodePipeline consola)
<a name="how-to-create-pipeline-console"></a>

Utilice el siguiente procedimiento para crear una canalización que se utilice CodeBuild para compilar e implementar el código fuente.

Para crear una canalización que solo pruebe el código fuente:
+ Utilice el siguiente procedimiento para crear la canalización y, a continuación, elimine las fases Build y Beta de la compilación. A continuación, use el procedimiento [Añadir una acción CodeBuild de prueba a una canalización (CodePipeline consola)](how-to-create-pipeline-add-test.md) de este tema para añadir a la canalización una acción de prueba que use CodeBuild.
+ Utilice uno de los otros procedimientos de este tema para crear la canalización y, a continuación, use el procedimiento [Añadir una acción CodeBuild de prueba a una canalización (CodePipeline consola)](how-to-create-pipeline-add-test.md) de este tema para añadir a la canalización una acción de prueba que use CodeBuild.

**Para usar el asistente de creación de canalizaciones CodePipeline para crear una canalización que utilice CodeBuild**

1. Inicie sesión en el Consola de administración de AWS mediante:
   + Tu cuenta AWS raíz. No se recomienda. Para obtener más información, consulte [El usuario raíz de la cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) en la *Guía del usuario*.
   + Un usuario administrador de tu AWS cuenta. Para obtener más información, [consulte Creación del primer usuario y grupo Cuenta de AWS raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) en la *Guía del usuario*.
   + Un usuario de tu AWS cuenta con permiso para usar el siguiente conjunto mínimo de acciones:

     ```
     codepipeline:*
     iam:ListRoles
     iam:PassRole
     s3:CreateBucket
     s3:GetBucketPolicy
     s3:GetObject
     s3:ListAllMyBuckets
     s3:ListBucket
     s3:PutBucketPolicy
     codecommit:ListBranches
     codecommit:ListRepositories
     codedeploy:GetApplication
     codedeploy:GetDeploymentGroup
     codedeploy:ListApplications
     codedeploy:ListDeploymentGroups
     elasticbeanstalk:DescribeApplications
     elasticbeanstalk:DescribeEnvironments
     lambda:GetFunctionConfiguration
     lambda:ListFunctions
     opsworks:DescribeStacks
     opsworks:DescribeApps
     opsworks:DescribeLayers
     ```

1. Abre la AWS CodePipeline consola en [https://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. En el selector de regiones, elige la AWS región en la que se AWS encuentran los recursos de tu proyecto AWS de construcción. Debe ser una AWS región que CodeBuild sea compatible. Para obtener más información, consulte [AWS CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) en la *Referencia general de Amazon Web Services*.

1. Crear una canalización. Si se muestra una página de CodePipeline información, elija **Crear canalización**. Si aparece la página **Pipelines (Canalizaciones)**, seleccione **Create pipeline (Crear canalización)**.

1. En la página **Step 1: Choose pipeline settings (Paso 1: Elegir configuración de canalización)**, en **Pipeline name (Nombre de canalización)**, escriba un nombre para la canalización (por ejemplo, **CodeBuildDemoPipeline**). Si elige otro nombre, asegúrese de utilizarlo durante todo este procedimiento.

1. En **Role name (Nombre de la función)**, realice una de las operaciones siguientes:

   Seleccione **New service role (Nueva función de servicio)** y, en **Role Name (Nombre de la función)**, especifique un nombre para la nueva función de servicio.

   Elija **Existing service role (Rol de servicio existente)**y elija después el rol de servicio de CodePipeline que creó o identificó en los requisitos previos de este tema.

1. En **Artifact store (Almacén de artefactos)**, haga lo siguiente:
   + Elige la **ubicación predeterminada** para usar el almacén de artefactos predeterminado, como el depósito de artefactos S3 designado como predeterminado, para tu canalización en la AWS región que hayas seleccionado para la canalización.
   + Elige una **ubicación personalizada** si ya tienes un almacén de artefactos que hayas creado, como un depósito de artefactos de S3, en la misma AWS región que tu canalización.
**nota**  
Esto no es el bucket de código fuente del código fuente de la canalización. Este es el almacén de artefactos de la canalización. Se necesita un almacén de artefactos independiente, como un depósito de S3, para cada canalización, en la misma AWS región que la canalización.

1. Elija **Siguiente**.

1. En la página **Step 2: Add source stage (Paso 2: Agregar una fase de origen)**, para **Source provider (Proveedor de código fuente)**, proceda del modo siguiente:
   + Si el código fuente está almacenado en un bucket de S3, elija **Amazon S3**. En **Bucket**, seleccione el bucket de S3 que contiene el código fuente. En **S3 object key (Clave de objeto de S3)**, escriba el nombre del archivo que contiene el código fuente (por ejemplo, `file-name.zip`). Elija **Siguiente**.
   + Si tu código fuente está almacenado en un AWS CodeCommit repositorio, elige **CodeCommit**. En **Repository name**, elija el nombre del repositorio que contiene el código fuente. En **Branch name (Nombre de la ramificación)**, elija el nombre de la ramificación que contiene la versión del código fuente que desea compilar. Elija **Siguiente**.
   + Si tu código fuente está almacenado en un GitHub repositorio, elige **GitHub**. Selecciona **Conectar a GitHub** y sigue las instrucciones para autenticarte con GitHub él. En **Repository**, elija el nombre del repositorio que contiene el código fuente. En **Branch (Ramificación)**, elija el nombre de la ramificación que contiene la versión del código fuente que desea compilar. 

   Elija **Siguiente**.

1. En la página **Step 3: Add build stage (Paso 3: Agregar una fase de compilación)**, para **Build provider (Proveedor de compilación)**, elija **CodeBuild**.

1. Si ya tiene un proyecto de compilación que desee utilizar, en **Nombre del proyecto**, seleccione el nombre del proyecto de compilación y vaya directamente al paso siguiente de este procedimiento. 

   Si necesita crear un nuevo proyecto de CodeBuild compilación, siga las instrucciones que se indican en este procedimiento [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y vuelva a realizarlo.

   Si elige un proyecto de construcción existente, debe tener la configuración de los artefactos de salida de la construcción ya definida (aunque la CodePipeline anule). Para obtener más información, consulte [Cambiar la configuración de un proyecto de compilación (consola)](change-project.md#change-project-console).
**importante**  
Si habilitas los webhooks para un CodeBuild proyecto y el proyecto se utiliza como paso de compilación CodePipeline, se crearán dos compilaciones idénticas para cada confirmación. Una compilación se activa a través de los webhooks y la otra a través de CodePipeline. Como se factura por compilación, se le cobrarán ambas compilaciones. Por lo tanto, si los estás utilizando CodePipeline, te recomendamos que inhabilites los webhooks en él. CodeBuild En la consola de AWS CodeBuild , desactive la casilla **Webhook**. Para obtener más información, consulte [Cambiar la configuración de un proyecto de compilación (consola)](change-project.md#change-project-console).

1. En la página **Step 4: Add deploy stage (Paso 4: Agregar una fase de implementación)**, realice una de las siguientes operaciones:
   + Si no desea implementar el artefacto de salida de la compilación, elija **Skip (Omitir)** y confirme esta opción cuando se lo soliciten. 
   + Si desea implementar el artefacto de salida de la compilación, en **Deploy provider (Proveedor de implementación)**, elija un proveedor de implementación y especifique la configuración cuando se lo soliciten.

   Elija **Siguiente**.

1. En la página ** Review (Revisar)**, revise las opciones y seleccione **Create pipeline (Crear canalización)**.

1. Una vez que la canalización se ejecute correctamente, podrá obtener el artefacto de salida de la compilación. Con la canalización mostrada en la CodePipeline consola, en la acción **Construir**, selecciona la información sobre herramientas. Anote el valor del **artefacto de salida** (por ejemplo, **MyAppBuild**).
**nota**  
También puedes obtener el artefacto de salida de la compilación seleccionando el enlace **Construir artefactos** en la página de detalles de la compilación de la CodeBuild consola. Para ir a esta página, omita el resto de los pasos de este procedimiento y consulte [Ver detalles de las compilaciones (consola)](view-build-details.md#view-build-details-console).

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista de buckets, abra el bucket utilizado por la canalización. El nombre del bucket debe seguir el formato `codepipeline-region-ID-random-number`. Puedes usar el comando AWS CLI para ejecutar el CodePipeline **get-pipeline** comando y obtener el nombre del bucket, donde *my-pipeline-name* aparece el nombre visible de tu canalización:

   ```
   aws codepipeline get-pipeline --name my-pipeline-name
   ```

    En el resultado, el objeto `pipeline` contiene un objeto `artifactStore`, que a su vez contiene un valor `location` con el nombre del bucket.

1. Abra la carpeta que tiene el mismo nombre que la canalización (en función de la longitud del nombre de la canalización, el nombre de la carpeta podría aparecer truncado) y después abra la carpeta que tiene el mismo nombre que el valor de **Output artifact (Artefacto de salida)** que anotó anteriormente.

1. Extraiga el contenido del archivo . Si hay varios archivos en esa carpeta, extraiga el contenido del archivo con la última marca temporal **Last Modified**. (Es posible que tenga que asignar al archivo la extensión `.zip` para que pueda trabajar con él en la utilidad ZIP del sistema). El artefacto de salida de la compilación está en el contenido extraído del archivo.

1. Si has indicado CodePipeline que despliegues el artefacto de salida de la compilación, sigue las instrucciones del proveedor de la implementación para llegar al artefacto de salida de la compilación en los objetivos de despliegue.

# Cree una canalización que utilice CodeBuild (AWS CLI)
<a name="how-to-create-pipeline-cli"></a>

Utilice el siguiente procedimiento para crear una canalización que se utilice CodeBuild para crear el código fuente.

 AWS CLI Para crear una canalización que despliegue el código fuente creado o que solo lo pruebe, puedes adaptar las instrucciones de [Editar una canalización (AWS CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-edit-pipelines.html#how-to-edit-pipelines-cli) y la [referencia a la estructura de CodePipeline canalización](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) de la *guía del AWS CodePipeline usuario*.

1. Cree o identifique un proyecto de compilación en CodeBuild. Para obtener más información, consulte [Creación de un proyecto de compilación](create-project.md).
**importante**  
El proyecto de compilación debe definir la configuración del artefacto de salida de la compilación (aunque CodePipeline la invalide). Para obtener más información, consulte la descripción de `artifacts` en [Crear un proyecto de compilación (AWS CLI)](create-project.md#create-project-cli).

1. Asegúrese de haberlo configurado AWS CLI con la clave de AWS acceso y la clave de acceso AWS secreta que corresponden a una de las entidades de IAM descritas en este tema. Para obtener más información, consulte [Configuración inicial de la AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) en la *Guía del usuario de AWS Command Line Interface *.

1. Crear un archivo con formato JSON que represente la estructura de la canalización. Asigne al archivo el nombre `create-pipeline.json` o uno similar. Por ejemplo, esta estructura con formato JSON crea una canalización con una acción de origen que hace referencia a un bucket de entrada de S3 y una acción de compilación que utiliza CodeBuild:

   ```
   {
     "pipeline": {
       "roleArn": "arn:aws:iam::<account-id>:role/<AWS-CodePipeline-service-role-name>",
       "stages": [
         {
           "name": "Source",
           "actions": [
             {
               "inputArtifacts": [],
               "name": "Source",
               "actionTypeId": {
                 "category": "Source",
                 "owner": "AWS",
                 "version": "1",
                 "provider": "S3"
               },
               "outputArtifacts": [
                 {
                   "name": "MyApp"
                 }
               ],
               "configuration": {
                 "S3Bucket": "<bucket-name>",
                 "S3ObjectKey": "<source-code-file-name.zip>"
               },
               "runOrder": 1
             }
           ]
         },
         {
           "name": "Build",
           "actions": [
             {
               "inputArtifacts": [
                 {
                   "name": "MyApp"
                 }
               ],
               "name": "Build",
               "actionTypeId": {
                 "category": "Build",
                 "owner": "AWS",
                 "version": "1",
                 "provider": "CodeBuild"
               },
               "outputArtifacts": [
                 {
                   "name": "default"
                 }
               ],
               "configuration": {
                 "ProjectName": "<build-project-name>"
               },
               "runOrder": 1
             }
           ]
         }
       ],
       "artifactStore": {
         "type": "S3",
         "location": "<CodePipeline-internal-bucket-name>"
       },
       "name": "<my-pipeline-name>",
       "version": 1
     }
   }
   ```

   En estos datos con formato JSON:
   + El valor de `roleArn` debe coincidir con el ARN del rol de CodePipeline servicio que creó o identificó como parte de los requisitos previos.
   + Los valores de `S3Bucket` y `S3ObjectKey` en `configuration` presuponen que el código fuente está almacenado en un bucket de S3. Para obtener información sobre la configuración de otros tipos de repositorios de código fuente, consulte [Referencia de la estructura de la canalización de CodePipeline ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) en la *Guía del usuario de AWS CodePipeline *.
   + El valor de `ProjectName` es el nombre del proyecto de CodeBuild construcción que creó anteriormente en este procedimiento.
   + El valor de `location` es el nombre del bucket de S3 que se utiliza en esta canalización. Para obtener más información, consulte este artículo acerca de [cómo crear una política para utilizar un bucket de S3 como almacén de artefactos de CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/access-permissions.html#how-to-create-bucket-policy) en la *Guía del usuario de AWS CodePipeline *.
   + El valor de `name` es el nombre de esta canalización. Todos los nombres de canalización deben ser únicos en su cuenta.

   Aunque estos datos solo describen una acción de origen y una acción de compilación, puede agregar acciones para actividades relacionadas con las pruebas, el despliegue del artefacto de salida de la compilación, la invocación de AWS Lambda funciones y más. Para obtener más información, consulte [Referencia de la estructura de la canalización de AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) en la *Guía del usuario de AWS CodePipeline *.

1. Cambie a la carpeta que contiene el archivo JSON y, a continuación, ejecute el CodePipeline **[create-pipeline](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/create-pipeline.html)** comando especificando el nombre del archivo:

   ```
   aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
   ```
**nota**  
Debe crear la canalización en una AWS región que CodeBuild sea compatible. Para obtener más información, consulte [AWS CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) en la *Referencia general de Amazon Web Services*.

   Los datos con formato JSON aparecen en la salida y CodePipeline crean la canalización.

1. Para obtener información sobre el estado de la canalización, ejecute el CodePipeline **[get-pipeline-state](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)** comando especificando el nombre de la canalización:

   ```
   aws codepipeline get-pipeline-state --name <my-pipeline-name>
   ```

   En el resultado, busque información que confirme que la compilación se ha realizado correctamente. Los puntos suspensivos (`...`) se utilizan para mostrar los datos que se han omitido por motivos de brevedad.

   ```
   {
     ...
     "stageStates": [
       ...  
       {
         "actionStates": [
           {
             "actionName": "CodeBuild",
             "latestExecution": {
               "status": "SUCCEEDED",
               ...
             },
             ...
           }
         ]
       }
     ]
   }
   ```

   Si ejecuta este comando demasiado pronto, es posible que no vea ninguna información sobre la acción de compilación. Tal vez tenga que ejecutar este comando varias veces hasta que la canalización termine de ejecutar la acción de compilación.

1. Una vez que la compilación se realice correctamente, siga estas instrucciones para obtener el artefacto de salida de la compilación. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).
**nota**  
También puede obtener el artefacto de salida de la compilación eligiendo el enlace **Build artifacts (Artefactos de compilación)** en la página de detalles de la compilación relacionada de la consola de CodeBuild. Para ir a esta página, omita el resto de los pasos de este procedimiento y consulte [Ver detalles de las compilaciones (consola)](view-build-details.md#view-build-details-console).

1. En la lista de buckets, abra el bucket utilizado por la canalización. El nombre del bucket debe seguir el formato `codepipeline-<region-ID>-<random-number>`. Puedes obtener el nombre del depósito desde el `create-pipeline.json` archivo o puedes ejecutar el CodePipeline **get-pipeline** comando para obtener el nombre del depósito.

   ```
   aws codepipeline get-pipeline --name <pipeline-name>
   ```

    En el resultado, el objeto `pipeline` contiene un objeto `artifactStore`, que a su vez contiene un valor `location` con el nombre del bucket.

1. Abra la carpeta que coincide con el nombre de la canalización (por ejemplo, `<pipeline-name>`).

1. En esa carpeta, abra la carpeta con el nombre `default`.

1. Extraiga el contenido del archivo . Si hay varios archivos en esa carpeta, extraiga el contenido del archivo con la última marca temporal **Last Modified**. (Es posible que tenga que asignar al archivo una extensión `.zip` para que pueda trabajar con él en la utilidad ZIP del sistema). El artefacto de salida de la compilación está en el contenido extraído del archivo.

# Añadir una acción de CodeBuild compilación a una canalización (CodePipeline consola)
<a name="how-to-create-pipeline-add"></a>

1. Inicia sesión en el Consola de administración de AWS mediante:
   + Tu cuenta AWS raíz. No se recomienda. Para obtener más información, consulte [El usuario raíz de la cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) en la *Guía del usuario*.
   + Un usuario administrador de tu AWS cuenta. Para obtener más información, [consulte Creación del primer usuario y grupo Cuenta de AWS raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) en la *Guía del usuario*.
   + Un usuario de su AWS cuenta con permiso para realizar el siguiente conjunto mínimo de acciones:

     ```
     codepipeline:*
     iam:ListRoles
     iam:PassRole
     s3:CreateBucket
     s3:GetBucketPolicy
     s3:GetObject
     s3:ListAllMyBuckets
     s3:ListBucket
     s3:PutBucketPolicy
     codecommit:ListBranches
     codecommit:ListRepositories
     codedeploy:GetApplication
     codedeploy:GetDeploymentGroup
     codedeploy:ListApplications
     codedeploy:ListDeploymentGroups
     elasticbeanstalk:DescribeApplications
     elasticbeanstalk:DescribeEnvironments
     lambda:GetFunctionConfiguration
     lambda:ListFunctions
     opsworks:DescribeStacks
     opsworks:DescribeApps
     opsworks:DescribeLayers
     ```

1. Abre la CodePipeline consola en [https://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. En el selector de regiones, elige AWS la región en la que se AWS encuentra tu canalización. Debe ser una región en la que CodeBuild se admita. Para obtener más información, consulte [CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) en la *Referencia general de Amazon Web Services*.

1. En la página **Pipelines (Canalizaciones)**, seleccione el nombre de la canalización.

1. En la página de detalles de la canalización, en la acción **Source (Origen)**, elija la ayuda contextual. Anote el valor del **artefacto de salida** (por ejemplo, **MyApp**).
**nota**  
En este procedimiento se indica cómo añadir una acción de compilación en una fase de compilación entre las fases **Source** y **Beta**. Si desea añadir la acción de compilación en otro lugar, elija la ayuda contextual sobre la acción justo antes del lugar en el que desea añadir la acción de compilación y anote el valor de **Output artifact (Artefacto de salida)**.

1. Elija **Edit (Edición de)**.

1. Entre las etapas **Source (Origen)** y **Beta**, seleccione **Add stage (Añadir fase)**.
**nota**  
En este procedimiento, se explica cómo se agrega una etapa de compilación entre las etapas **Source** y **Beta**. Para añadir una acción de compilación a una fase existente, seleccione **Edit stage (Editar fase)** en la fase y vaya al paso 8 de este procedimiento. Para añadir la fase de compilación en otra parte, seleccione **Add stage (Añadir fase)** en el lugar que desee.

     
![\[Cómo agregar una etapa de compilación entre las etapas Origen y Beta a su canalización.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/create-stage.png)

   

1. En **Stage name (Nombre de fase)**, escriba el nombre de la fase de compilación (por ejemplo, **Build**). Si elige otro nombre, úselo en todo este procedimiento.

1. Dentro de la fase seleccionada, seleccione **Add action (Añadir acción)**.
**nota**  
En este procedimiento se muestra cómo agregar la acción de compilación dentro de una fase de compilación. Para añadir la acción de compilación en otra parte, seleccione **Add action (Añadir acción)** en el lugar que desee. Es posible que primero tenga que seleccionar **Edit stage (Editar fase)** en la fase existente en la que desea añadir la acción de compilación.

1. En **Edit action (Editar acción)**, en **Action name (Nombre de acción)**, escriba un nombre para la acción (por ejemplo, **CodeBuild**). Si elige otro nombre, úselo en todo este procedimiento.

1. En **Action provider (Proveedor de acción)**, seleccione **CodeBuild**.

1. Si ya tiene un proyecto de compilación que desee utilizar, en **Nombre del proyecto**, seleccione el nombre del proyecto de compilación y vaya directamente al paso siguiente de este procedimiento.

   Si necesita crear un nuevo proyecto de CodeBuild construcción, siga las instrucciones [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y vuelva a este procedimiento.

   Si elige un proyecto de construcción existente, debe tener la configuración de los artefactos de salida de la construcción ya definida (aunque la CodePipeline anule). Para obtener más información, consulte la descripción de **artefactos** en [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) o [Cambiar la configuración de un proyecto de compilación (consola)](change-project.md#change-project-console).
**importante**  
Si habilitas los webhooks para un CodeBuild proyecto y el proyecto se utiliza como paso de compilación CodePipeline, se crearán dos compilaciones idénticas para cada confirmación. Una compilación se activa a través de los webhooks y la otra a través de CodePipeline. Como se factura por compilación, se le cobrarán ambas compilaciones. Por lo tanto, si los estás utilizando CodePipeline, te recomendamos que inhabilites los webhooks. CodeBuild En la CodeBuild consola, desactive la casilla **Webhook**. Para obtener más información, consulte [Cambiar la configuración de un proyecto de compilación (consola)](change-project.md#change-project-console)

1. En **Input artifacts (Artefactos de entrada)**, elija el artefacto de salida que anotó anteriormente en este procedimiento.

1. En **Output artifacts (Artefactos de salida)**, escriba un nombre para el artefacto de salida (por ejemplo, **MyAppBuild**). 

1. Seleccione **Agregar acción**.

1. Elija **Save (Guardar)** y después otra vez **Save (Guardar)** para guardar los cambios realizados en la canalización.

1. Elija **Release change**.

1. Una vez que la canalización se ejecute correctamente, podrá obtener el artefacto de salida de la compilación. Con la canalización mostrada en la CodePipeline consola, en la acción **Construir**, selecciona la información sobre herramientas. Anote el valor del **artefacto de salida** (por ejemplo, **MyAppBuild**).
**nota**  
También puedes obtener el artefacto de salida de la compilación seleccionando el enlace **Construir artefactos** en la página de detalles de la compilación de la CodeBuild consola. Para tener acceso a esta página, consulte [Ver detalles de las compilaciones (consola)](view-build-details.md#view-build-details-console) y vaya al paso 31 de este procedimiento.

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En la lista de buckets, abra el bucket utilizado por la canalización. El nombre del bucket debe seguir el formato `codepipeline-region-ID-random-number`. Puedes usar el comando AWS CLI para ejecutar el CodePipeline **get-pipeline** comando y obtener el nombre del depósito:

   ```
   aws codepipeline get-pipeline --name my-pipeline-name
   ```

    En el resultado, el objeto `pipeline` contiene un objeto `artifactStore`, que a su vez contiene un valor `location` con el nombre del bucket.

1. Abra la carpeta que tiene el mismo nombre que la canalización (en función de la longitud del nombre de la canalización, el nombre de la carpeta podría aparecer truncado) y después abra la carpeta que tiene el mismo nombre que el valor de **Output artifact (Artefacto de salida)** que anotó anteriormente en este procedimiento.

1. Extraiga el contenido del archivo . Si hay varios archivos en esa carpeta, extraiga el contenido del archivo con la última marca temporal **Last Modified**. (Es posible que tenga que asignar al archivo la extensión `.zip` para que pueda trabajar con él en la utilidad ZIP del sistema). El artefacto de salida de la compilación está en el contenido extraído del archivo.

1. Si has indicado CodePipeline que despliegues el artefacto de salida de la compilación, sigue las instrucciones del proveedor de la implementación para llegar al artefacto de salida de la compilación en los objetivos del despliegue.

# Añadir una acción CodeBuild de prueba a una canalización (CodePipeline consola)
<a name="how-to-create-pipeline-add-test"></a>

1. Inicia sesión en el Consola de administración de AWS mediante:
   + Tu cuenta AWS raíz. No se recomienda. Para obtener más información, consulte [El usuario raíz de la cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) en la *Guía del usuario*.
   + Un usuario administrador de tu AWS cuenta. Para obtener más información, [consulte Creación del primer usuario y grupo Cuenta de AWS raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html) en la *Guía del usuario*.
   + Un usuario de su AWS cuenta con permiso para realizar el siguiente conjunto mínimo de acciones:

     ```
     codepipeline:*
     iam:ListRoles
     iam:PassRole
     s3:CreateBucket
     s3:GetBucketPolicy
     s3:GetObject
     s3:ListAllMyBuckets
     s3:ListBucket
     s3:PutBucketPolicy
     codecommit:ListBranches
     codecommit:ListRepositories
     codedeploy:GetApplication
     codedeploy:GetDeploymentGroup
     codedeploy:ListApplications
     codedeploy:ListDeploymentGroups
     elasticbeanstalk:DescribeApplications
     elasticbeanstalk:DescribeEnvironments
     lambda:GetFunctionConfiguration
     lambda:ListFunctions
     opsworks:DescribeStacks
     opsworks:DescribeApps
     opsworks:DescribeLayers
     ```

1. Abre la CodePipeline consola en [https://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. En el selector de regiones, elige AWS la región en la que se AWS encuentra tu canalización. Debe ser una AWS región en la que CodeBuild se admita. Para obtener más información, consulte [AWS CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) en la *Referencia general de Amazon Web Services*.

1. En la página **Pipelines (Canalizaciones)**, seleccione el nombre de la canalización.

1. En la página de detalles de la canalización, en la acción **Source (Origen)**, elija la ayuda contextual. Anote el valor del **artefacto de salida** (por ejemplo, **MyApp**).
**nota**  
En este procedimiento se indica cómo añadir una acción de prueba a una fase de prueba entre las fases **Source** y **Beta**. Si desea añadir la acción de prueba en otro lugar, coloque el puntero del ratón sobre la acción que aparece justo delante y anote el valor de **Output artifact**.

1. Elija **Edit (Edición de)**.

1. Inmediatamente después de la fase **Source (Origen)**, seleccione **Add stage (Añadir fase)**.
**nota**  
En este procedimiento, se muestra también como se agrega a la canalización una etapa de prueba inmediatamente después de la fase **Source**. Para añadir una acción de prueba a una fase existente, seleccione **Edit stage (Editar fase)** en la fase y vaya al paso 8 de este procedimiento. Para añadir la fase de prueba en otra parte, seleccione **Add stage (Añadir fase)** en el lugar que desee.  
![\[Cómo agregar a su canalización una etapa de prueba inmediatamente después de la fase Origen.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/create-stage.png)

   

1. En **Stage name (Nombre de fase)**, escriba el nombre de la fase de prueba (por ejemplo, **Test**). Si elige otro nombre, úselo en todo este procedimiento.

1. En la fase seleccionada, elija **Add action (Añadir acción)**.
**nota**  
En este procedimiento se indica cómo añadir la acción de prueba en una fase de prueba. Para añadir la acción de prueba en otra parte, seleccione **Add action (Añadir acción)** en el lugar que desee. Es posible que primero tenga que seleccionar **Edit (Editar)** en la fase existente en la que desea añadir la acción de prueba.

1. En **Edit action (Editar acción)**, en **Action name (Nombre de acción)**, escriba un nombre para la acción (por ejemplo, **Test**). Si elige otro nombre, úselo en todo este procedimiento.

1. En **Action provider (Proveedor de acción)**, en **Test (Prueba)**, elija **CodeBuild**.

1. Si ya tiene un proyecto de compilación que desee utilizar, en **Nombre del proyecto**, seleccione el nombre del proyecto de compilación y vaya directamente al paso siguiente de este procedimiento.

   Si necesita crear un nuevo proyecto de CodeBuild construcción, siga las instrucciones [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y vuelva a este procedimiento.
**importante**  
Si habilitas los webhooks para un CodeBuild proyecto y el proyecto se utiliza como paso de compilación CodePipeline, se crearán dos compilaciones idénticas para cada confirmación. Una compilación se activa a través de los webhooks y la otra a través de CodePipeline. Como se factura por compilación, se le cobrarán ambas compilaciones. Por lo tanto, si los estás utilizando CodePipeline, te recomendamos que inhabilites los webhooks. CodeBuild En la CodeBuild consola, desactive la casilla **Webhook**. Para obtener más información, consulte [Cambiar la configuración de un proyecto de compilación (consola)](change-project.md#change-project-console)

1. En **Input artifacts (Artefactos de entrada)**, seleccione el valor de **Output artifact (Artefacto de salida)** que anotó anteriormente en este procedimiento.

1. (Opcional) Si desea que la acción de prueba produzca un artefacto de salida y configura la especificación de compilación en consecuencia, entonces en **Output artifact (Artefacto de salida)**, escriba el valor que desea asignar al artefacto de salida.

1. Seleccione **Save**.

1. Elija **Release change**.

1. Una vez que la canalización se ejecute correctamente, obtendrá los resultados de prueba. En la fase de **prueba** de la canalización, selecciona el **CodeBuild**hipervínculo para abrir la página del proyecto de compilación correspondiente en la CodeBuild consola.

   

1. En la página del proyecto de compilación, en el área **Build history (Historial de compilaciones)**, elija el hipervínculo **Build run (Ejecución de compilación)** relacionado.

1. En la página de ejecución de la **compilación, en Registros** de compilación, selecciona el hipervínculo **Ver registro completo** para abrir el registro de compilación en la CloudWatch consola de Amazon.

1. Desplácese por el log de compilación para ver los resultados de la prueba.