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
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
Ejecución del ejemplo
Para ejecutar este ejemplo
-
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. -
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
-
Cree un archivo con este contenido. Asigne un nombre al archivo
buildspec.yml
y añádalo al directoriomy-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
-
Cree un archivo con este contenido. Asigne un nombre al archivo
appspec.yml
y añádalo al directoriomy-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
-
Cree un archivo ZIP que contenga la estructura de directorios y los archivos que contiene y
my-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 enmy-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 -
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
" } -
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).
-
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.
-
-
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.
-
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.
-
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.
-
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 denominadomy-app-1.0-SNAPSHOT.jar
.
Recursos relacionados
Para obtener información acerca de cómo empezar a trabajar con AWS CodeBuild, consulte Empezar a trabajar con AWS CodeBuild utilizando la consola.
Para obtener más información acerca de la solución de problemas CodeBuild de, consulteSolución de problemas de AWS CodeBuild.
Para obtener información sobre las cuotas en CodeBuild, consulteCuotas para AWS CodeBuild.