Crear una canalización que use CodeBuild (AWS CLI) - AWS CodeBuild

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.

Crear una canalización que use CodeBuild (AWS CLI)

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) y la referencia a la estructura de CodePipeline canalización de la guía del AWS CodePipeline usuario.

  1. Crea o identifica un proyecto de compilación en CodeBuild. Para obtener más información, consulte Creación de un proyecto de compilación.

    importante

    El proyecto de compilación debe definir la configuración de los artefactos de salida de la compilación (aunque la CodePipeline anule). Para obtener más información, consulte la descripción de artifacts en Crear un proyecto de compilación (AWS CLI).

  2. 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 IAM entidades descritas en este tema. Para obtener más información, consulte Configuración inicial de la AWS Command Line Interface en la Guía del usuario de AWS Command Line Interface .

  3. Cree un archivo JSON con formato K que represente la estructura de la canalización. Asigne al archivo el nombre create-pipeline.json o uno similar. Por ejemplo, esta estructura con JSON formato crea una canalización con una acción de origen que hace referencia a un depósito 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 JSON formato:

    • El valor de roleArn debe coincidir con el ARN de la función 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 ver la configuración de otros tipos de repositorios de código fuente, consulte la referencia sobre la estructura de CodePipeline canalización en la Guía del AWS CodePipeline usuario.

    • El valor de ProjectName es el nombre del proyecto de CodeBuild compilació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 Crear una política para un bucket de S3 para utilizarla como almacén de artefactos CodePipeline en la Guía del AWS CodePipeline usuario.

    • 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 añadir 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 mucho más. Para obtener más información, consulte Referencia de la estructura de la canalización de AWS CodePipeline en la Guía del usuario de AWS CodePipeline .

  4. Cambie a la carpeta que contiene el JSON archivo y, a continuación, ejecute el CodePipeline create-pipeline 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 en la Referencia general de Amazon Web Services.

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

  5. Para obtener información sobre el estado de la canalización, ejecute el CodePipeline get-pipeline-state 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.

  6. 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 Amazon S3 en https://console.aws.amazon.com/s3/.

    nota

    También puede obtener el artefacto de salida de la compilación seleccionando el enlace Crear artefactos en la página de detalles de la compilación correspondiente 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).

  7. 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 bucket desde el create-pipeline.json archivo o puedes ejecutar el CodePipeline get-pipeline comando para obtener el nombre del bucket.

    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.

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

  9. En esa carpeta, abra la carpeta con el nombre default.

  10. Extraiga el contenido del archivo . Si hay varios archivos en esa carpeta, extraiga el contenido del archivo con la última marca temporal Last Modified. (Puede que tengas que darle una .zip extensión al archivo para poder trabajar con él en la ZIP utilidad del sistema). El artefacto de salida de la compilación está en el contenido extraído del archivo.