CodeDeploy muestra para 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.

CodeDeploy muestra para CodeBuild

Este ejemplo indica a AWS CodeBuild que use Maven para producir el resultado de la compilación como un único archivo JAR denominado my-app-1.0-SNAPSHOT.jar. A continuación, este ejemplo se utiliza CodeDeploy para implementar el archivo JAR en una instancia de Amazon Linux. También puede usarloAWS CodePipeline para automatizar el uso de CodeDeploy para implementar el archivo JAR en una instancia de Amazon Linux. Este ejemplo se basa en el tema Maven in 5 Minutes ("Maven en 5 minutos") del sitio web de Apache Maven.

importante

La ejecución de este ejemplo puede producir cargos en su cuenta de AWS. Estos incluyen los posibles cargos por CodeBuild y porAWS los recursos y acciones relacionados con Amazon S3AWS KMS, CloudWatch Logs y Amazon EC2. Para obtener más información, consulte CodeBuild precios, precios de Amazon S3, AWS Key Management Serviceprecios, CloudWatch precios de Amazon y precios de Amazon EC2.

Ejecución del ejemplo

Para ejecutar este ejemplo
  1. Descargue e instale Maven. Para obtener más información, consulte Downloading Apache Maven e Installing Apache Maven en el sitio web de Apache Maven.

  2. Cambie a un directorio vacío del equipo o instancia local y, a continuación, ejecute este comando Maven.

    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    Si el comando se ejecuta correctamente, se creará esta estructura de directorios y archivos.

    . └── my-app ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
  3. Cree un archivo con este contenido. Asigne un nombre al archivo buildspec.yml y añádalo al directorio my-app.

    version: 0.2 phases: install: runtime-versions: java: corretto8 build: commands: - echo Build started on `date` - mvn test post_build: commands: - echo Build completed on `date` - mvn package artifacts: files: - target/my-app-1.0-SNAPSHOT.jar - appspec.yml discard-paths: yes
  4. Cree un archivo con este contenido. Asigne un nombre al archivo appspec.yml y añádalo al directorio my-app.

    version: 0.0 os: linux files: - source: ./my-app-1.0-SNAPSHOT.jar destination: /tmp

    Cuando termine, la estructura de directorios y archivos debería ser similar a la siguiente.

    . └── my-app ├── buildspec.yml ├── appspec.yml ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
  5. Cree un archivo ZIP que contenga la estructura de directorios y los archivos que contiene ymy-app, a continuación, cárguelo en un tipo de repositorio de código fuente compatible conAWS CodeBuild y CodeDeploy, como un depósito de entrada de S3 GitHub o un repositorio de Bitbucket.

    importante

    Si quieres usarlo CodePipeline para implementar el artefacto de salida de compilación resultante, no puedes subir el código fuente a un repositorio de Bitbucket.

    No añada my-app al archivo ZIP, solo los directorios y archivos incluidos en my-app. El archivo ZIP debe incluir estos directorios y archivos:

    . └── CodeDeploySample.zip ├── buildspec.yml ├── appspec.yml ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
  6. Cree un proyecto de compilación siguiendo los pasos de Creación de un proyecto de compilación.

    Si usa la AWS CLI para crear el proyecto de compilación, es posible que el resultado con formato JSON del comando create-project tenga un aspecto similar al siguiente. (Sustituya los marcadores de posición por sus propios valores).

    { "name": "sample-codedeploy-project", "source": { "type": "S3", "location": "codebuild-region-ID-account-ID-input-bucket/CodeDeploySample.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID-account-ID-output-bucket", "packaging": "ZIP", "name": "CodeDeployOutputArtifact.zip" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:4.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
  7. Si planeas implementar el artefacto de salida de la compilación con CodeDeploy, sigue los pasos que se indican enEjecutar una compilación. De lo contrario, omita este paso. (Esto se debe a que, si planeas implementar el artefacto de salida de la compilación con CodePipeline, se CodePipeline usa CodeBuild para ejecutar la compilación automáticamente).

  8. Complete los pasos de configuración para su uso CodeDeploy, que incluyen:

    • Otorgue al usuario acceso a CodeDeploy y losAWS servicios y acciones CodeDeploy dependen de. Para obtener más información, consulte Aprovisionar un usuario en la Guía delAWS CodeDeploy usuario.

    • Cree o identifique una función de servicio CodeDeploy para poder identificar las instancias en las que implementa el artefacto de salida de la compilación. Para obtener más información, consulte Crear un rol de servicio para CodeDeploy en la Guía del usuario de AWS CodeDeploy.

    • Crea o identifica un perfil de instancia de IAM para que tus instancias puedan acceder al depósito o GitHub repositorio de entrada de S3 que contiene el artefacto de salida de la compilación. Para obtener más información, consulte Crear un perfil de instancia de IAM para sus instancias de Amazon EC2 en la Guía delAWS CodeDeploy usuario.

  9. Cree o identifique una instancia de Amazon Linux compatible con el CodeDeploy lugar donde se implementa el artefacto de salida de la compilación. Para obtener más información, consulte Trabajar con instancias de CodeDeploy en la Guía del usuario de AWS CodeDeploy.

  10. Cree o identifique una CodeDeploy aplicación y un grupo de implementación. Para obtener más información, consulte Creación de una aplicación con CodeDeploy en la Guía del usuario de AWS CodeDeploy.

  11. Implemente el artefacto de salida de la compilación en la instancia.

    Para realizar la implementación CodeDeploy, consulte Implementación de una revisión con CodeDeploy en la Guía delAWS CodeDeploy usuario.

    Para realizar la implementación CodePipeline, consulteUsar CodePipeline con CodeBuild.

  12. Para encontrar el artefacto de salida de la compilación una vez completada la implementación, inicie sesión en la instancia y busque en el directorio /tmp un archivo denominado my-app-1.0-SNAPSHOT.jar.

Recursos relacionados