Empezar con CodeBuild - 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.

Empezar con CodeBuild

En los siguientes tutoriales, se utiliza AWS CodeBuild para crear una colección de archivos de entrada de código fuente de ejemplo en una versión desplegable del código fuente.

Ambos tutoriales tienen la misma entrada y los mismos resultados, pero uno usa la AWS CodeBuild consola y el otro usa la AWS CLI.

importante

No le recomendamos que utilice su cuenta AWS root para completar este tutorial.

Cómo empezar a AWS CodeBuild usar la consola

En este tutorial, se utiliza AWS CodeBuild para crear una colección de archivos de entrada de código fuente de muestra (crear artefactos de entrada o crear entrada) en una versión desplegable del código fuente (crear artefactos de salida o compilar salida). En concreto, se indica que se debe CodeBuild utilizar Apache Maven, una herramienta de compilación común, para crear un conjunto de archivos de clases de Java en un archivo Java Archive (). JAR No necesita estar familiarizado con Apache Maven o Java para completar este tutorial.

Puede trabajar con él CodeBuild a través de la CodeBuild consola AWS CodePipeline AWS CLI, el o el. AWS SDKs En este tutorial se muestra cómo utilizar la CodeBuild consola. Para obtener información sobre su uso CodePipeline, consulteÚselo CodeBuild con CodePipeline.

importante

Los pasos de este tutorial requieren que cree recursos (por ejemplo, un bucket de S3) que podrían generar cargos en su AWS cuenta. Estos incluyen posibles cargos por CodeBuild y por AWS los recursos y acciones relacionados con Amazon S3 y CloudWatch Logs. AWS KMS Para obtener más información, consulte AWS CodeBuild precios, precios de Amazon S3, AWS Key Management Service precios y CloudWatch precios de Amazon.

Paso 1: Crear el código fuente

(Parte de: Cómo empezar a AWS CodeBuild usar la consola)

En este paso, crea el código fuente que CodeBuild desea incluir en el segmento de salida. Este código fuente consta de dos archivos de clases Java y un archivo Apache Maven Project Object Model (POM).

  1. En un directorio vacío del equipo o la instancia local, cree esta estructura de directorios.

    (root directory name) `-- src |-- main | `-- java `-- test `-- java
  2. Con el editor de texto que desee, cree este archivo, asígnele el nombre MessageUtil.java y guárdelo en el directorio src/main/java.

    public class MessageUtil { private String message; public MessageUtil(String message) { this.message = message; } public String printMessage() { System.out.println(message); return message; } public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; } }

    Este archivo de clases crea como resultado la cadena de caracteres que se la ha pasado. El constructor MessageUtil establece la cadena de caracteres. El método printMessage crea la salida. El método salutationMessage muestra Hi! seguido de la cadena de caracteres.

  3. Cree este archivo, asígnele el nombre TestMessageUtil.java y guárdelo en el directorio /src/test/java.

    import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestMessageUtil { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message,messageUtil.printMessage()); } @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); } }

    Este archivo de clases establece la variable message de la clase MessageUtil en Robert. A continuación, comprueba si la variable message se ha establecido correctamente comprobando si las cadenas Robert y Hi!Robert aparecen en la salida.

  4. Cree este archivo, asígnele el nombre pom.xml y guárdelo en el directorio raíz (nivel superior).

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>messageUtil</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>Message Utility Java Sample App</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> </plugins> </build> </project>

    Apache Maven utiliza las instrucciones de este archivo para convertir los archivos MessageUtil.java y TestMessageUtil.java en un archivo denominado messageUtil-1.0.jar y, a continuación, ejecuta las pruebas especificadas.

En este punto, la estructura de directorios debería ser similar a la siguiente.

(root directory name) |-- pom.xml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Paso 2: crear el archivo de especificación de compilación

(Paso anterior: Paso 1: Crear el código fuente)

En este paso, creará un archivo de especificación de compilación. Una especificación de compilación es una colección de comandos de compilación y configuraciones relacionadas, en YAML formato, que se CodeBuild utiliza para ejecutar una compilación. Sin una especificación de compilación, CodeBuild no se puede convertir correctamente la entrada de compilación en la salida de la compilación ni localizar el artefacto de salida de la compilación en el entorno de compilación para cargarlo en el segmento de salida.

Cree este archivo, asígnele el nombre buildspec.yml y guárdelo en el directorio raíz (nivel superior).

version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
importante

Como una declaración de especificaciones de compilación debe ser válidaYAML, el espaciado de una declaración de especificaciones de compilación es importante. Si el número de espacios de la declaración de especificación de compilación no coincide con esta declaración, la compilación podría producir un error inmediatamente. Puedes usar un YAML validador para comprobar si la declaración de especificaciones de compilación es válida. YAML

nota

En lugar de incluir un archivo de especificación de compilación en el código fuente, puede declarar los comandos de la compilación por separado cuando cree un proyecto de compilación. Esto resulta útil si desea compilar el código fuente con diferentes comandos de compilación sin actualizar el código fuente del repositorio cada vez. Para obtener más información, consulte Sintaxis de buildspec.

En esta declaración de especificación de compilación:

  • version representa la versión del estándar de especificación de compilación que se va a usar. Esta declaración de especificación de compilación usa la última versión, 0.2.

  • phasesrepresenta las fases de compilación durante las cuales puedes indicar la ejecución de comandos. CodeBuild Estas fases de compilación se muestran aquí como install, pre_build, build y post_build. No puede cambiar los nombres de estas fases de compilación ni puede crear nombres de fases de compilación adicionales.

    En este ejemplo, durante la build fase, CodeBuild ejecuta el mvn install comando. Este comando indica a Apache Maven que compile, pruebe y empaquete los archivos de clases Java compilados en un artefacto de salida de la compilación. En aras de una mayor exhaustividad, se incluyen algunos comandos echo en cada fase de compilación de este ejemplo. Al ver información de compilación detallada más adelante en este tutorial, el resultado de estos echo comandos puede ayudarle a comprender mejor cómo CodeBuild se ejecutan los comandos y en qué orden. (Aunque en este ejemplo se incluyen todas las fases de compilación, no es necesario que incluya una fase de compilación si no piensa ejecutar ningún comando durante esa fase). Para cada fase de compilación, CodeBuild ejecuta cada comando especificado, uno a la vez, en el orden indicado, de principio a fin.

  • artifactsrepresenta el conjunto de artefactos de salida de la compilación que se CodeBuild carga en el depósito de salida. filesrepresenta los archivos que se van a incluir en el resultado de la compilación. CodeBuild carga el único messageUtil-1.0.jar archivo que se encuentra en el directorio target relativo del entorno de compilación. El nombre del archivo messageUtil-1.0.jar y el nombre del directorio target se basan en la forma en que Apache Maven crea y almacena los artefactos de salida de la compilación para este ejemplo únicamente. En sus propias compilaciones, estos nombres de archivos y directorios son diferentes.

