Fase 4: Implementa la tua applicazione Hello World - AWS CodeDeploy

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

Fase 4: Implementa la tua applicazione Hello World

Ora distribuisci la revisione di esempio dell'applicazione Hello World che hai caricato su Amazon S3. Utilizzi la console AWS CLI o la CodeDeploy console per distribuire la revisione e monitorare l'avanzamento della distribuzione. Una volta distribuita la revisione dell'applicazione, si possono controllare i risultati.

Implementa la revisione dell'applicazione con CodeDeploy

È possibile distribuire l'applicazione utilizzando la CLI o la console.

Per distribuire la revisione dell'applicazione () CLI

  1. La distribuzione richiede innanzitutto un gruppo di distribuzione. Tuttavia, prima di creare il gruppo di distribuzione, è necessario un ruolo di servizio. ARN Un ruolo di servizio è un IAM ruolo che concede l'autorizzazione di servizio ad agire per conto dell'utente. In questo caso, il ruolo di servizio consente di CodeDeploy accedere alle tue EC2 istanze Amazon per espandere (leggere) i relativi tag di EC2 istanza Amazon.

    Per creare un ruolo del servizio occorre avere già eseguito le istruzioni in Creare un ruolo di servizio (CLI) . Per conoscere il ruolo ARN del servizio, consultaOttieni il ruolo di servizio ARN (CLI) .

  2. Ora che hai il comandoARN, chiama il create-deployment-group comando per creare un gruppo di distribuzione denominatoHelloWorld_DepGroup, associato all'applicazione denominataHelloWorld_App, utilizzando il tag di EC2 istanza Amazon denominato CodeDeployDemo e la configurazione di distribuzione denominataCodeDeployDefault.OneAtATime, con il ruolo di servizioARN:

    aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-role-arn serviceRoleARN
    Nota

    Il create-deployment-groupcomando fornisce supporto per la creazione di trigger che comportano l'invio di SNS notifiche Amazon agli abbonati dell'argomento su eventi specifici nelle distribuzioni e nelle istanze. Il comando supporta anche opzioni per il rollback automatico delle distribuzioni e l'impostazione di allarmi per interrompere le distribuzioni quando vengono raggiunte le soglie di monitoraggio negli allarmi Amazon. CloudWatch I comandi per queste azioni non sono inclusi in questo tutorial.

  3. Prima di creare una distribuzione, l' CodeDeploy agente deve essere installato sulle istanze del gruppo di distribuzione. È possibile installare l'agente dalla riga di comando con AWS Systems Manager tramite il seguente comando:

    aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo --parameters action=Install,name=AWSCodeDeployAgent --schedule-expression "cron(0 2 ? * SUN *)"

    Questo comando crea un'associazione in Systems Manager State Manager che installerà l' CodeDeploy agente e quindi tenterà di aggiornarlo alle 2:00 ogni domenica mattina. Per ulteriori informazioni sull' CodeDeploy agente, vedere Lavorare con l' CodeDeploy agente. Per ulteriori informazioni su Systems Manager, vedere What is AWS Systems Manager.

  4. Chiamare ora il comando create-deployment per creare una distribuzione associata all'applicazione denominata HelloWorld_App, la configurazione della distribuzione denominata CodeDeployDefault.OneAtATime e il gruppo di distribuzione denominato HelloWorld_DepGroup utilizzando la revisione dell'applicazione denominata HelloWorld_App.zip nel bucket denominato amzn-s3-demo-bucket:

    aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=HelloWorld_App.zip

