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à.
Tutorial: creazione di una semplice pipeline (bucket S3)
Il modo più semplice per creare una pipeline consiste nell'utilizzare la procedura guidata Crea pipeline nella console. AWS CodePipeline
In questo tutorial, creerai una pipeline a due fasi che utilizza un bucket di sorgenti S3 con versione e rilascerai un'applicazione di esempio. CodeDeploy
Nota
Se Amazon S3 è il fornitore di origine per la tua pipeline, puoi comprimere il file o i file sorgente in un unico .zip e caricare il file.zip nel tuo bucket di origine. È inoltre possibile caricare un singolo file decompresso; tuttavia, le operazioni a valle che si aspettano un file con estensione .zip avranno esito negativo.
Importante
Come parte della creazione di una pipeline, per gli artefatti verrà utilizzato un bucket di artefatti S3 fornito dal cliente. CodePipeline (Questo è diverso dal bucket utilizzato per un'azione sorgente S3.) Se il bucket di artefatti S3 si trova in un account diverso da quello della pipeline, assicurati che il bucket di artefatti S3 sia di proprietà di utenti sicuri e affidabili. Account AWS
Una volta creata questa pipeline semplice, puoi aggiungere un'altra fase e quindi disabilitare e abilitare la transizione tra fasi.
Importante
Molte delle azioni che aggiungi alla pipeline in questa procedura coinvolgono AWS risorse che devi creare prima di creare la pipeline. AWS le risorse per le tue azioni di origine devono sempre essere create nella stessa AWS regione in cui crei la pipeline. Ad esempio, se crei la pipeline nella regione Stati Uniti orientali (Ohio), il tuo CodeCommit repository deve trovarsi nella regione Stati Uniti orientali (Ohio).
Puoi aggiungere azioni interregionali quando crei la pipeline. AWS le risorse per le azioni interregionali devono trovarsi nella stessa AWS regione in cui intendi eseguire l'azione. Per ulteriori informazioni, consulta Aggiungere un'azione interregionale in CodePipeline.
Prima di iniziare, occorre completare i prerequisiti in Guida introduttiva con CodePipeline.
Argomenti
- Passaggio 1: crea un bucket sorgente S3 per la tua applicazione
- Fase 2: creare istanze Amazon EC2 Windows e installare l'agente CodeDeploy
- Passaggio 3: Creare un'applicazione in CodeDeploy
- Passaggio 4: Crea la tua prima pipeline in CodePipeline
- (Opzionale) Fase 5: aggiunta di un'altra fase alla pipeline
- (Facoltativo) Passaggio 6: disabilita e abilita le transizioni tra le fasi di CodePipeline
- Fase 7: eliminazione delle risorse
Passaggio 1: crea un bucket sorgente S3 per la tua applicazione
Puoi archiviare i file di origine o le applicazioni in qualsiasi percorso con versioni multiple. In questo tutorial, crei un bucket S3 per i file dell'applicazione di esempio e abiliti il controllo delle versioni su quel bucket. Dopo aver abilitato la funzione Versioni multiple, puoi copiare le applicazioni di esempio nel bucket.
Per creare un bucket S3
-
Accedi alla console all'indirizzo. AWS Management Console Apri la console S3.
-
Seleziona Crea bucket.
-
Per Bucket Name (Nome bucket), immettere un nome per il bucket, ad esempio
awscodepipeline-demobucket-example-date
.Nota
Poiché tutti i nomi dei bucket in Amazon S3 devono essere univoci, usane uno personalizzato, non il nome mostrato nell'esempio. È possibile modificare il nome dell'esempio semplicemente aggiungendo la data. Prendere nota di questo nome perché sarà necessario nel resto di questo tutorial.
In Regione, scegli la regione in cui intendi creare la pipeline, ad esempio Stati Uniti occidentali (Oregon), quindi scegli Crea bucket.
-
Dopo aver creato il bucket, viene visualizzato un banner di successo. Scegliere Go to bucket details (Vai ai dettagli del bucket).
-
Nella scheda Properties (Proprietà) scegliere Versioning (Funzione Versioni multiple). Scegliere Enable versioning (Abilita funzione Versioni multiple), quindi scegliere Save (Salva).
Quando il controllo delle versioni è abilitato, Amazon S3 salva ogni versione di ogni oggetto nel bucket.
-
Nella scheda Permissions (Autorizzazioni), lasciare le impostazioni predefinite. Per ulteriori informazioni sul bucket S3 e le autorizzazioni oggetto, consulta Specificare le autorizzazioni in una policy.
-
Quindi, scaricare un esempio e salvarlo in una cartella o directory sul computer locale.
-
Scegliere una delle seguenti opzioni. Scegliere
SampleApp_Windows.zip
se si desidera seguire la procedura descritta in questo tutorial per le istanze di Windows Server.L'applicazione di esempio contiene i seguenti file con cui eseguire la distribuzione: CodeDeploy
-
appspec.yml
— Il file delle specifiche dell'applicazione (AppSpecfile) è un file in YAMLformato -utilizzato da per CodeDeploy gestire una distribuzione. Per ulteriori informazioni sul AppSpec file, vedere CodeDeploy AppSpec File reference nella Guida per l'AWS CodeDeploy utente. -
index.html
— Il file indice contiene la home page dell'applicazione di esempio distribuita. -
LICENSE.txt
— Il file di licenza contiene informazioni sulla licenza per l'applicazione di esempio. -
File per script: l'applicazione di esempio utilizza script per scrivere file di testo in una posizione sull'istanza. Un file viene scritto per ciascuno dei diversi eventi del ciclo di vita della CodeDeploy distribuzione nel modo seguente:
-
scripts
Cartella (solo esempio Linux): la cartella contiene i seguenti script di shell per installare le dipendenze e avviare e arrestare l'applicazione di esempio per la distribuzione automatizzata:install_dependencies
, e.start_server
stop_server
-
(Solo esempio per Windows)
before-install.bat
: si tratta di uno script batch per l'evento del ciclo di vita dellaBeforeInstall
distribuzione, che verrà eseguito per rimuovere i vecchi file scritti durante le distribuzioni precedenti di questo esempio e creare una posizione sull'istanza in cui scrivere i nuovi file.
-
-
Scarica il file compresso. Non decomprimere il file.
-
-
Nella console Amazon S3, per il tuo bucket, carica il file:
-
Scegli Carica.
-
Trascina il file oppure scegli Add files (Aggiungi file) e individua il file.
-
Scegli Carica.
-
Fase 2: creare istanze Amazon EC2 Windows e installare l'agente CodeDeploy
Nota
Questo tutorial fornisce esempi di passaggi per creare istanze Amazon EC2 Windows. Per esempi di passaggi per creare istanze Amazon EC2 Linux, consultaPassaggio 3: creare un'istanza Amazon EC2 Linux e installare l' CodeDeploy agente. Quando viene richiesto il numero di istanze da creare, specificare 2 istanze.
In questo passaggio, creerai le EC2 istanze Amazon di Windows Server in cui distribuirai un'applicazione di esempio. Come parte di questo processo, crei un ruolo di istanza con politiche che consentono l'installazione e la gestione dell' CodeDeploy agente sulle istanze. L' CodeDeploy agente è un pacchetto software che consente di utilizzare un'istanza nelle CodeDeploy distribuzioni. È inoltre possibile allegare politiche che consentono all'istanza di recuperare i file utilizzati dall' CodeDeploy agente per distribuire l'applicazione e di consentire la gestione dell'istanza da parte di. SSM
Per creare un ruolo dell'istanza
-
Apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/
). -
Dal pannello di controllo della console, scegli Roles (Ruoli).
-
Scegliere Crea ruolo.
-
In Seleziona il tipo di entità affidabile, seleziona Servizio AWS. In Scegli un caso d'uso, seleziona EC2, quindi scegli Avanti: Autorizzazioni.
-
Cerca e seleziona il criterio denominato
AmazonEC2RoleforAWSCodeDeploy
. -
Cerca e seleziona la politica denominata
AmazonSSMManagedInstanceCore
. Scegliere Next: Tags (Successivo: Tag). -
Scegliere Next:Review (Successivo: Rivedi). Immettere un nome per il ruolo (ad esempio
EC2InstanceRole
).Nota
Prendere nota del nome del ruolo per la fase successiva. È possibile scegliere questo ruolo quando si crea l'istanza.
Scegliere Crea ruolo.
Per avviare istanze
Apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/
. -
Dalla barra di navigazione laterale, scegli Istanze e seleziona Avvia istanze nella parte superiore della pagina.
-
In Nome e tag, in Nome, inserisci.
MyCodePipelineDemo
Questo assegna alle istanze un tag Key diName
e un tag Value di.MyCodePipelineDemo
Successivamente, si crea un' CodeDeploy applicazione che distribuisce l'applicazione di esempio alle istanze. CodeDeployseleziona le istanze da distribuire in base ai tag. -
In Immagini dell'applicazione e del sistema operativo (Amazon Machine Image), scegli l'opzione Windows. (Questo AMI è descritto come Microsoft Windows Server 2019 Base ed è etichettato come «Idoneo per il piano gratuito» e può essere trovato in Quick Start.)
-
In Tipo di istanza, scegli il
t2.micro
tipo idoneo al piano gratuito come configurazione hardware per la tua istanza. -
In Coppia di chiavi (login), scegli una coppia di chiavi o creane una.
Puoi anche scegliere Proceed without a key pair.
Nota
Ai fini di questo tutorial, è possibile procedere senza una coppia di chiavi. Per connetterti SSH alle tue istanze, crea o usa una key pair.
-
In Impostazioni di rete, procedi come segue.
In Assegna automaticamente un IP pubblico, assicurati che lo stato sia Abilita.
-
Accanto a Assign a security group (Assegna un gruppo di sicurezza), scegliere Create a new security group (Crea un nuovo gruppo di sicurezza).
-
Nella riga per SSH, in Tipo di sorgente, scegli Il mio IP.
-
Scegli Aggiungi gruppo di sicurezza, scegli HTTP, quindi in Tipo di origine, scegli Il mio IP.
-
-
Espandi Advanced details (Dettagli avanzati). Nel profilo dell'IAMistanza, scegli il IAM ruolo che hai creato nella procedura precedente (ad esempio,
EC2InstanceRole
). -
In Riepilogo, in Numero di istanze, inserisci..
2
-
Scegliere Launch Instance (Avvia istanza).
-
Scegli View Instances (Visualizza istanze) per chiudere la pagina di conferma e tornare alla console.
-
È possibile visualizzare lo stato dell'avvio nella pagina Instances (Istanze). Quando avvii un'istanza, il suo stato iniziale è
pending
. Dopo l'avvio, lo stato dell'istanza diventa e riceve un DNS nome pubblico.running
(Se la DNS colonna Pubblico non è visualizzata, scegli l'icona Mostra/Nascondi, quindi seleziona Pubblico DNS). -
Possono essere necessari alcuni minuti prima che sia possibile connettersi all'istanza. Verifica che l'istanza abbia superato i controlli dello stato. Queste informazioni sono disponibili nella colonna Status Checks (Verifiche di stato).
Passaggio 3: Creare un'applicazione in CodeDeploy
In CodeDeploy, un'applicazione è un identificatore, sotto forma di nome, per il codice che si desidera distribuire. CodeDeploy utilizza questo nome per garantire che durante una distribuzione venga fatto riferimento alla combinazione corretta di revisione, configurazione di distribuzione e gruppo di distribuzione. Il nome dell' CodeDeploy applicazione creata in questo passaggio viene selezionato quando si crea la pipeline più avanti in questo tutorial.
Per prima cosa crei un ruolo di servizio CodeDeploy da utilizzare. Se è già stato creato un ruolo di servizio, non è necessario crearne un altro.
Per creare un ruolo CodeDeploy di servizio
-
Apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/
). -
Dal pannello di controllo della console, scegli Roles (Ruoli).
-
Scegliere Crea ruolo.
-
In Seleziona entità attendibile, scegli Servizio AWS. In Use case (Caso d'uso), scegli CodeDeploy. Scegli CodeDeploytra le opzioni elencate. Scegli Next (Successivo). La policy gestita
AWSCodeDeployRole
è già collegata al ruolo. -
Scegli Next (Successivo).
-
Immetti un nome per il ruolo, ad esempio
CodeDeployRole
, quindi seleziona Create role (Crea ruolo).
Per creare un'applicazione in CodeDeploy
-
Apri la CodeDeploy console in https://console.aws.amazon.com/codedeploy.
-
Se la pagina Applicazioni non viene visualizzata, nel AWS CodeDeploy menu, scegli Applicazioni.
-
Scegli Crea applicazione.
-
In Application name (Nome applicazione), immettere
MyDemoApplication
. -
In Compute Platform, scegli EC2/On-premise.
-
Scegli Crea applicazione.
Per creare un gruppo di distribuzione in CodeDeploy
-
Nella pagina in cui è visualizzata l'applicazione, scegliere Create deployment group (Crea gruppo di distribuzione).
-
In Deployment group name (Nome del gruppo di distribuzione), immettere
MyDemoDeploymentGroup
. -
In Ruolo di servizio, scegli il ruolo di servizio che hai creato in precedenza. È necessario utilizzare un ruolo di servizio che AWS CodeDeploy garantisca almeno la fiducia e le autorizzazioni descritte in Creare un ruolo di servizio per. CodeDeploy Per ottenere il ruolo di servizioARN, vedi Get the Service Role ARN (console).
-
In Deployment type (Tipo di distribuzione), scegliere In-place (In loco).
-
In Configurazione dell'ambiente, scegli Amazon EC2 Instances. Scegliere Name (Nome) nel campo Key (Chiave) e nel campo Value (Valore), immettere
MyCodePipelineDemo
.Importante
Qui devi scegliere lo stesso valore per la chiave Name che hai assegnato alle EC2 istanze quando le hai create. Se l'istanza è stata taggata in maniera diversa da
MyCodePipelineDemo
, assicurarsi di utilizzare tale valore qui. -
In Configurazione dell'agente con AWS Systems Manager, scegli Ora e pianifica gli aggiornamenti. Questo installa l'agente sull'istanza. L'istanza di Windows è già configurata con l'SSMagente e verrà ora aggiornata con l' CodeDeploy agente.
-
In Impostazioni di distribuzione, scegli
CodeDeployDefault.OneAtaTime
. -
In Load Balancer, assicurati che la casella Enable load balancing non sia selezionata. Non è necessario configurare un sistema di bilanciamento del carico o scegliere un gruppo di destinazione per questo esempio. Dopo aver deselezionato la casella di controllo, le opzioni di bilanciamento del carico non vengono visualizzate.
-
Nella sezione Advanced (Impostazioni avanzate) mantenere le impostazioni predefinite.
-
Scegliere Create deployment group (Crea gruppo di distribuzione).
Passaggio 4: Crea la tua prima pipeline in CodePipeline
In questa parte del tutorial, verrà creata la pipeline. L'esempio viene eseguito automaticamente tramite la pipeline.
Per creare un CodePipeline processo di rilascio automatico
Accedi AWS Management Console e apri la CodePipeline console all'indirizzo http://console.aws.amazon. com/codesuite/codepipeline/home
. -
Nella pagina Welcome (Benvenuto), pagina Getting started (Nozioni di base) o pagina Pipelines (Pipeline), scegliere Create pipeline (Crea pipeline).
-
In Step 1: Choose pipeline settings (Fase 1: scelta delle impostazioni della pipeline), in Pipeline name (Nome pipeline), immettere
MyFirstPipeline
.Nota
Se si sceglie un altro nome per la pipeline, accertarsi di utilizzarlo al posto di
MyFirstPipeline
nella parte restante di questo tutorial. Non è possibile modificare il nome di una pipeline dopo che è stata creata. I nomi di pipeline sono soggetti ad alcune limitazioni. Per ulteriori informazioni, consulta Quote in AWS CodePipeline. -
CodePipeline fornisce condotte di tipo V1 e V2, che si differenziano per caratteristiche e prezzo. Il tipo V2 è l'unico tipo che puoi scegliere nella console. Per ulteriori informazioni, consulta i tipi di pipeline. Per informazioni sui prezzi di CodePipeline, consulta la sezione Prezzi
. -
In Service role (Ruolo del servizio), procedere in uno dei seguenti modi:
-
Scegli Nuovo ruolo di servizio CodePipeline per consentire la creazione di un nuovo ruolo di servizio inIAM.
-
Scegli Ruolo di servizio esistente per utilizzare un ruolo di servizio già creato inIAM. In Role name (Nome ruolo), scegli il ruolo del servizio dall'elenco.
-
-
Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).
-
In Step 2: Add source stage (Fase 2: aggiunta della fase di origine), in Source provider (Provider di origine), scegli Amazon S3. In Bucket, immettere il nome del bucket S3 creato in Passaggio 1: crea un bucket sorgente S3 per la tua applicazione. Nella chiave oggetto S3, immettere la chiave oggetto con o senza un percorso file e ricordarsi di includere l'estensione del file. Ad esempio, per
SampleApp_Windows.zip
, immettere il nome del file di esempio come illustrato in questo esempio:SampleApp_Windows.zip
Seleziona Fase successiva.
In Change detection options (Opzioni di rilevamento delle modifiche), lasciare le impostazioni predefinite. Ciò consente di CodePipeline utilizzare Amazon CloudWatch Events per rilevare le modifiche nel bucket di origine.
Scegli Next (Successivo).
-
In Step 3: Add build stage (Fase 3: aggiunta della fase di compilazione), scegli Skip build stage (Ignora fase di compilazione) e quindi accetta il messaggio di avviso scegliendo Skip (Ignora). Scegli Next (Successivo).
-
Nel passaggio 4: aggiungi la fase di distribuzione, in Deploy provider, scegli. CodeDeploy Per impostazione predefinita, il campo Regione è lo stesso Regione AWS della pipeline. In Application name (Nome applicazione), immettere
MyDemoApplication
oppure scegliere il pulsante Refresh (Aggiorna) e quindi selezionare il nome dell'applicazione dall'elenco. In Deployment group (Gruppo di distribuzione), immettereMyDemoDeploymentGroup
o selezionarlo dall'elenco, quindi scegliere Next (Successivo).Nota
Il nome "Deploy (Distribuzione)" è il nome assegnato per impostazione predefinita alla fase creata in Step 4: Add deploy stage (Fase 4: aggiunta della fase di distribuzione), così come "Source (Origine)" è il nome assegnato alla prima fase della pipeline.
-
In Step 5: Review (Fase 5: revisione), esaminare le informazioni e quindi scegliere Create pipeline (Crea pipeline).
-
La pipeline inizia l'esecuzione. Puoi visualizzare lo stato di avanzamento e i messaggi di successo e di fallimento mentre l' CodePipeline esempio distribuisce una pagina Web su ciascuna delle EC2 istanze Amazon della distribuzione. CodeDeploy
Complimenti! Hai appena creato una semplice pipeline in. CodePipeline La pipeline è composta da due fasi:
-
Una fase di origine denominata Source (Origine), che rileva le modifiche nell'applicazione di esempio con versioni multiple archiviate nel bucket S3 ed esegue il push di tali modifiche nella pipeline.
-
Una fase di distribuzione che distribuisce tali modifiche alle EC2 istanze con. CodeDeploy
Verifica ora i risultati.
Per verificare che la pipeline è stata eseguita correttamente
-
Visualizzare l'avanzamento iniziale della pipeline. Lo stato di ciascuna fase cambia da No executions yet (Ancora nessun esecuzione) a In Progress (In corso) e quindi in Succeeded (Riuscito) o Failed (Non riuscito). L'esecuzione della pipeline richiede qualche minuto.
-
Quando lo stato dell'operazione indica Succeeded (Riuscito), nell'area di stato per la fase Deploy (Distribuzione), scegliere Details (Dettagli). Verrà aperta la console. CodeDeploy
-
Nella scheda Deployment group (Gruppo di distribuzione), in Deployment lifecycle events (Eventi del ciclo di vita di distribuzione), scegliere un ID dell'istanza. Viene visualizzata la console di EC2.
-
Nella scheda Descrizione, in Pubblico DNS, copia l'indirizzo e incollalo nella barra degli indirizzi del tuo browser web. Visualizzare la pagina di indice per l'applicazione di esempio caricata nel bucket S3.
Viene visualizzata la pagina Web dell'applicazione di esempio che hai caricato nel tuo bucket S3.
Per ulteriori informazioni sulle fasi, sulle operazioni e sul funzionamento delle pipeline, consulta CodePipeline concetti .
(Opzionale) Fase 5: aggiunta di un'altra fase alla pipeline
Ora aggiungi un'altra fase della pipeline da distribuire dai server di staging ai server di produzione utilizzando. CodeDeploy Innanzitutto, crei un altro gruppo di distribuzione all'interno. CodePipelineDemoApplication CodeDeploy Quindi, aggiungi una fase che include un'operazione che utilizza questo gruppo di distribuzione. Per aggiungere un'altra fase, è necessario utilizzare la CodePipeline console o AWS CLI recuperare e modificare manualmente la struttura della pipeline in un JSON file, quindi eseguire il update-pipeline comando per aggiornare la pipeline con le modifiche.
Argomenti
Crea un secondo gruppo di distribuzione in CodeDeploy
Nota
In questa parte del tutorial, crei un secondo gruppo di distribuzione, ma esegui la distribuzione sulle stesse EC2 istanze Amazon di prima. Questo esempio è solo a scopo dimostrativo. È stato progettato appositamente per non mostrarti come vengono visualizzati gli errori. CodePipeline
Per creare un secondo gruppo di distribuzione in CodeDeploy
-
Apri la CodeDeploy console in https://console.aws.amazon.com/codedeploy.
-
Scegliere Applications (Applicazioni) e selezionare
MyDemoApplication
nell'elenco di applicazioni. -
Scegliere la scheda Deployment groups (Gruppi di distribuzione), quindi scegliere Create deployment group (Crea gruppo di distribuzione).
-
Nella pagina Create deployment group (Crea gruppo di distribuzione), in Deployment group name (Nome del gruppo di distribuzione), immettere un nome per il secondo gruppo di distribuzione, ad esempio
CodePipelineProductionFleet
. -
In Service Role, scegli lo stesso ruolo di CodeDeploy servizio che hai usato per la distribuzione iniziale (non il ruolo di CodePipeline servizio).
-
In Deployment type (Tipo di distribuzione), scegliere In-place (In loco).
-
In Configurazione dell'ambiente, scegli Amazon EC2 Instances. Scegliere Nome nella casella Key (Chiave) e nella casella Value (Valore) scegliere
MyCodePipelineDemo
dall'elenco. Lasciare la configurazione predefinita per Deployment settings (Impostazioni di distribuzione). -
In Deployment configuration (Configurazione della distribuzione), scegliere
CodeDeployDefault.OneAtaTime
. -
In Load Balancer (Sistema di bilanciamento del carico), deselezionare Enable load balancing (Abilita il bilanciamento del carico).
-
Scegliere Create deployment group (Crea gruppo di distribuzione).
Aggiunta del gruppo di distribuzione come un'altra fase nella pipeline
Ora che hai un altro gruppo di distribuzione, puoi aggiungere una fase che utilizza questo gruppo di distribuzione per la distribuzione nelle stesse EC2 istanze utilizzate in precedenza. È possibile utilizzare la CodePipeline console o AWS CLI aggiungere questa fase.
Creazione di una terza fase (console)
È possibile utilizzare la CodePipeline console per aggiungere una nuova fase che utilizza il nuovo gruppo di distribuzione. Poiché questo gruppo di distribuzione viene distribuito EC2 sulle istanze che hai già utilizzato, l'azione di distribuzione in questa fase ha esito negativo.
-
In Nome, scegli il nome della pipeline che hai creato, MyFirstPipeline.
-
Nella pagina dei dettagli della pipeline, scegliere Edit (Modifica).
-
Nella pagina Edit (Modifica), scegli + Add stage (Aggiungi fase) per aggiungere una fase subito dopo la fase Deploy (Distribuzione).
-
In Aggiungi fase, in Nome fase, inserisci
Production
. Selezionare Add stage (Aggiungi fase). -
Nella nuova fase, scegliere + Add action group (Aggiungi gruppo di operazioni).
-
In Modifica azione, in Nome azione, inserisci
Deploy-Second-Deployment
. In Action provider, in Deploy, scegli CodeDeploy. -
Nella CodeDeploy sezione, in Nome applicazione, scegli
MyDemoApplication
dall'elenco a discesa, come hai fatto quando hai creato la pipeline. In Deployment group (Gruppo di distribuzione), scegli il gruppo di distribuzione appena creatoCodePipelineProductionFleet
. In Artefatti di input, scegliere l'artefatto di input dall'azione sorgente. Seleziona Salva. -
Nella pagina Edit (Modifica), scegliere Save (Salva). In Save pipeline changes (Salva modifiche alla pipeline), scegliere Save (Salva).
-
Anche se la nuova fase è stata aggiunta alla pipeline, viene visualizzato lo stato No executions yet (Ancora nessun esecuzione) perché le modifiche non hanno attivato un'altra esecuzione della pipeline. Per vedere come viene eseguita la pipeline modificata, è necessario rieseguire manualmente la revisione più recente. Nella pagina dei dettagli della pipeline, scegli Release change, quindi scegli Release quando richiesto. In questo modo viene eseguita la revisione più recente disponibile in ogni percorso di origine specificato in un'operazione origine tramite la pipeline.
In alternativa, per utilizzare il AWS CLI per rieseguire la pipeline, da un terminale sul computer Linux, macOS o Unix locale o da un prompt dei comandi sul computer Windows locale, esegui il comando, start-pipeline-execution specificando il nome della pipeline. In questo modo l'applicazione viene eseguita nel bucket di origine tramite la pipeline per una seconda volta.
aws codepipeline start-pipeline-execution --name MyFirstPipeline
Questo comando restituisce un oggetto
pipelineExecutionId
. -
Torna alla CodePipeline console e nell'elenco delle pipeline, scegli di aprire la pagina di visualizzazione. MyFirstPipeline
La pipeline mostra tre fasi e lo stato dell'artefatto in esecuzione attraverso queste tre fasi. L'esecuzione in tutte le fasi della pipeline potrebbe richiedere fino a cinque minuti. La distribuzione va a buon fine nelle prime due fasi, come in precedenza, ma nella fase Production (Produzione) l'operazione Deploy-Second-Deployment (Distribuisci-seconda-distribuzione) viene mostrata come non riuscita.
-
Nell'operazione Deploy-Second-Deployment (Distribuisci-seconda-distribuzione), scegliere Details (Dettagli). Verrai reindirizzato alla pagina per la CodeDeploy distribuzione. In questo caso, l'errore è il risultato della distribuzione del primo gruppo di istanze su tutte le EC2 istanze, senza lasciare alcuna istanza per il secondo gruppo di distribuzione.
Nota
Questo errore è un comportamento predefinito per dimostrare cosa accade quando si verifica un errore in una fase della pipeline.
Crea una terza fase () CLI
Sebbene l'utilizzo AWS CLI di per aggiungere una fase alla pipeline sia più complesso rispetto all'utilizzo della console, offre una maggiore visibilità sulla struttura della pipeline.
Per creare una terza fase per la pipeline
-
Apri una sessione terminale sul tuo computer Linux, macOS o Unix locale o un prompt dei comandi sul tuo computer Windows locale ed esegui il get-pipeline comando per visualizzare la struttura della pipeline appena creata. Per
MyFirstPipeline
, digitare il comando seguente:aws codepipeline get-pipeline --name "
MyFirstPipeline
"Questo comando restituisce la struttura di. MyFirstPipeline L'aspetto della prima parte dell'output è simile al seguente:
{ "pipeline": { "roleArn": "arn:aws:iam::80398EXAMPLE:role/AWS-CodePipeline-Service", "stages": [ ...
La parte finale dell'output include i metadati della pipeline e l'aspetto è simile al seguente:
... ], "artifactStore": { "type": "S3" "location": "amzn-s3-demo-bucket", }, "name": "MyFirstPipeline", "version": 4 }, "metadata": { "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline", "updated": 1501626591.112, "created": 1501626591.112 } }
-
Copiare e incollare questa struttura in un editor di testo semplice e salvare il file come
pipeline.json
. Per comodità, salvare il file nella stessa directory in cui si eseguono i comandi aws codepipeline.Nota
È possibile reindirizzarli JSON direttamente in un file con il get-pipeline comando seguente:
aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
-
Copiare la sezione della fase Deploy (Distribuzione) e incollarla dopo le prime due fasi. Poiché si tratta di una fase di distribuzione, analogamente alla fase Deploy (Distribuzione), utilizzarla come un modello per la terza fase.
-
Cambia il nome della fase e i dettagli del gruppo di distribuzione.
L'esempio seguente mostra l'JSONaggiunta al file pipeline.json dopo la fase di distribuzione. Modificare gli elementi sottolineati con nuovi valori. Ricordare di includere una virgola per separare le definizioni delle fasi Deploy (Distribuzione) e Production (Produzione).
, { "name": "
Production
", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-Second-Deployment
", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineProductionFleet
" }, "runOrder": 1 } ] } -
Se state lavorando con la struttura della pipeline recuperata utilizzando il get-pipeline comando, dovete rimuovere le righe dal file.
metadata
JSON In caso contrario, il comando update-pipeline non è in grado di utilizzarlo. Rimuovi le righe"metadata": { }
e i campi"created"
,"pipelineARN"
e"updated"
.Ad esempio, rimuovere dalla struttura le seguenti righe:
"metadata": { "pipelineArn": "arn:aws:codepipeline:
region
:account-ID
:pipeline-name
", "created": "date
", "updated": "date
" }Salvare il file.
-
Eseguite il update-pipeline comando, specificando il JSON file di pipeline, in modo simile al seguente:
aws codepipeline update-pipeline --cli-input-json file://pipeline.json
Questo comando restituisce l'intera struttura della pipeline aggiornata.
Importante
Assicurarsi di includere
file://
prima del nome del file. Questo è obbligatorio in questo comando. -
Eseguire il comando start-pipeline-execution, specificando il nome della pipeline. In questo modo l'applicazione viene eseguita nel bucket di origine tramite la pipeline per una seconda volta.
aws codepipeline start-pipeline-execution --name MyFirstPipeline
Questo comando restituisce un oggetto
pipelineExecutionId
. -
Apri la CodePipeline console e scegli MyFirstPipelinedall'elenco delle pipeline.
La pipeline mostra tre fasi e lo stato dell'artefatto in esecuzione attraverso queste tre fasi. L'esecuzione in tutte le fasi della pipeline potrebbe richiedere fino a cinque minuti. Anche se la distribuzione va buon fine sulle prime due fasi, come in precedenza, la fase Production (Produzione) mostra che l'operazione Deploy-Second-Deployment (Distribuisci-seconda-distribuzione) non è riuscita.
-
Nell'operazione Deploy-Second-Deployment (Distribuisci-seconda-distribuzione), scegliere Details (Dettagli) per visualizzare i dettagli dell'errore. Verrai reindirizzato alla pagina dei dettagli della CodeDeploy distribuzione. In questo caso, l'errore è il risultato della distribuzione del primo gruppo di istanze su tutte le EC2 istanze, senza lasciare alcuna istanza per il secondo gruppo di distribuzione.
Nota
Questo errore è un comportamento predefinito per dimostrare cosa accade quando si verifica un errore in una fase della pipeline.
(Facoltativo) Passaggio 6: disabilita e abilita le transizioni tra le fasi di CodePipeline
Puoi abilitare o disabilitare la transizione tra fasi in una pipeline. La disabilitazione della transizione tra fasi consente di controllare manualmente le transizioni tra una fase e un'altra. Ad esempio, potrebbe essere necessario eseguire le prime due fasi di una pipeline, ma disabilitare le transizioni alla terza fase finché non si è pronti per distribuire in produzione, oppure durante la risoluzione di un problema o errore relativo a tale fase.
Per disabilitare e abilitare le transizioni tra le fasi di una pipeline CodePipeline
-
Apri la CodePipeline console e scegli MyFirstPipelinedall'elenco delle pipeline.
-
Nella pagina dei dettagli per la pipeline, scegliere il pulsante Disable transition (Disabilita transizione) tra la seconda fase, (Deploy (Distribuzione)) e la terza fase aggiunta nella sezione precedente, (Production (Produzione)).
-
In Disable transition (Disabilita transizione), specificare il motivo della disabilitazione della transizione tra le fasi, quindi scegliere Disable (Disabilita).
La freccia tra le fasi visualizza un'icona e una modifica del colore e viene visualizzato il pulsante Enable transition (Abilita transizione).
-
Caricare nuovamente l'esempio nel bucket S3. Poiché il bucket è con versioni multiple, questa modifica avvia la pipeline.
-
Tornare alla pagina dei dettagli per la pipeline e osservare lo stato delle fasi. La visualizzazione della pipeline cambia per mostrare l'avanzamento e i messaggi di esito positivo sulle prime due fasi, ma nessuna modifica viene apportata sulla terza fase. Questo processo potrebbe richiedere alcuni minuti.
-
Abilitare la transizione selezionando il pulsante Enable transition (Abilita transazione) tra le due fasi. Nella finestra di dialogo Enable transition (Abilita transazione), scegliere Enable (Abilita). La fase inizia l'esecuzione entro pochi minuti e tenta di elaborare l'artefatto che è già stato eseguito nelle prime due fasi della pipeline.
Nota
Se desideri che questa terza fase abbia esito positivo, modifica il gruppo di CodePipelineProductionFleet distribuzione prima di abilitare la transizione e specifica un set diverso di EC2 istanze in cui viene distribuita l'applicazione. Per ulteriori informazioni su come eseguire questa operazione, consulta Modifica delle impostazioni del gruppo di distribuzione. Se crei più EC2 istanze, potresti incorrere in costi aggiuntivi.
Fase 7: eliminazione delle risorse
Puoi utilizzare alcune delle risorse create in questo tutorial per il Tutorial: creazione di una pipeline a quattro fasi. Ad esempio, puoi riutilizzare l'applicazione e la CodeDeploy distribuzione. Puoi configurare un'azione di compilazione con un provider come CodeBuild, che è un servizio di compilazione completamente gestito nel cloud. È inoltre possibile configurare un'operazione di compilazione che utilizza un provider con un server o sistema di compilazione, ad esempio Jenkins.
Tuttavia, dopo aver completato questo ed eventuali altri tutorial, devi eliminare la pipeline e le risorse utilizzate, per evitare che ti venga addebitato un costo per l'utilizzo continuo di tali risorse. Innanzitutto, elimina la pipeline, quindi l' CodeDeploy applicazione e le EC2 istanze Amazon associate e infine il bucket S3.
Per eliminare le risorse utilizzate in questo tutorial
-
Per ripulire CodePipeline le risorse, segui le istruzioni riportate in Eliminare una pipeline in. AWS CodePipeline
-
Per ripulire le CodeDeploy risorse, segui le istruzioni in Per pulire le risorse (console).
-
Per eliminare il bucket S3, segui le istruzioni in Eliminazione o svuotamento di un bucket S3. Se non si prevede di creare altre pipeline, eliminare il bucket S3 creato per l'archiviazione degli artefatti pipeline. Per ulteriori informazioni su questo bucket, consulta CodePipeline concetti .