Para obtener más información, consulte Referencia de la especificación de compilación.

En este punto, la estructura de directorios debería ser similar a la siguiente.

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Paso 3: crear dos buckets de S3

(Paso anterior: Paso 2: crear el archivo de especificación de compilación)

Aunque puede usar un solo bucket para este tutorial, dos buckets hacen que sea más fácil ver de dónde proviene la entrada de compilación y hacia dónde va la salida de compilación.

  • Uno de estos buckets (bucket de entrada) almacena la entrada de compilación. En este tutorial, el nombre de este depósito de entrada escodebuild-region-ID-account-ID-input-bucket, donde region-ID es la AWS región del depósito y account-ID es el ID AWS de tu cuenta.

  • El otro bucket (bucket de salida) almacena la salida de la compilación. En este tutorial, el nombre de este bucket de salida es codebuild-region-ID-account-ID-output-bucket.

Si elige nombres diferentes para estos buckets, asegúrese de usarlos en este tutorial.

Estos dos grupos deben estar en la misma AWS región que tus compilaciones. Por ejemplo, si ordenas CodeBuild ejecutar una compilación en la región EE.UU. Este (Ohio), estos grupos también deben estar en la región EE.UU. Este (Ohio).

Para obtener más información, consulte Creación de un bucket en la Guía del usuario de Amazon Simple Storage Service.

nota

Aunque CodeBuild también es compatible con las entradas de compilación almacenadas en CodeCommit los repositorios de Bitbucket y en los repositorios, en este tutorial no se muestra cómo utilizarlas. GitHub Para obtener más información, consulte Planificación de una compilación.

Paso 4: cargar el código fuente y el archivo buildspec

(Paso anterior: Paso 3: crear dos buckets de S3)

En este paso, añadirá el código fuente y el archivo de especificación de compilación al bucket de entrada.

Con la utilidad zip del sistema operativo, cree un archivo llamado MessageUtil.zip que incluya MessageUtil.java, TestMessageUtil.java, pom.xml y buildspec.yml.

La estructura de directorios del archivo MessageUtil.zip debe ser similar a la siguiente.

MessageUtil.zip |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java
importante

No incluya el directorio (root directory name), solo los directorios y archivos del directorio (root directory name).

Cargue el archivo MessageUtil.zip identificado en el bucket de entrada denominado codebuild-region-ID-account-ID-input-bucket.

importante

CodeCommitEn GitHub el caso de los repositorios y de Bitbucket, por convención, debes almacenar un archivo de especificaciones de compilación denominado buildspec.yml en la raíz (nivel superior) de cada repositorio o incluir la declaración de especificaciones de compilación como parte de la definición del proyecto de compilación. No crees un ZIP archivo que contenga el código fuente y el archivo de especificaciones de compilación del repositorio.

Para las entradas de compilación almacenadas únicamente en depósitos de S3, debes crear un ZIP archivo que contenga el código fuente y, por convención, un archivo de especificaciones de compilación con el nombre buildspec.yml raíz (nivel superior) o incluir la declaración de especificaciones de compilación como parte de la definición del proyecto de compilación.

Si desea utilizar otro nombre para el archivo de especificación de compilación, o si quiere hacer referencia a una especificación de compilación en una ubicación distinta de la raíz, puede especificar una invalidación de la especificación de compilación como parte de la definición del proyecto de compilación. Para obtener más información, consulte Nombre de archivo y ubicación de almacenamiento de buildspec.

Paso 5: crear el proyecto de compilación

(Paso anterior: Paso 4: cargar el código fuente y el archivo buildspec)

En este paso, crearás un proyecto de compilación que se AWS CodeBuild utilizará para ejecutar la compilación. Un proyecto de compilación incluye información sobre cómo ejecutar una compilación, incluido dónde obtener el código fuente, qué entorno de compilación se debe usar, qué comandos de compilación se deben ejecutar y dónde se debe almacenar el resultado de la compilación. Un entorno de compilación representa una combinación del sistema operativo, el tiempo de ejecución del lenguaje de programación y las herramientas que se CodeBuild utilizan para ejecutar una compilación. El entorno de compilación se expresa como una imagen de Docker. Para obtener más información, consulte Descripción general de Docker en la página de documentos de Docker.

Para este entorno de compilación, se indica CodeBuild que se utilice una imagen de Docker que contenga una versión del kit de desarrollo de Java (JDK) y Apache Maven.