Per distribuire la revisione dell'applicazione (console)

  1. Prima di utilizzare la CodeDeploy console per distribuire la revisione dell'applicazione, è necessario un ruolo di servizio. ARN Un ruolo di servizio è un IAM ruolo che concede al servizio l'autorizzazione ad agire per conto dell'utente. In questo caso, il ruolo di servizio consente di CodeDeploy accedere alle tue EC2 istanze Amazon per espandere (leggere) i relativi tag di EC2 istanza Amazon.

    Per creare un ruolo del servizio occorre avere già eseguito le istruzioni in Crea un ruolo di servizio (console) . Per conoscere il ruolo ARN del servizio, consultaOttieni il ruolo di servizio ARN (console) .

  2. Ora che hai ilARN, puoi usare la CodeDeploy console per distribuire la revisione dell'applicazione.

    Accedi AWS Management Console e apri la CodeDeploy console all'indirizzo https://console.aws.amazon.com /codedeploy.

    Nota

    Accedi con lo stesso utente che hai configurato. Guida introduttiva con CodeDeploy

  3. Nel riquadro di navigazione, espandi Distribuisci, quindi scegli Applicazioni.

  4. Scegli HelloWorld_App.

  5. Nella scheda Deployment groups (Gruppi di distribuzione), scegliere Create deployment group (Crea gruppo di distribuzione).

  6. In Deployment group name (Nome del gruppo di distribuzione), immettere HelloWorld_DepGroup.

  7. In Service Role (Ruolo del servizio), scegliere il nome del ruolo del servizio.

  8. In Deployment type (Tipo di distribuzione), scegliere In-place (Locale).

  9. In Configurazione dell'ambiente, seleziona EC2le istanze Amazon.

  10. Nella configurazione dell'agente con AWS Systems Manager, mantieni le impostazioni predefinite.

  11. In Key (Chiave), immettere Name.

  12. In Valore, immetti CodeDeployDemo.

  13. In Configurazione di distribuzione, scegli. CodeDeployDefault OneAtATime.

  14. In Load Balancer (Sistema di bilanciamento del carico), deselezionare Enable load balancing (Abilita il bilanciamento del carico).

  15. Scegliere Create deployment group (Crea gruppo di distribuzione).

  16. Scegli Create deployment (Crea distribuzione).

  17. Nel gruppo Deployment, scegli HelloWorld_ DepGroup

  18. In Tipo di revisione, scegli La mia applicazione è archiviata in Amazon S3, quindi in Posizione di revisione, inserisci la posizione della revisione dell'applicazione Hello World di esempio che hai precedentemente caricato su Amazon S3. Per ottenere la posizione:

    1. Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

    2. Nell'elenco dei bucket, scegli amzn-s3-demo-bucket (o il nome del bucket in cui hai caricato la revisione dell'applicazione).

    3. Nell'elenco degli HelloWorldoggetti, scegliete _App.zip.

    4. Nella scheda Panoramica, scegliere Copia percorso.

    5. Tornate alla CodeDeploy console e, in Posizione di revisione, incollate il valore del campo Link.

  19. In Tipo file di revisione, selezionare .zip.

  20. (Facoltativo) Inserire un commento in Deployment description (Descrizione distribuzione).

  21. Scegli Create deployment (Crea distribuzione). Nella pagina Deployments (Distribuzioni) vengono visualizzate le informazioni relative alla nuova distribuzione creata.

Monitora e risolvi i problemi della distribuzione

Usa la console AWS CLI o la console per monitorare e risolvere i problemi della distribuzione.

Per monitorare e risolvere i problemi della distribuzione () CLI

  1. Ottenere l'ID della distribuzione chiamando il comando list-deployments rispetto all'applicazione denominata HelloWorld_App e il gruppo di distribuzione denominato HelloWorld_DepGroup:

    aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
  2. Chiamare il comando get-deployment con l'ID di distribuzione:

    aws deploy get-deployment --deployment-id deploymentID --query "deploymentInfo.status" --output text
  3. Il comando restituisce lo stato complessivo della distribuzione. In caso di esito positivo, il valore è Succeeded.

    Se lo stato generale èFailed, puoi chiamare comandi come list-deployment-instancese get-deployment-instanceper risolvere i problemi. Per ulteriori opzioni di risoluzione dei problemi, consulta Analisi dei file di log per individuare gli errori di distribuzione nelle istanze.

Per monitorare e risolvere problemi relativi alla distribuzione (console)

Nella pagina Distribuzioni della CodeDeploy console, puoi monitorare lo stato della distribuzione nella colonna Stato.

Per ottenere ulteriori informazioni sulla distribuzione, in particolare se il valore della colonna Status (Stato) è diverso da Succeeded (Riuscito):

  1. Nella tabella Deployments (Distribuzioni), scegliere il proprio ID di distribuzione. In caso di esito negativo di una distribuzione, nella pagina dei dettagli delle distribuzione viene visualizzato un messaggio che descrive la causa dell'errore.

  2. . Vengono visualizzate ulteriori informazioni sulle istanze della distribuzione. Dopo un errore di distribuzione, potresti essere in grado di determinare su quali EC2 istanze Amazon e in quale fase l'implementazione non è riuscita.

  3. Se si desidera migliorare la procedura di risoluzione dei problemi, è possibile utilizzare una tecnica come View Instance Details. Puoi anche analizzare i file di log di distribuzione su un'EC2istanza Amazon. Per ulteriori informazioni, consulta Analisi dei file di log per individuare gli errori di distribuzione nelle istanze.

Verifica la tua implementazione

Se la distribuzione ha esito positivo, verifica il funzionamento dell'installazione. Utilizza l'DNSindirizzo pubblico dell'EC2istanza Amazon per visualizzare la pagina Web in un browser Web. (Per ottenere il DNS valore pubblico, nella EC2 console Amazon, scegli l'EC2istanza Amazon e nella scheda Descrizione, cerca il valore in Pubblico DNS.)

Ad esempio, se l'DNSindirizzo pubblico della tua EC2 istanza Amazon èec2-01-234-567-890.compute-1.amazonaws.com, utilizzerai quanto segueURL:

http://ec2-01-234-567-890.compute-1.amazonaws.com

In caso di esito positivo, viene visualizzata una pagina Web di Hello, World!.