Utilizzo della CLI EB con AWS CodeCommit - AWS Elastic Beanstalk

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à.

Utilizzo della CLI EB con AWS CodeCommit

Puoi utilizzare la CLI EB per distribuire la tua applicazione direttamente dal repository di AWS CodeCommit. Con CodeCommit puoi caricare unicamente le modifiche nel repository al momento della distribuzione, anziché caricare l'intero progetto. In questo modo, puoi risparmiare tempo e larghezza di banda se il progetto è di grandi dimensioni o se la connettività Internet è limitata. La CLI EB effettua il push dei commit locali e utilizza i commit per creare versioni dell'applicazione quando utilizzi eb appversion, eb create o eb deploy.

Per distribuire le modifiche, l'integrazione CodeCommit richiede dapprima il commit delle modifiche. Tuttavia, durante lo sviluppo o il debug, è possibile che tu non intenda effettuare il push di modifiche che non hai confermato. Puoi evitare il commit delle modifiche mediante lo staging delle stesse e utilizzando eb deploy --staged (che esegue una distribuzione standard). Oppure, puoi eseguire dapprima il commit delle modifiche su un ramo di sviluppo o test e quindi il merge nel ramo principale quando il codice è pronto. Con eb use, puoi configurare la CLI EB per distribuire in un ambiente dal ramo di sviluppo e in un altro ambiente dal ramo principale.

Nota

In alcune regioni CodeCommit non è disponibile. L'integrazione tra Elastic Beanstalk e CodeCommit non funziona in queste regioni.

Per informazioni sui servizi AWS offerti in ciascuna regione, consulta la Tabella delle regioni.

Prerequisiti

Per utilizzare CodeCommit con AWS Elastic Beanstalk devi disporre di un repository Git locale (uno già esistente o uno nuovo che crei) con almeno un commit, un'autorizzazione a utilizzare CodeCommit e un ambiente Elastic Beanstalk in una regione supportata da CodeCommit. L'ambiente e il repository devono essere nella stessa regione.

Inizializzazione del repository Git
  1. Esegui git init nella tua cartella di progetto.

    ~/my-app$ git init
  2. Esegui lo staging dei file di progetto con git add.

    ~/my-app$ git add .
  3. Esegui il commit delle modifiche con git commit.

    ~/my-app$ git commit -m "Elastic Beanstalk application"

Creazione di un repository CodeCommit con l'interfaccia a riga di comando EB

Per iniziare a utilizzare CodeCommit esegui eb init. Durante la configurazione del repository, l'interfaccia a riga di comando EB chiede di utilizzare CodeCommit per archiviare il codice e accelerare le distribuzioni. Anche se hai già configurato il progetto con eb init, puoi eseguirlo nuovamente per configurare CodeCommit.

Per creare un repository CodeCommit con l'interfaccia a riga di comando EB
  1. Esegui eb init nella tua cartella di progetto. Durante la configurazione, l'interfaccia a riga di comando EB chiede se vuoi utilizzare CodeCommit per archiviare il codice e accelerare le distribuzioni. Se hai già configurato il progetto con eb init, puoi eseguirlo di nuovo per configurare CodeCommit. Digita y al prompt per configurare CodeCommit.

    ~/my-app$ eb init Note: Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service. To learn more, see Docs: https://aws.amazon.com/codecommit/ Do you wish to continue with CodeCommit? (y/n)(default is n): y
  2. Seleziona Create new Repository (Crea nuovo repository).

    Select a repository 1) my-repo 2) [ Create new Repository ] (default is 2): 2
  3. Digita un nome di repository o premi Enter (Invio) per accettare il nome di default.

    Enter Repository Name (default is "codecommit-origin"): my-app Successfully created repository: my-app
  4. Scegli un ramo esistente per i commit, oppure utilizza l'interfaccia a riga di comando EB per creare un nuovo ramo.

    Enter Branch Name ***** Must have at least one commit to create a new branch with CodeCommit ***** (default is "mainline"): ENTER Successfully created branch: mainline

Distribuzione dal repository CodeCommit

Quando configuri CodeCommit con il repository dell'interfaccia a riga di comando EB, l'interfaccia utilizza i contenuti del repository per creare bundle di origine. Quando esegui eb deploy o eb create, l'interfaccia a riga di comando EB esegue il push di nuovi commit e utilizza la revisione HEAD del ramo per creare l'archivio distribuito alle istanze EC2 nel tuo ambiente.