Para crear el proyecto de compilación
  1. Inicia sesión en la AWS CodeBuild consola AWS Management Console y ábrela en codebuild/home. https://console.aws.amazon.com/codesuite/

  2. Usa el selector de AWS regiones para elegir una AWS región que sea CodeBuild compatible. Para obtener más información, consulte Puntos de conexión y cuotas de AWS CodeBuild en la Referencia general de Amazon Web Services.

  3. Si se muestra una página de CodeBuild información, elija Crear proyecto de construcción. De lo contrario, en el panel de navegación, expanda Compilar, elija Proyectos de compilación y, a continuación, elija Crear proyecto de compilación.

  4. En la página Create build project (Crear proyecto de compilación), en Project configuration (Configuración del proyecto), en Project name (Nombre de proyecto), escriba un nombre para este proyecto de compilación (en este ejemplo, codebuild-demo-project). Los nombres de los proyectos de compilación deben ser únicos en cada AWS cuenta. Si elige otro nombre, asegúrese de utilizarlo durante todo el tutorial.

    nota

    En la página Create build project (Crear proyecto de compilación), podría aparecer un mensaje de error similar al siguiente: You are not authorized to perform this operation (No tiene autorización para realizar esta operación). Lo más probable es que esto se deba a que has iniciado sesión en AWS Management Console como un usuario que no tiene permisos para crear un proyecto de compilación. Para solucionar este problema, cierre la sesión y AWS Management Console, a continuación, vuelva a iniciarla con las credenciales que pertenezcan a una de las siguientes IAM entidades:

    • Un usuario administrador de su AWS cuenta. Para obtener más información, consulte Creación del primer usuario y grupo Cuenta de AWS raíz en la Guía del usuario.

    • Un usuario de su AWS cuenta con las AWSCodeBuildAdminAccess políticas AmazonS3ReadOnlyAccess IAMFullAccess administradas y las correspondientes a ese usuario o a un IAM grupo al que pertenezca el usuario. Si no tiene ningún usuario o grupo en su AWS cuenta con estos permisos y no puede añadirlos a su usuario o grupo, póngase en contacto con el administrador de la AWS cuenta para obtener ayuda. Para obtener más información, consulte AWS políticas gestionadas (predefinidas) para AWS CodeBuild.

    Ambas opciones incluyen permisos de administrador que le permiten crear un proyecto de compilación y completar este tutorial. Le recomendamos que utilice siempre los permisos mínimos necesarios para realizar la tarea. Para obtener más información, consulte AWS CodeBuild referencia de permisos.

  5. En Fuente, como Proveedor de código fuente, elija Amazon S3.

  6. Para Bucket, elige codebuild-region-ID-account-ID-depósito de entrada.

  7. En S3 object key (Clave de objeto de S3), escriba MessageUtil.zip.

  8. En Environment (Entorno), para Environment image (Imagen de entorno), deje Managed image (Imagen administrada) seleccionado.

  9. En Operating system (Sistema operativo), elija Amazon Linux 2.

  10. En Runtime(s) (Tiempo de ejecución), elija Standard (Estándar).

  11. En Imagen, elija aws/codebuild/amazonlinux2-x86_64-standard:4.0.

  12. En Service role (Rol de servicio), deje la opción New service role (Nuevo rol de servicio) seleccionada y no haga ningún cambio en Role name (Nombre de rol).

  13. En Buildspec, deje Use a buildspec file (Usar un archivo buildspec) seleccionado.

  14. En Artefactos, como Tipo, seleccione Amazon S3.

  15. Para el nombre del bucket, selecciona codebuild- region-ID-account-ID-output-bucket.

  16. Deje Name (Nombre) y Path (Ruta) en blanco.

  17. Elija Crear el proyecto de compilación.

Paso 6: ejecutar la compilación

(Paso anterior: Paso 5: crear el proyecto de compilación)

En este paso, AWS CodeBuild indicas que se ejecute la compilación con la configuración del proyecto de compilación.

Para ejecutar la compilación
  1. Abre la AWS CodeBuild consola en https://console.aws.amazon.com/codesuite/codebuild/home.

  2. En el panel de navegación, elija Proyectos de compilación.

  3. En la lista de proyectos de compilación, elija y, a continuación codebuild-demo-project, elija Iniciar compilación. La compilación comienza inmediatamente.

Paso 7: ver información resumida sobre la compilación

(Paso anterior: Paso 6: ejecutar la compilación)

En este paso, verá información resumida sobre el estado de la compilación.

Para ver la información resumida de la compilación

  1. Si el codebuild-demo-project:<build-ID>no se muestra la página, en la barra de navegación, seleccione Crear historial. A continuación, en la lista de proyectos de construcción, en Proyecto, elija el enlace Construir y ejecutar para codebuild-demo-project. Debe haber un solo enlace coincidente. (Si ya ha completado este tutorial antes, elija el vínculo con el valor más reciente en la columna Completed (Completado)).

  2. En la página Estado de compilación, en Detalles de fase, se deben mostrar las fases de compilación siguientes como Con éxito en la columna Estado:

    • SUBMITTED

    • QUEUED

    • PROVISIONING

    • DOWNLOAD_SOURCE

    • INSTALL

    • PRE_BUILD

    • BUILD

    • POST_BUILD

    • UPLOAD_ARTIFACTS

    • FINALIZING

    • COMPLETED

    En Build Status (Estado de la compilación), debería mostrarse Succeeded (Realizado correctamente).

    Si en su lugar aparece In Progress (En curso) elija el botón de actualizar.

  3. Junto a cada fase de compilación, el valor Duration (Duración) indica cuánto tiempo ha tardado la fase de compilación. El valor End time (Hora de finalización) indica que esa fase de compilación ha terminado.

Paso 8: ver información detallada sobre la compilación

(Paso anterior: Paso 7: ver información resumida sobre la compilación)

En este paso, verás información detallada sobre tus CloudWatch registros de compilación.

nota

Para proteger la información confidencial, los CodeBuild registros ocultan lo siguiente:

Para ver información detallada sobre la compilación
  1. Con la página de detalles de la compilación mostrada del paso anterior, se muestran las últimas 10,000 líneas del log de compilación en Build logs. Para ver el registro de compilación completo en CloudWatch Logs, selecciona el enlace Ver todo el registro.

  2. En el flujo de registro de CloudWatch registros, puedes buscar los eventos del registro. De forma predeterminada, solo se muestra el último conjunto de eventos de log. Para ver eventos de log anteriores, desplácese hasta el principio de la lista.

  3. En este tutorial, la mayoría de los eventos del registro contienen información detallada sobre la CodeBuild descarga e instalación de los archivos de dependencias de compilación en su entorno de compilación, algo que probablemente no te importe. Puede usar el cuadro Filter events para reducir la información que se muestra. Por ejemplo, si escribe "[INFO]" en el cuadro Filter events (Filtrar eventos), solo se muestran los eventos que contienen [INFO]. Para obtener más información, consulte Sintaxis de filtros y patrones en la Guía del CloudWatch usuario de Amazon.

Paso 9: obtener el artefacto de salida de la compilación

(Paso anterior: Paso 8: ver información detallada sobre la compilación)

En este paso, obtendrá el messageUtil-1.0.jar archivo que se CodeBuild creó y se cargó en el depósito de salida.

Puede utilizar la CodeBuild consola o la consola Amazon S3 para completar este paso.

Para obtener el artefacto de salida de la compilación (AWS CodeBuild consola)
  1. Con la CodeBuild consola aún abierta y la página de detalles de construcción del paso anterior, selecciona la pestaña Detalles de la construcción y desplázate hacia abajo hasta la sección Artefactos.

    nota

    Si la página de detalles de la compilación no se muestra, en la barra de navegación, elija Historial de compilación y, a continuación, elija el enlace Ejecución de la compilación.

  2. El enlace a la carpeta Amazon S3 se encuentra en la Ubicación de carga de artefactos. Este enlace abre la carpeta de Amazon S3 donde se encuentra el archivo de artefactos de salida de compilación de messageUtil-1.0.jar.

Para obtener el artefacto de salida de la compilación (consola de Amazon S3)
  1. Abra la consola Amazon S3 en https://console.aws.amazon.com/s3/.

  2. Abra codebuild-region-ID-account-ID-output-bucket.

  3. Abra la carpeta codebuild-demo-project.

  4. Abra la carpeta target, donde se encuentra el archivo de artefactos de salida de compilación messageUtil-1.0.jar.

