Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esempio di CodeDeploy per CodeBuild
In questo esempio AWS CodeBuild viene istruito a utilizzare Maven per produrre come output di compilazione un singolo file JAR denominato my-app-1.0-SNAPSHOT.jar
. Questo esempio utilizza quindiCodeDeployper distribuire il file JAR su un'istanza Amazon Linux. Puoi anche usareAWS CodePipelineper automatizzare l'uso diCodeDeployper distribuire il file JAR su un'istanza Amazon Linux. Questo esempio è basato sull'argomento relativo a come utilizzare Maven in 5 minuti
Importante
L'esecuzione di questo esempio potrebbe comportare l'addebito di costi sul tuo account AWS. Questi includono eventuali addebiti perCodeBuilde perAWSrisorse e azioni relative ad Amazon S3,AWS KMS,CloudWatchRegistri e Amazon EC2. Per ulteriori informazioni, consultaCodeBuildprezzi
Esecuzione dell'esempio
Per eseguire questo esempio
-
Scaricare e installare Maven. Per maggiori informazioni, consultare le pagine del sito Web di Apache Maven relative al download di Apache Maven
e all'installazione di Apache Maven . -
Passare a una directory vuota sull'istanza o sul computer locale, quindi eseguire il comando Maven.
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Se il comando è eseguito correttamente, vengono creati la struttura e i file della directory.
. └── my-app ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
-
Creare un file con il seguente contenuto: Nominare il file
buildspec.yml
, quindi aggiungerlo alla directorymy-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
-
Creare un file con il seguente contenuto: Nominare il file
appspec.yml
, quindi aggiungerlo alla directorymy-app
.version: 0.0 os: linux files: - source: ./my-app-1.0-SNAPSHOT.jar destination: /tmp
Una volta terminato il procedimento, la struttura e il file della directory dovrebbero avere questo aspetto.
. └── my-app ├── buildspec.yml ├── appspec.yml ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java
-
Crea un file ZIP che contenga la struttura delle cartelle e i file all'interno di
my-app
, quindi carica il file ZIP in un tipo di repository di codice sorgente supportato daAWS CodeBuildeCodeDeploy, ad esempio un bucket di input S3 o unGitHubo repository Bitbucket.Importante
Se si sceglie di utilizzare CodePipeline per distribuire l'artefatto di output della compilazione generato, non è possibile caricare il codice sorgente su un repository Bitbucket.
Non aggiungere
my-app
al file ZIP, solo le cartelle e i file contenuti in essomy-app
. Il file ZIP deve contenere le indicazioni e i file riportati di seguito:. └──
CodeDeploySample.zip
├── buildspec.yml ├── appspec.yml ├── pom.xml └── src ├── main │ └── java │ └── com │ └── mycompany │ └── app │ └── App.java └── test └── java └── com └── mycompany └── app └── AppTest.java -
Creare un nuovo progetto di compilazione seguendo i passaggi su Creazione di un progetto di compilazione.
Se si utilizza l'interfaccia AWS CLI per creare il progetto di compilazione, l'input in formato JSON al comando
create-project
potrebbe risultare simile a questo. (Sostituire i segnaposto con i propri valori).{ "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:5.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
" } -
Se si ha intenzione di distribuire l'artefatto di output della compilazione con CodeDeploy, seguire i passaggi in Esecuzione di una compilazione. In caso contrario, puoi ignorare questo passaggio. Questo perché se si ha intenzione di distribuire l'artefatto di output della compilazione con CodePipeline, CodePipeline utilizzerà CodeBuild per eseguire la compilazione automaticamente.
-
Completare i passaggi della configurazione per utilizzare CodeDeploy, quali:
-
Concedere all'utente l'accesso aCodeDeploye ilAWSservizi e azioniCodeDeploydipende da. Per ulteriori informazioni, vedereFornire un utentenelAWS CodeDeployGuida per l'utente.
-
Creare o identificare un ruolo del servizio per consentire a CodeDeploy di identificare le istanze in cui distribuisce gli artefatti di output della compilazione. Per ulteriori informazioni, consulta la sezione relativa alla creazione di un ruolo del servizio per CodeDeploy nella Guida per l'utente AWS CodeDeploy.
-
Crea o identifica un profilo di istanza IAM per consentire alle istanze di accedere al bucket di input S3 oppureGitHubrepository che contiene l'artefatto di output della build. Per ulteriori informazioni, vedereCreazione di un profilo di istanza IAM per le tue istanze Amazon EC2nelAWS CodeDeployGuida per l'utente.
-
-
Crea o identifica un'istanza Amazon Linux compatibile conCodeDeploydove viene distribuito l'artefatto di output della build. Per ulteriori informazioni, consulta la sezione relativa all'utilizzo delle istanze per CodeDeploy nella Guida per l'utente AWS CodeDeploy.
-
Creare o identificare un'applicazione e un gruppo di distribuzione CodeDeploy. Per ulteriori informazioni, consulta la sezione relativa alla creazione di un'applicazione con CodeDeploy nella Guida per l'utente AWS CodeDeploy.
-
Distribuire l'artefatto di output della compilazione nell'istanza.
Per distribuirlo con CodeDeploy, consulta la sezione relativa alla distribuzione di una revisione con CodeDeploy nella Guida per l'utente AWS CodeDeploy.
Per distribuirlo con CodePipeline, consultare Utilizzare CodePipeline con CodeBuild.
-
Per trovare l'artefatto di output della compilazione una volta completata la distribuzione, accedere all'istanza e cercare nella directory
/tmp
il file denominatomy-app-1.0-SNAPSHOT.jar
.
Risorse correlate
Per ulteriori informazioni sulle nozioni di base su AWS CodeBuild, consulta Nozioni di base su AWS CodeBuild utilizzando la console.
Per informazioni sulla risoluzione dei problemi in CodeBuild, consulta Risoluzione dei problemi AWS CodeBuild.
Per informazioni sulle quote in CodeBuild, consulta Quote per AWS CodeBuild.