Per utilizzare l'integrazione di CodeCommit con l'interfaccia a riga di comando EB
  1. Crea un nuovo ambiente con eb create.

    ~/my-app$ eb create my-app-env Starting environment deployment via CodeCommit --- Waiting for application versions to be pre-processed --- Finished processing application version app-ac1ea-161010_201918 Setting up default branch Environment details for: my-app-env Application name: my-app Region: us-east-2 Deployed Version: app-ac1ea-161010_201918 Environment ID: e-pm5mvvkfnd Platform: 64bit Amazon Linux 2016.03 v2.1.6 running Java 8 Tier: WebServer-Standard CNAME: UNKNOWN Updated: 2016-10-10 20:20:29.725000+00:00 Printing Status: INFO: createEnvironment is starting. ...

    L'interfaccia a riga di comando EB utilizza l'ultimo commit nel ramo monitorato per creare la versione dell'applicazione che viene distribuita nell'ambiente.

  2. Quando disponi di nuovi commit locali, utilizza eb deploy per eseguirne il push e distribuirli nell'ambiente.

    ~/my-app$ eb deploy Starting environment deployment via CodeCommit INFO: Environment update is starting. INFO: Deploying new version to instance(s). INFO: New application version was deployed to running EC2 instances. INFO: Environment update completed successfully.
  3. Per testare le modifiche prima di eseguire il commit, utilizza l'opzione --staged per distribuire le modifiche aggiunte all'area di gestione temporanea con git add.

    ~/my-app$ git add new-file ~/my-app$ eb deploy --staged

    Se utilizzi l'opzione --staged viene eseguita una distribuzione standard e CodeCommit viene ignorato.

Configurazione di ulteriori rami e ambienti

La configurazione di CodeCommit si applica a un unico ramo. Puoi utilizzare eb use e eb codesource per configurare ulteriori rami o modificare la configurazione del ramo corrente.

Per configurare l'integrazione di CodeCommit con l'interfaccia a riga di comando EB
  1. Per modificare il ramo remoto, utilizza l'opzione --source del comando eb use.

    ~/my-app$ eb use test-env --source my-app/test
  2. Per creare un nuovo ramo e un nuovo ambiente, estrai un nuovo ramo, eseguine il push in CodeCommit, crea l'ambiente e utilizza eb use per collegare il ramo locale, il ramo remoto e l'ambiente.

    ~/my-app$ git checkout -b production ~/my-app$ git push --set-upstream production ~/my-app$ eb create production-env ~/my-app$ eb use --source my-app/production production-env
  3. Per configurare CodeCommit in modo interattivo utilizza eb codesource codecommit.

    ~/my-app$ eb codesource codecommit Current CodeCommit setup: Repository: my-app Branch: test Do you wish to continue (y/n): y Select a repository 1) my-repo 2) my-app 3) [ Create new Repository ] (default is 2): 2 Select a branch 1) mainline 2) test 3) [ Create new Branch with local HEAD ] (default is 1): 1
  4. Per disabilitare l'integrazione di CodeCommit utilizza eb codesource local.

    ~/my-app$ eb codesource local Current CodeCommit setup: Repository: my-app Branch: mainline Default set to use local sources

Utilizzo di un repository CodeCommit esistente

Se hai già un repository CodeCommit e vuoi usarlo con Elastic Beanstalk, esegui eb init alla root del tuo repository Git locale.

Per utilizzare un repository CodeCommit esistente con l'interfaccia a riga di comando EB
  1. Clona il tuo repository CodeCommit.

    ~$ git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/my-app
  2. Estrai ed esegui il push di un ramo da utilizzare per il tuo ambiente Elastic Beanstalk.

    ~/my-app$ git checkout -b dev-env ~/my-app$ git push --set-upstream origin dev-env
  3. Esegui eb init. Scegli lo stesso nome di regione, repository e ramo che utilizzi attualmente.

    ~/my-app$ eb init Select a default region 1) us-east-1 : US East (N. Virginia) 2) us-west-1 : US West (N. California) 3) us-west-2 : US West (Oregon) 4) eu-west-1 : Europe (Ireland) 5) eu-central-1 : Europe (Frankfurt) 6) ap-south-1 : Asia Pacific (Mumbai) 7) ap-southeast-1 : Asia Pacific (Singapore) ... (default is 3): 1 ... Note: Elastic Beanstalk now supports AWS CodeCommit; a fully-managed source control service. To learn more, see Docs: https://aws.amazon.com/codecommit/ Do you wish to continue with CodeCommit? (y/n)(default is n): y Select a repository 1) my-app 2) [ Create new Repository ] (default is 1): 1 Select a branch 1) mainline 2) dev-env 3) [ Create new Branch with local HEAD ] (default is 2): 2

Per ulteriori informazioni sull'utilizzo di eb init, consulta Configurazione dell'interfaccia a riga di comando EB.