Paso 10: eliminar los buckets de S3

(Paso anterior: Paso 9: obtener el artefacto de salida de la compilación)

Para evitar que se sigan realizando cargos AWS en su cuenta, puede eliminar los depósitos de entrada y salida utilizados en este tutorial. Para obtener más instrucciones, consulte Eliminar o vaciar un bucket en la Guía del usuario de Amazon Simple Storage Service.

Si utilizas el IAM usuario o un IAM usuario administrador para eliminar estos depósitos, el usuario debe tener más permisos de acceso. Añada la siguiente declaración entre los marcadores (### BEGIN ADDING STATEMENT HERE ### y ### END ADDING STATEMENTS HERE ###) a una política de acceso existente para el usuario.

Las elipsis (...) de esta declaración se usan para abreviar. No elimine las instrucciones de la política de acceso existente. No escriba estos puntos suspensivos en la política.

{ "Version": "2012-10-17", "Id": "...", "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Effect": "Allow", "Action": [ "s3:DeleteBucket", "s3:DeleteObject" ], "Resource": "*" } ### END ADDING STATEMENT HERE ### ] }

Encapsulación

En este tutorial, AWS CodeBuild solía crear un conjunto de archivos de clases de Java en un JAR archivo. A continuación, ha consultado los resultados de la compilación.

Ahora puede intentar usarlos CodeBuild en sus propios escenarios. Siga las instrucciones en Planificación de una compilación. Si piensa que aún no está preparado, tal vez desee intentar compilar algunos de los ejemplos. Para obtener más información, consulte Utilice muestras basadas en casos para CodeBuild.

Cómo empezar a AWS CodeBuild usar el AWS CLI

En este tutorial, se utiliza AWS CodeBuild para crear una colección de archivos de entrada de código fuente de muestra (denominados artefactos de entrada de compilación o entrada de compilación) en una versión desplegable del código fuente (denominada artefacto de salida de compilación o salida de compilación). En concreto, se indica que se debe CodeBuild utilizar Apache Maven, una herramienta de compilación común, para crear un conjunto de archivos de clases de Java en un archivo Java Archive (). JAR No necesita estar familiarizado con Apache Maven o Java para completar este tutorial.

Puede trabajar con él CodeBuild a través de la CodeBuild consola AWS CodePipeline AWS CLI, el o el. AWS SDKs En este tutorial se muestra cómo usarlo CodeBuild con AWS CLI. Para obtener información sobre el uso CodePipeline, consulteÚselo CodeBuild con CodePipeline.

importante

Los pasos de este tutorial requieren que cree recursos (por ejemplo, un bucket de S3) que podrían generar cargos en su AWS cuenta. Estos incluyen posibles cargos por CodeBuild y por AWS los recursos y acciones relacionados con Amazon S3 y CloudWatch Logs. AWS KMS Para obtener más información, consulte CodeBuildprecios, precios de Amazon S3, AWS Key Management Service precios y CloudWatch precios de Amazon.

Paso 1: Crear el código fuente

(Parte de: Cómo empezar a AWS CodeBuild usar el AWS CLI)

En este paso, crea el código fuente que CodeBuild desea incluir en el segmento de salida. Este código fuente consta de dos archivos de clases Java y un archivo Apache Maven Project Object Model (POM).

  1. En un directorio vacío del equipo o la instancia local, cree esta estructura de directorios.

    (root directory name) `-- src |-- main | `-- java `-- test `-- java
  2. Con el editor de texto que desee, cree este archivo, asígnele el nombre MessageUtil.java y guárdelo en el directorio src/main/java.

    public class MessageUtil { private String message; public MessageUtil(String message) { this.message = message; } public String printMessage() { System.out.println(message); return message; } public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; } }

    Este archivo de clases crea como resultado la cadena de caracteres que se la ha pasado. El constructor MessageUtil establece la cadena de caracteres. El método printMessage crea la salida. El método salutationMessage muestra Hi! seguido de la cadena de caracteres.

  3. Cree este archivo, asígnele el nombre TestMessageUtil.java y guárdelo en el directorio /src/test/java.

    import org.junit.Test; import org.junit.Ignore; import static org.junit.Assert.assertEquals; public class TestMessageUtil { String message = "Robert"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); assertEquals(message,messageUtil.printMessage()); } @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Robert"; assertEquals(message,messageUtil.salutationMessage()); } }

    Este archivo de clases establece la variable message de la clase MessageUtil en Robert. A continuación, comprueba si la variable message se ha establecido correctamente comprobando si las cadenas Robert y Hi!Robert aparecen en la salida.

  4. Cree este archivo, asígnele el nombre pom.xml y guárdelo en el directorio raíz (nivel superior).

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>messageUtil</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>Message Utility Java Sample App</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> </plugins> </build> </project>

    Apache Maven utiliza las instrucciones de este archivo para convertir los archivos MessageUtil.java y TestMessageUtil.java en un archivo denominado messageUtil-1.0.jar y, a continuación, ejecuta las pruebas especificadas.

En este punto, la estructura de directorios debería ser similar a la siguiente.

(root directory name) |-- pom.xml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Paso 2: crear el archivo de especificación de compilación

(Paso anterior: Paso 1: Crear el código fuente)

En este paso, creará un archivo de especificación de compilación. Una especificación de compilación es una colección de comandos de compilación y configuraciones relacionadas, en YAML formato, que se CodeBuild utiliza para ejecutar una compilación. Sin una especificación de compilación, CodeBuild no se puede convertir correctamente la entrada de compilación en la salida de la compilación ni localizar el artefacto de salida de la compilación en el entorno de compilación para cargarlo en el segmento de salida.

Cree este archivo, asígnele el nombre buildspec.yml y guárdelo en el directorio raíz (nivel superior).

version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
importante

Como una declaración de especificaciones de compilación debe ser válidaYAML, el espaciado de una declaración de especificaciones de compilación es importante. Si el número de espacios de la declaración de especificación de compilación no coincide con esta declaración, la compilación podría producir un error inmediatamente. Puedes usar un YAML validador para comprobar si la declaración de especificaciones de compilación es válida. YAML

nota

En lugar de incluir un archivo de especificación de compilación en el código fuente, puede declarar los comandos de la compilación por separado cuando cree un proyecto de compilación. Esto resulta útil si desea compilar el código fuente con diferentes comandos de compilación sin actualizar el código fuente del repositorio cada vez. Para obtener más información, consulte Sintaxis de buildspec.

