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 AWS Elastic Beanstalk per CodeBuild
Questo esempio utilizzaAWS CodeBuildcon Maven per produrre un singolo file WAR denominatoROOT.war
come risultato della build. In questo esempio viene distribuito il file WAR alle istanze in un ambiente AWS Elastic Beanstalk.
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
Creare il codice sorgente
In questa sezione, utilizzerai Maven per creare il codice sorgente. Successivamente, utilizzerai CodeBuild per creare un file WAR sulla base di questo codice sorgente.
-
Scaricare e installare Maven. Per 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=ROOT" "-DarchetypeArtifactId=maven-archetype-webapp" "-DinteractiveMode=false"
Se il comando è eseguito correttamente, vengono creati la struttura e i file della directory.
. └── ROOT ├── pom.xml └── src └── main ├── resources └── webapp ├── WEB-INF │ └── web.xml └── index.jsp
-
Creare una sottodirectory denominata
.ebextensions
nella directoryROOT
. Nella sottodirectory.ebextensions
, creare un file denominatofix-path.config
con il seguente contenuto.container_commands: fix_path: command: "unzip ROOT.war 2>&1 > /var/log/my_last_deploy.log"
Dopo aver eseguito Maven, continuare con uno dei seguenti scenari:
Scenario A: EseguiCodeBuildmanualmente e distribuisci manualmente su Elastic Beanstalk
In questo scenario, creerai e caricherai il codice sorgente. Quindi usi ilAWS CodeBuildeAWS Elastic Beanstalkconsole per creare il codice sorgente, creare un'applicazione e un ambiente Elastic Beanstalk e distribuire l'output della build nell'ambiente.
Fase a1: aggiunta di file al codice sorgente
In questo passaggio, aggiungi un file di configurazione di Elastic Beanstalk e un file buildspec al codice inCreare il codice sorgente. Quindi carichi il codice sorgente in un bucket di input S3 o in unCodeCommit,GitHub, o repository Bitbucket.
-
Creare un file denominato
buildspec.yml
con i seguenti contenuti. Archivia il file nella directoryROOT
.version: 0.2 phases: install: runtime-versions: java: corretto11 post_build: commands: - mvn package - mv target/ROOT.war ROOT.war artifacts: files: - ROOT.war - .ebextensions/**/*
-
La struttura del file dovrebbe avere il seguente aspetto.
. └── ROOT ├── .ebextensions │ └── fix-path.config ├── src │ └── main │ ├── resources │ └── webapp │ ├── WEB-INF │ │ └── web.xml │ └── index.jsp ├── buildspec.yml └── pom.xml
-
Carica il contenuto del
ROOT
directory in un bucket di input S3 o inCodeCommit,GitHub, o repository Bitbucket.Importante
Non caricare
ROOT
, solo le cartelle e i file contenutiROOT
.Se si sta utilizzando un bucket di input S3, si deve prevedere la presenza di versioni multiple. Assicurati di creare un file ZIP che contenga la struttura e i file della directory, quindi caricalo nel bucket di input. Non aggiungere
ROOT
al file ZIP, ma solo le directory e i file all'interno diROOT
. Per ulteriori informazioni, consulta l'aegomento relativo a come configurare la funzione versioni multiple in un bucket nella Guida per gli sviluppatori di Amazon S3.
Fase a2: creazione del progetto di compilazione ed esecuzione della compilazione
In questa fase, utilizzerai la console AWS CodeBuild per creare un progetto di compilazione ed eseguire la compilazione.
-
Creare o scegliere un bucket di output S3 per memorizzare l'output di compilazione. Se si sta archiviando il codice sorgente in un bucket di input S3, il bucket di output deve trovarsi nella stessa regione AWS del bucket di input.
-
Apri ilAWS CodeBuildconsole all'indirizzohttps://console.aws.amazon.com/codesuite/codebuild/home
. Usa ilAWSselettore di regione per scegliere unAWSRegione in cuiCodeBuildè supportato. Questa deve essere la stessa regione in cui è memorizzato il bucket di output S3.
-
Creare un progetto di compilazione ed eseguire una compilazione. Per ulteriori informazioni, consultare Creare un progetto di compilazione (console) e Esecuzione di una compilazione (console). Lasciare tutte le impostazioni sui valori predefiniti, ad eccezione delle seguenti.
-
In Environment (Ambiente):
-
Per Environment image (Immagine ambiente), scegliere Managed image (Immagine gestita).
-
Per Operating system (Sistema operativo), scegliere Amazon Linux 2.
-
In Runtime(s) (Runtime), seleziona Standard.
-
PerImmagine, scegliaws/codebuild/amazonlinux2-x86_64-standard:4.0.
-
-
Per Artifacts (Artefatti):
-
Per Type (Tipo), scegli Amazon S3.
-
In Bucket name (Nome bucket), immettere il nome di un bucket S3.
-
Per Name (Nome), digitare un nome del file di output della compilazione facile da ricordare. Includere l'estensione
.zip
. -
Per Artifacts packaging (Pacchetti di artefatti), selezionare Zip.
-
-
Fase a3: creazione dell'ambiente e dell'applicazione e distribuzione
In questa fase, utilizzerai la console AWS Elastic Beanstalk per creare un'applicazione e un ambiente. Durante la creazione dell'ambiente, distribuire nell'ambiente l'output della compilazione ottenuto nella fase precedente.
-
Aprire ilAWS Elastic Beanstalkconsole all'indirizzohttps://console.aws.amazon.com/elasticbeanstalk
. Usa ilAWSSelettore di regione per scegliere ilAWSRegione in cui è archiviato il bucket di uscita S3.
-
Crea un'applicazione Elastic Beanstalk. Per ulteriori informazioni, consulta Gestione e configurazione delle applicazioni AWS Elastic Beanstalk nella Guida per gli sviluppatori di AWS Elastic Beanstalk.
-
Crea un ambiente Elastic Beanstalk per questa applicazione. Per ulteriori informazioni, consulta Procedura guidata per la creazione del nuovo ambiente nella Guida per gli sviluppatori di AWS Elastic Beanstalk. Lasciare tutte le impostazioni sui valori predefiniti, ad eccezione delle seguenti.
-
In Platform (Piattaforma), selezionare Tomcat.
-
Per Application code (Codice applicazione), selezionare Upload your code (Carica il tuo codice), quindi Upload (Carica). Per Source code origin (Origine codice sorgente), selezionare Public S3 URL (URL S3 pubblico), quindi inserire l'URL completo che indirizza al file ZIP dell'output della compilazione nel bucket di output. Scegliere Upload (Carica).
-
-
Dopo che Elastic Beanstalk ha distribuito l'output della build nell'ambiente, puoi vedere i risultati in un browser web. Visitare l'URL dell'ambiente per l'istanza (ad esempio,
http://
). Sul browser Web dovrebbe essere mostrato il testomy-environment-name
.random-string
.region-ID
.elasticbeanstalk.comHello World!
.
Scenario B: utilizzoCodePipelinecorrereCodeBuilde distribuiscilo su Elastic Beanstalk
In questo scenario, completerai i passaggi per preparare e caricare il codice sorgente. Crei un progetto di compilazione conCodeBuilde un'applicazione e un ambiente Elastic Beanstalk conAWS Elastic Beanstalkconsole. Utilizzerai quindi la console AWS CodePipeline per creare una pipeline. Una volta creata la pipeline, CodePipeline compilerà il codice sorgente e distribuirà l'output della compilazione nell'ambiente.
Fase b1: aggiunta di un file di specifiche di compilazione al codice sorgente
In questa fase, creerai e aggiungerai un file di specifiche di compilazione al codice creato in Creare il codice sorgente. Quindi carichi il codice sorgente in un bucket di input S3 o in unCodeCommit,GitHub, o repository Bitbucket.
-
Creare un file denominato
buildspec.yml
con i seguenti contenuti. Archivia il file nella directoryROOT
.version: 0.2 phases: install: runtime-versions: java: corretto11 post_build: commands: - mvn package - mv target/ROOT.war ROOT.war artifacts: files: - ROOT.war - .ebextensions/**/*
-
La struttura del file dovrebbe avere il seguente aspetto.
. └── ROOT ├── .ebextensions │ └── fix-path.config ├── src │ └── main │ ├── resources │ └── webapp │ ├── WEB-INF │ │ └── web.xml │ └── index.jsp ├── buildpsec.yml └── pom.xml
-
Carica il contenuto del
ROOT
directory in un bucket di input S3 o inCodeCommit,GitHub, o repository Bitbucket.Importante
Non caricare
ROOT
, solo le cartelle e i file contenutiROOT
.Se si sta utilizzando un bucket di input S3, si deve prevedere la presenza di versioni multiple. Assicurati di creare un file ZIP che contenga la struttura e i file della directory, quindi caricalo nel bucket di input. Non aggiungere
ROOT
al file ZIP, ma solo le directory e i file all'interno diROOT
. Per ulteriori informazioni, consulta l'aegomento relativo a come configurare la funzione versioni multiple in un bucket nella Guida per gli sviluppatori di Amazon S3.
Fase b2: creazione di un progetto di compilazione
In questa fase, creerai un progetto di compilazione AWS CodeBuild da usare con la tua pipeline.
Apri ilAWS CodeBuildconsole all'indirizzohttps://console.aws.amazon.com/codesuite/codebuild/home
. -
Creare un progetto di compilazione. Per ulteriori informazioni, consultare Creare un progetto di compilazione (console) e Esecuzione di una compilazione (console). Lasciare tutte le impostazioni sui valori predefiniti, ad eccezione delle seguenti.
-
In Environment (Ambiente):
-
Per Environment image (Immagine ambiente), scegliere Managed image (Immagine gestita).
-
Per Operating system (Sistema operativo), scegliere Amazon Linux 2.
-
In Runtime(s) (Runtime), seleziona Standard.
-
PerImmagine, scegliaws/codebuild/amazonlinux2-x86_64-standard:4.0.
-
-
Per Artifacts (Artefatti):
-
Per Type (Tipo), scegli Amazon S3.
-
In Bucket name (Nome bucket), immettere il nome di un bucket S3.
-
Per Name (Nome), digitare un nome del file di output della compilazione facile da ricordare. Includere l'estensione
.zip
. -
Per Artifacts packaging (Pacchetti di artefatti), selezionare Zip.
-
-
Fase b3: Creare un'applicazione e un ambiente Elastic Beanstalk
In questo passaggio, crei un'applicazione e un ambiente Elastic Beanstalk da utilizzare conCodePipeline.
Apri la console Elastic Beanstalk all'indirizzohttps://console.aws.amazon.com/elasticbeanstalk/
. Utilizzare la console AWS Elastic Beanstalk per creare un'applicazione. Per ulteriori informazioni, consulta Gestione e configurazione delle applicazioni AWS Elastic Beanstalk nella Guida per gli sviluppatori di AWS Elastic Beanstalk.
Utilizzare la console AWS Elastic Beanstalk per creare un ambiente. Per ulteriori informazioni, consulta Procedura guidata per la creazione del nuovo ambiente nella Guida per gli sviluppatori di AWS Elastic Beanstalk. Lasciare tutte le impostazioni sui valori predefiniti, ad eccezione di Platform (Piattaforma). In Platform (Piattaforma), selezionare Tomcat.
Fase b4: creazione della pipeline e distribuzione
In questa fase, utilizzerai la console AWS CodePipeline per creare una pipeline. Dopo aver creato ed eseguito la pipeline,CodePipelineutilizzaCodeBuildper creare il codice sorgente. CodePipelineutilizza quindi Elastic Beanstalk per distribuire l'output della build nell'ambiente.
-
Crea o identifica un ruolo di servizio cheCodePipeline,CodeBuilde Elastic Beanstalk può utilizzare per accedere alle risorse per tuo conto. Per ulteriori informazioni, consulta Prerequisiti.
-
Aprire ilCodePipelineconsole all'indirizzohttps://console.aws.amazon.com/codesuite/codepipeline/home
. Usa ilAWSSelettore di regione per scegliere unAWSRegione in cuiCodeBuildè supportato. Se si sta archiviando il codice sorgente in un bucket di input S3, il bucket di output deve trovarsi nella stessa regione AWS del bucket di input.
-
Creare una pipeline. Per informazioni, consulta Creazione di una pipeline che utilizza CodeBuild (console CodePipeline). Lasciare tutte le impostazioni sui valori predefiniti, ad eccezione delle seguenti.
-
In Step 3: Add build stage (Fase 3: aggiungere fase di compilazione), per Build provider (Provider compilazione), selezionare AWS CodeBuild. Per Project name (Nome progetto), selezionare il progetto di compilazione appena creato.
-
In Add deploy stage (Aggiungi fase di distribuzione), per Deploy provider (Provider distribuzione), scegliere AWS Elastic Beanstalk.
-
PerNome dell'applicazione, scegli l'applicazione Elastic Beanstalk che hai appena creato.
-
Per Environment name (Nome ambiente), selezionare l'ambiente appena creato.
-
-
-
Dopo che la pipeline è stata eseguita correttamente, è possibile visualizzare i risultati in un browser Web. Visitare l'URL dell'ambiente per l'istanza (ad esempio,
http://
). Sul browser Web dovrebbe essere mostrato il testomy-environment-name
.random-string
.region-ID
.elasticbeanstalk.comHello World!
.
Ora, ogni volta che apporti modifiche al codice sorgente e carichi tali modifiche nel bucket di input S3 originale o nelCodeCommit,GitHub, o repository Bitbucket,CodePipelinerileva la modifica ed esegue nuovamente la pipeline. Ciò causaCodeBuildper ricostruire il codice e quindi fare in modo che Elastic Beanstalk distribuisca l'output ricostruito nell'ambiente.
Scenario C: utilizza l'interfaccia della riga di comando di Elastic Beanstalk per l'esecuzioneAWS CodeBuilde distribuisci in un ambiente Elastic Beanstalk
In questo scenario, completerai i passaggi per preparare e caricare il codice sorgente. Quindi esegui la CLI di Elastic Beanstalk per creare un'applicazione e un ambiente Elastic Beanstalk, usaCodeBuildper creare il codice sorgente e quindi distribuire l'output di compilazione nell'ambiente. Per ulteriori informazioni, vedereUtilizzo dell'interfaccia a riga di comando EB conCodeBuildnelAWS Elastic BeanstalkGuida per gli sviluppatori.
Fase c1: aggiunta di file al codice sorgente
In questo passaggio, aggiungi un file di configurazione di Elastic Beanstalk e un file buildspec al codice creato inCreare il codice sorgente. Inoltre, creerai o identificherai un ruolo del servizio per il file di specifiche di compilazione.
-
Crea o identifica un ruolo di servizio che Elastic Beanstalk e la CLI possono utilizzare per tuo conto. Per informazioni, consulta Crea un ruolo CodeBuild di servizio.
-
Creare un file denominato
buildspec.yml
con i seguenti contenuti. Archivia il file nella directoryROOT
.version: 0.2 phases: install: runtime-versions: java: corretto11 post_build: commands: - mvn package - mv target/ROOT.war ROOT.war artifacts: files: - ROOT.war - .ebextensions/**/* eb_codebuild_settings: CodeBuildServiceRole:
my-service-role-name
ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Timeout: 60Nel codice precedente, sostituisci
my-service-role-name
con il nome del ruolo di servizio creato o identificato in precedenza. -
La struttura del file dovrebbe avere il seguente aspetto.
. └── ROOT ├── .ebextensions │ └── fix-path.config ├── src │ └── main │ ├── resources │ └── webapp │ ├── WEB-INF │ │ └── web.xml │ └── index.jsp ├── buildpsec.yml └── pom.xml
Fase c2: installazione ed esecuzione dell'interfaccia a riga di comando EB
-
Se non è stato già fatto, installare e configurare l'interfaccia a riga di comando EB sullo stesso computer o istanza in cui è stato creato il codice sorgente. Per informazioni, vedereInstalla l'interfaccia a riga di comando di Elastic Beanstalk (EB CLI)eConfigurare l'interfaccia a riga di comando EBnelAWS Elastic BeanstalkGuida per gli sviluppatori.
-
Dalla riga di comando o dal terminale, eseguire il comando cd o similare per passare alla directory
. Eseguire il comando eb init per configurare l'interfaccia a riga di comando EB.(root directory name)
/ROOTeb init
Quando richiesto:
-
Scegli unAWSRegione in cuiAWS CodeBuildè supportato e in cui desideri creare l'applicazione e l'ambiente Elastic Beanstalk.
-
Crea un'applicazione Elastic Beanstalk e inserisci un nome per l'applicazione.
-
Selezionare la piattaforma
Tomcat
. -
Scegliere la versione
Tomcat 8 Java 8
. -
Scegliere se si desidera usare SSH per impostare l'accesso alle istanze dell'ambiente.
-
-
Dalla stessa directory, eseguieb createcomando per creare un ambiente Elastic Beanstalk.
eb create
Quando richiesto:
-
Inserire il nome per il nuovo ambiente oppure accettare il nome suggerito.
-
Digitare il prefisso DNS CNAME per l'ambiente oppure accettare il valore suggerito.
-
Per questo esempio, accettare il tipo Classic Load Balancer.
-
-
Una volta eseguito il comando eb create, l'interfaccia a riga di comando EB esegue le operazioni riportate di seguito:
-
Crea un file ZIP dal codice sorgente e lo carica in un bucket S3 nel tuo account.
-
Crea un'applicazione Elastic Beanstalk e una versione dell'applicazione.
-
Crea un progetto CodeBuild.
-
Esegue una compilazione in base al nuovo progetto.
-
Elimina il progetto dopo aver completato la compilazione.
-
Crea un ambiente Elastic Beanstalk.
-
Distribuisce l'output di compilazione nell'ambiente.
-
-
Dopo che l'interfaccia a riga di comando EB ha distribuito l'output di compilazione nell'ambiente, è possibile visualizzare i risultati in un browser Web. Visitare l'URL dell'ambiente per l'istanza (ad esempio,
http://
). Sul browser Web dovrebbe essere mostrato il testomy-environment-name
.random-string
.region-ID
.elasticbeanstalk.comHello World!
.
Se si desidera, è possibile modificare il codice sorgente e quindi eseguire il comando eb deploy dalla stessa directory. L'interfaccia a riga di comando EB esegue la stessa procedura del comando eb create, ma distribuisce l'output di compilazione nell'ambiente esistente invece di creare un nuovo ambiente.
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.