En esta declaración de especificación de compilación:

  • version representa la versión del estándar de especificación de compilación que se va a usar. Esta declaración de especificación de compilación usa la última versión, 0.2.

  • phasesrepresenta las fases de compilación durante las cuales puedes indicar la ejecución de comandos. CodeBuild Estas fases de compilación se muestran aquí como install, pre_build, build y post_build. No puede cambiar los nombres de estas fases de compilación ni puede crear nombres de fases de compilación adicionales.

    En este ejemplo, durante la build fase, CodeBuild ejecuta el mvn install comando. Este comando indica a Apache Maven que compile, pruebe y empaquete los archivos de clases Java compilados en un artefacto de salida de la compilación. En aras de una mayor exhaustividad, se incluyen algunos comandos echo en cada fase de compilación de este ejemplo. Al ver información de compilación detallada más adelante en este tutorial, el resultado de estos echo comandos puede ayudarle a comprender mejor cómo CodeBuild se ejecutan los comandos y en qué orden. (Aunque en este ejemplo se incluyen todas las fases de compilación, no es necesario que incluya una fase de compilación si no piensa ejecutar ningún comando durante esa fase). Para cada fase de compilación, CodeBuild ejecuta cada comando especificado, uno a la vez, en el orden indicado, de principio a fin.

  • artifactsrepresenta el conjunto de artefactos de salida de la compilación que se CodeBuild carga en el depósito de salida. filesrepresenta los archivos que se van a incluir en el resultado de la compilación. CodeBuild carga el único messageUtil-1.0.jar archivo que se encuentra en el directorio target relativo del entorno de compilación. El nombre del archivo messageUtil-1.0.jar y el nombre del directorio target se basan en la forma en que Apache Maven crea y almacena los artefactos de salida de la compilación para este ejemplo únicamente. En sus propias compilaciones, estos nombres de archivos y directorios son diferentes.

Para obtener más información, consulte Referencia de la especificación de compilación.

En este punto, la estructura de directorios debería ser similar a la siguiente.

(root directory name) |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java

Paso 3: crear dos buckets de S3

(Paso anterior: Paso 2: crear el archivo de especificación de compilación)

Aunque puede usar un solo bucket para este tutorial, dos buckets hacen que sea más fácil ver de dónde proviene la entrada de compilación y hacia dónde va la salida de compilación.

  • Uno de estos buckets (bucket de entrada) almacena la entrada de compilación. En este tutorial, el nombre de este depósito de entrada escodebuild-region-ID-account-ID-input-bucket, donde region-ID es la AWS región del depósito y account-ID es el ID AWS de tu cuenta.

  • El otro bucket (bucket de salida) almacena la salida de la compilación. En este tutorial, el nombre de este bucket de salida es codebuild-region-ID-account-ID-output-bucket.

Si elige nombres diferentes para estos buckets, asegúrese de usarlos en este tutorial.

Estos dos grupos deben estar en la misma AWS región que tus compilaciones. Por ejemplo, si ordenas CodeBuild ejecutar una compilación en la región EE.UU. Este (Ohio), estos grupos también deben estar en la región EE.UU. Este (Ohio).

Para obtener más información, consulte Creación de un bucket en la Guía del usuario de Amazon Simple Storage Service.

nota

Aunque CodeBuild también es compatible con las entradas de compilación almacenadas en CodeCommit los repositorios de Bitbucket y en los repositorios, en este tutorial no se muestra cómo utilizarlas. GitHub Para obtener más información, consulte Planificación de una compilación.

Paso 4: cargar el código fuente y el archivo buildspec

(Paso anterior: Paso 3: crear dos buckets de S3)

En este paso, añadirá el código fuente y el archivo de especificación de compilación al bucket de entrada.

Con la utilidad zip del sistema operativo, cree un archivo llamado MessageUtil.zip que incluya MessageUtil.java, TestMessageUtil.java, pom.xml y buildspec.yml.

La estructura de directorios del archivo MessageUtil.zip debe ser similar a la siguiente.

MessageUtil.zip |-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java
importante

No incluya el directorio (root directory name), solo los directorios y archivos del directorio (root directory name).

Cargue el archivo MessageUtil.zip identificado en el bucket de entrada denominado codebuild-region-ID-account-ID-input-bucket.

importante

CodeCommitEn GitHub el caso de los repositorios y de Bitbucket, por convención, debes almacenar un archivo de especificaciones de compilación denominado buildspec.yml en la raíz (nivel superior) de cada repositorio o incluir la declaración de especificaciones de compilación como parte de la definición del proyecto de compilación. No crees un ZIP archivo que contenga el código fuente y el archivo de especificaciones de compilación del repositorio.

Para las entradas de compilación almacenadas únicamente en depósitos de S3, debes crear un ZIP archivo que contenga el código fuente y, por convención, un archivo de especificaciones de compilación con el nombre buildspec.yml raíz (nivel superior) o incluir la declaración de especificaciones de compilación como parte de la definición del proyecto de compilación.

Si desea utilizar otro nombre para el archivo de especificación de compilación, o si quiere hacer referencia a una especificación de compilación en una ubicación distinta de la raíz, puede especificar una invalidación de la especificación de compilación como parte de la definición del proyecto de compilación. Para obtener más información, consulte Nombre de archivo y ubicación de almacenamiento de buildspec.

Paso 5: crear el proyecto de compilación

(Paso anterior: Paso 4: cargar el código fuente y el archivo buildspec)

En este paso, crearás un proyecto de compilación que se AWS CodeBuild utilizará para ejecutar la compilación. Un proyecto de compilación incluye información sobre cómo ejecutar una compilación, incluido dónde obtener el código fuente, qué entorno de compilación se debe usar, qué comandos de compilación se deben ejecutar y dónde se debe almacenar el resultado de la compilación. Un entorno de compilación representa una combinación del sistema operativo, el tiempo de ejecución del lenguaje de programación y las herramientas que se CodeBuild utilizan para ejecutar una compilación. El entorno de compilación se expresa como una imagen de Docker. Para obtener más información, consulte Descripción general de Docker en la página de documentos de Docker.

Para este entorno de compilación, se indica CodeBuild que se utilice una imagen de Docker que contenga una versión del kit de desarrollo de Java (JDK) y Apache Maven.

Para crear el proyecto de compilación
  1. Usa el AWS CLI para ejecutar el comando: create-project

    aws codebuild create-project --generate-cli-skeleton

    JSONLos datos con formato -aparecen en la salida. Copie los datos en un archivo cuyo nombre se create-project.json encuentre en una ubicación del equipo o instancia local en la que AWS CLI esté instalado. Si ha elegido usar un nombre de archivo diferente, asegúrese de usarlo en este tutorial.

    Modifique los datos copiados de modo que sigan este formato y, a continuación, guarde los resultados:

    { "name": "codebuild-demo-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "serviceIAMRole" }

    Reemplazar serviceIAMRole con el nombre de recurso de Amazon (ARN) de un rol de CodeBuild servicio (por ejemplo,arn:aws:iam::account-ID:role/role-name). Para crear uno, consulte CodeBuild Permiten interactuar con otros AWS servicios.

    En estos datos:

    • name representa un identificador obligatorio para este proyecto de compilación (en este ejemplo, codebuild-demo-project). Los nombres de los proyectos de compilación deben ser únicos en todos los proyectos de compilación de su cuenta.

    • En source, type es un valor obligatorio que representa el tipo de repositorio del código fuente (en este ejemplo, S3 para un bucket de Amazon S3).

    • Parasource, location representa la ruta al código fuente (en este ejemplo, el nombre del depósito de entrada seguido del nombre del ZIP archivo).

    • En artifacts, type es un valor obligatorio que representa el tipo de repositorio del artefacto de salida de la compilación (en este ejemplo, S3 para un bucket de Amazon S3).

    • En artifacts, location representa el nombre del bucket de salida que ha creado o identificado anteriormente (en este ejemplo, codebuild-region-ID-account-ID-output-bucket).

    • En environment, type es un valor obligatorio que representa el tipo de entorno de compilación (en este ejemplo,LINUX_CONTAINER).

    • Paraenvironment, image es un valor obligatorio que representa la combinación de nombre y etiqueta de imagen de Docker que utiliza este proyecto de compilación, según lo especificado por el tipo de repositorio de imágenes de Docker (en este ejemplo, aws/codebuild/standard:5.0 para una imagen de Docker en el repositorio de imágenes de CodeBuild Docker). aws/codebuild/standardes el nombre de la imagen de Docker. 5.0es la etiqueta de la imagen de Docker.

      Para encontrar más imágenes de Docker que pueda utilizar en sus escenarios, consulte Referencia de entornos de compilación.

    • Paraenvironment, computeType es un valor obligatorio que representa los recursos informáticos que se CodeBuild utilizan (en este ejemplo,BUILD_GENERAL1_SMALL).

    nota

    Otros valores disponibles en los datos JSON con formato original, como descriptionbuildspec, auth (incluidos type yresource),path,namespaceType, name (paraartifacts)packaging, environmentVariables (incluidos name yvalue) timeoutInMinutesencryptionKey, tags (incluidos key yvalue) son opcionales. No se utilizan en este tutorial, por lo que no se muestran aquí. Para obtener más información, consulte Crear un proyecto de compilación (AWS CLI).

  2. Cambie al directorio que contiene el archivo que acaba de guardar y, a continuación, vuelva a ejecutar el comando create-project.

    aws codebuild create-project --cli-input-json file://create-project.json

    Si el comando se ejecuta correctamente, aparecen datos similares a los siguientes en el resultado.

    { "project": { "name": "codebuild-demo-project", "serviceRole": "serviceIAMRole", "tags": [], "artifacts": { "packaging": "NONE", "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "name": "message-util.zip" }, "lastModified": 1472661575.244, "timeoutInMinutes": 60, "created": 1472661575.244, "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "encryptionKey": "arn:aws:kms:region-ID:account-ID:alias/aws/s3", "arn": "arn:aws:codebuild:region-ID:account-ID:project/codebuild-demo-project" } }
    • project representa información acerca de este proyecto de compilación.

      • tags representa todas las etiquetas que se han declarado.

      • packaging representa la forma en que el artefacto de salida de la compilación se almacena en el bucket de salida. NONE indica que se crea una carpeta en el bucket de salida. El artefacto de salida de la compilación se almacena en esa carpeta.

      • lastModified representa la fecha, en formato de fecha Unix, en la que se cambió por última vez la información sobre el proyecto de compilación.

      • timeoutInMinutesrepresenta el número de minutos tras los que CodeBuild se detiene la compilación si no se ha completado. (El valor predeterminado es 60 minutos.)

      • created representa la fecha, en formato de fecha Unix, en la que se creó el proyecto de compilación.

      • environmentVariablesrepresenta cualquier variable de entorno que se haya declarado y que esté disponible CodeBuild para su uso durante la compilación.

      • encryptionKeyrepresenta ARN la clave administrada por el cliente que CodeBuild se utilizó para cifrar el artefacto de salida de la compilación.

      • arnrepresenta el del ARN proyecto de construcción.

nota

Tras ejecutar el create-project comando, puede aparecer un mensaje de error similar al siguiente: Usuario: user-ARN no está autorizado a realizar: codebuild: CreateProject. Lo más probable es que esto se deba a que lo configuró AWS CLI con las credenciales de un usuario que no tiene los permisos suficientes CodeBuild para crear proyectos de compilación. Para solucionar este problema, AWS CLI configúrelo con credenciales que pertenezcan a una de las siguientes IAM entidades:

  • Un usuario administrador en su AWS cuenta. Para obtener más información, consulte Creación del primer usuario y grupo Cuenta de AWS raíz en la Guía del usuario.

  • Un usuario de su AWS cuenta con las AWSCodeBuildAdminAccess políticas AmazonS3ReadOnlyAccess IAMFullAccess administradas y las correspondientes a ese usuario o a un IAM grupo al que pertenezca el usuario. Si no tiene ningún usuario o grupo en su AWS cuenta con estos permisos y no puede añadirlos a su usuario o grupo, póngase en contacto con el administrador de la AWS cuenta para obtener ayuda. Para obtener más información, consulte AWS políticas gestionadas (predefinidas) para AWS CodeBuild.

Paso 6: ejecutar la compilación

(Paso anterior: Paso 5: crear el proyecto de compilación)

En este paso, indica que se AWS CodeBuild ejecute la compilación con la configuración del proyecto de compilación.

Para ejecutar la compilación
  1. Usa el AWS CLI para ejecutar el start-build comando:

    aws codebuild start-build --project-name project-name

    Reemplazar project-name con el nombre del proyecto de compilación del paso anterior (por ejemplo,codebuild-demo-project).

  2. Si el comando se ejecuta correctamente, aparecerán datos similares a los siguientes en el resultado:

    { "build": { "buildComplete": false, "initiator": "user-name", "artifacts": { "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip" }, "projectName": "codebuild-demo-project", "timeoutInMinutes": 60, "buildStatus": "IN_PROGRESS", "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "currentPhase": "SUBMITTED", "startTime": 1472848787.882, "id": "codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE", "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:0cfbb6ec-3db9-4e8c-992b-1ab28EXAMPLE" } }
    • build representa información acerca de esta compilación.

      • buildComplete indica si la compilación se ha completado (true). De lo contrario, false.

      • initiator representa la entidad que inició la compilación.

      • artifacts representa información sobre la salida de la compilación, incluida su ubicación.

      • projectName representa el nombre del proyecto de compilación.

      • buildStatus representa el estado actual de la compilación cuando se ejecutó el comando start-build.

      • currentPhase representa la fase actual de la compilación cuando se ejecutó el comando start-build.

      • startTime representa la hora, en formato de hora Unix, en la que se inició el proceso de compilación.

      • id representa el ID de la compilación.

      • arnrepresenta el ARN de la construcción.

    Anote el valor de id. Lo necesitará en el siguiente paso.

Paso 7: ver información resumida sobre la compilación

(Paso anterior: Paso 6: ejecutar la compilación)

En este paso, verá información resumida sobre el estado de la compilación.

Para ver la información resumida de la compilación
  • Utilice el AWS CLI para ejecutar el batch-get-builds comando.

    aws codebuild batch-get-builds --ids id

    Reemplazar id con el id valor que aparecía en la salida del paso anterior.

    Si el comando se ejecuta correctamente, aparecen datos similares a los siguientes en el resultado.

    { "buildsNotFound": [], "builds": [ { "buildComplete": true, "phases": [ { "phaseStatus": "SUCCEEDED", "endTime": 1472848788.525, "phaseType": "SUBMITTED", "durationInSeconds": 0, "startTime": 1472848787.882 }, ... The full list of build phases has been omitted for brevity ... { "phaseType": "COMPLETED", "startTime": 1472848878.079 } ], "logs": { "groupName": "/aws/codebuild/codebuild-demo-project", "deepLink": "https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE", "streamName": "38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE" }, "artifacts": { "md5sum": "MD5-hash", "location": "arn:aws:s3:::codebuild-region-ID-account-ID-output-bucket/message-util.zip", "sha256sum": "SHA-256-hash" }, "projectName": "codebuild-demo-project", "timeoutInMinutes": 60, "initiator": "user-name", "buildStatus": "SUCCEEDED", "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/MessageUtil.zip" }, "currentPhase": "COMPLETED", "startTime": 1472848787.882, "endTime": 1472848878.079, "id": "codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE", "arn": "arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE" } ] }
    • buildsNotFoundrepresenta la compilación IDs de cualquier compilación en la que no haya información disponible. En este ejemplo, debería estar vacío.

    • builds representa información de cada compilación con información disponible. En este ejemplo, en el resultado aparece información sobre una única compilación.

      • phasesrepresenta el conjunto de fases de construcción que CodeBuild se ejecutan durante el proceso de creación. La información sobre cada fase de compilación se muestra por separado como startTime, endTime y durationInSeconds (cuándo se inició y terminó la fase de compilación, en formato de hora Unix, y cuánto duró, en segundos), así como phaseType como (SUBMITTED, PROVISIONING, DOWNLOAD_SOURCE, INSTALL, PRE_BUILD, BUILD, POST_BUILD, UPLOAD_ARTIFACTS, FINALIZING o COMPLETED) y phaseStatus (como SUCCEEDED, FAILED, FAULT, TIMED_OUT, IN_PROGRESS o STOPPED). La primera vez que ejecute el comando batch-get-builds, es posible que no haya muchas fases (o que no haya ninguna). Después de ejecuciones posteriores del comando batch-get-builds con el mismo ID de compilación, deberían aparecer más fases de compilación en el resultado.

      • logsrepresenta la información de Amazon CloudWatch Logs sobre los registros de la compilación.

      • md5sumMD5y sha256sum representan los códigos hash SHA -256 del artefacto de salida de la compilación. Aparecerán en el resultado solamente si el valor packaging del proyecto de compilación se establece en ZIP. (No ha establecido este valor en este tutorial). Puede utilizar estos valores hash junto con una herramienta de suma de comprobación para confirmar la integridad y autenticidad de los archivos.

        nota

        También puede utilizar la consola de Amazon S3 para ver estos valores hash. Seleccione la casilla situada junto al artefacto de salida de la compilación, elija Actions (Acciones) y luego elija Properties (Propiedades). En el panel Propiedades, expanda Metadatos y vea los valores de -content-md5 y x-amz-meta-codebuild-content-sha256. x-amz-meta-codebuild (En la consola Amazon S3, el ETagvalor del artefacto de salida de la compilación no debe interpretarse como el hash MD5 ni el hash SHA -256).

        Si usa el AWS SDKs para obtener estos hashes, los valores se denominan y. codebuild-content-md5 codebuild-content-sha256

      • endTime representa la hora, en formato de hora Unix, en la que terminó el proceso de compilación.

    nota

    Los metadatos de Amazon S3 tienen un nombre de CodeBuild encabezado x-amz-meta-codebuild-buildarn que contiene el nombre buildArn de la CodeBuild compilación que publica los artefactos en Amazon S3. Se añade buildArn para permitir el seguimiento de las notificaciones en la fuente y para hacer referencia a la compilación de donde procede el artefacto.

Paso 8: ver información detallada sobre la compilación

(Paso anterior: Paso 7: ver información resumida sobre la compilación)

En este paso, verá información detallada sobre sus CloudWatch registros de compilación.

nota

Para proteger la información confidencial, los CodeBuild registros ocultan lo siguiente:

Para ver información detallada sobre la compilación
  1. Utilice un navegador web para ir a la ubicación deepLink que aparecía en el resultado del paso anterior (por ejemplo, https://console.aws.amazon.com/cloudwatch/home?region=region-ID#logEvent:group=/aws/codebuild/codebuild-demo-project;stream=38ca1c4a-e9ca-4dbc-bef1-d52bfEXAMPLE).

  2. En el flujo de registro de CloudWatch registros, puede examinar los eventos del registro. De forma predeterminada, solo se muestra el último conjunto de eventos de log. Para ver eventos de log anteriores, desplácese hasta el principio de la lista.

  3. En este tutorial, la mayoría de los eventos del registro contienen información detallada sobre la CodeBuild descarga e instalación de los archivos de dependencias de compilación en su entorno de compilación, algo que probablemente no te importe. Puede usar el cuadro Filter events para reducir la información que se muestra. Por ejemplo, si escribe "[INFO]" en el cuadro Filter events (Filtrar eventos), solo se muestran los eventos que contienen [INFO]. Para obtener más información, consulte Sintaxis de filtros y patrones en la Guía del CloudWatch usuario de Amazon.

Estas partes de un flujo de registro de CloudWatch Logs pertenecen a este tutorial.

... [Container] 2016/04/15 17:49:42 Entering phase PRE_BUILD [Container] 2016/04/15 17:49:42 Running command echo Entering pre_build phase... [Container] 2016/04/15 17:49:42 Entering pre_build phase... [Container] 2016/04/15 17:49:42 Phase complete: PRE_BUILD Success: true [Container] 2016/04/15 17:49:42 Entering phase BUILD [Container] 2016/04/15 17:49:42 Running command echo Entering build phase... [Container] 2016/04/15 17:49:42 Entering build phase... [Container] 2016/04/15 17:49:42 Running command mvn install [Container] 2016/04/15 17:49:44 [INFO] Scanning for projects... [Container] 2016/04/15 17:49:44 [INFO] [Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:44 [INFO] Building Message Utility Java Sample App 1.0 [Container] 2016/04/15 17:49:44 [INFO] ------------------------------------------------------------------------ ... [Container] 2016/04/15 17:49:55 ------------------------------------------------------- [Container] 2016/04/15 17:49:55 T E S T S [Container] 2016/04/15 17:49:55 ------------------------------------------------------- [Container] 2016/04/15 17:49:55 Running TestMessageUtil [Container] 2016/04/15 17:49:55 Inside testSalutationMessage() [Container] 2016/04/15 17:49:55 Hi!Robert [Container] 2016/04/15 17:49:55 Inside testPrintMessage() [Container] 2016/04/15 17:49:55 Robert [Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 sec [Container] 2016/04/15 17:49:55 [Container] 2016/04/15 17:49:55 Results : [Container] 2016/04/15 17:49:55 [Container] 2016/04/15 17:49:55 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0 ... [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 [INFO] BUILD SUCCESS [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 [INFO] Total time: 11.845 s [Container] 2016/04/15 17:49:56 [INFO] Finished at: 2016-04-15T17:49:56+00:00 [Container] 2016/04/15 17:49:56 [INFO] Final Memory: 18M/216M [Container] 2016/04/15 17:49:56 [INFO] ------------------------------------------------------------------------ [Container] 2016/04/15 17:49:56 Phase complete: BUILD Success: true [Container] 2016/04/15 17:49:56 Entering phase POST_BUILD [Container] 2016/04/15 17:49:56 Running command echo Entering post_build phase... [Container] 2016/04/15 17:49:56 Entering post_build phase... [Container] 2016/04/15 17:49:56 Phase complete: POST_BUILD Success: true [Container] 2016/04/15 17:49:57 Preparing to copy artifacts [Container] 2016/04/15 17:49:57 Assembling file list [Container] 2016/04/15 17:49:57 Expanding target/messageUtil-1.0.jar [Container] 2016/04/15 17:49:57 Found target/messageUtil-1.0.jar [Container] 2016/04/15 17:49:57 Creating zip artifact

En este ejemplo, completó CodeBuild satisfactoriamente las fases previa, posterior y posterior a la compilación. Ha ejecutado las pruebas unitarias y ha compilado correctamente el archivo messageUtil-1.0.jar.

Paso 9: obtener el artefacto de salida de la compilación

(Paso anterior: Paso 8: ver información detallada sobre la compilación)

En este paso, obtendrá el messageUtil-1.0.jar archivo que se CodeBuild creó y se cargó en el depósito de salida.

Puede utilizar la CodeBuild consola o la consola Amazon S3 para completar este paso.

Para obtener el artefacto de salida de la compilación (AWS CodeBuild consola)
  1. Con la CodeBuild consola aún abierta y la página de detalles de construcción del paso anterior, selecciona la pestaña Detalles de la construcción y desplázate hacia abajo hasta la sección Artefactos.

    nota

    Si la página de detalles de la compilación no se muestra, en la barra de navegación, elija Historial de compilación y, a continuación, elija el enlace Ejecución de la compilación.

  2. El enlace a la carpeta Amazon S3 se encuentra en la Ubicación de carga de artefactos. Este enlace abre la carpeta de Amazon S3 donde se encuentra el archivo de artefactos de salida de compilación de messageUtil-1.0.jar.

Para obtener el artefacto de salida de la compilación (consola de Amazon S3)
  1. Abra la consola Amazon S3 en https://console.aws.amazon.com/s3/.

  2. Abra codebuild-region-ID-account-ID-output-bucket.

  3. Abra la carpeta codebuild-demo-project.

  4. Abra la carpeta target, donde se encuentra el archivo de artefactos de salida de compilación messageUtil-1.0.jar.

Paso 10: eliminar los buckets de S3

(Paso anterior: Paso 9: obtener el artefacto de salida de la compilación)

Para evitar que se sigan realizando cargos AWS en su cuenta, puede eliminar los depósitos de entrada y salida utilizados en este tutorial. Para obtener más instrucciones, consulte Eliminar o vaciar un bucket en la Guía del usuario de Amazon Simple Storage Service.

Si utilizas el IAM usuario o un IAM usuario administrador para eliminar estos depósitos, el usuario debe tener más permisos de acceso. Añada la siguiente declaración entre los marcadores (### BEGIN ADDING STATEMENT HERE ### y ### END ADDING STATEMENTS HERE ###) a una política de acceso existente para el usuario.

Las elipsis (...) de esta declaración se usan para abreviar. No elimine las instrucciones de la política de acceso existente. No escriba estos puntos suspensivos en la política.

{ "Version": "2012-10-17", "Id": "...", "Statement": [ ### BEGIN ADDING STATEMENT HERE ### { "Effect": "Allow", "Action": [ "s3:DeleteBucket", "s3:DeleteObject" ], "Resource": "*" } ### END ADDING STATEMENT HERE ### ] }

Encapsulación

En este tutorial, AWS CodeBuild solía crear un conjunto de archivos de clases de Java en un JAR archivo. A continuación, ha consultado los resultados de la compilación.

Ahora puede intentar usarlos CodeBuild en sus propios escenarios. Siga las instrucciones en Planificación de una compilación. Si piensa que aún no está preparado, tal vez desee intentar compilar algunos de los ejemplos. Para obtener más información, consulte Utilice muestras basadas en casos para CodeBuild.