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: distribuzione su istanze Amazon EC2 con CodePipeline
Questo tutorial ti aiuta a creare un'azione di distribuzione che distribuisca il codice nelle istanze CodePipeline che hai configurato in Amazon EC2.
Nota
Come parte della creazione di una pipeline nella console, un bucket di artefatti S3 verrà utilizzato da for artifacts. CodePipeline (Questo è diverso dal bucket utilizzato per un'azione sorgente S3.) Se il bucket di artefatti S3 si trova in un account diverso dall'account della pipeline, assicurati che il bucket di artefatti S3 sia di proprietà di persone sicure e affidabili. Account AWS
Nota
L'EC2azione di distribuzione è disponibile solo per le pipeline di tipo V2.
Prerequisiti
Per utilizzare questo tutorial per creare la pipeline di distribuzione continua, è necessario disporre di alcune risorse. Ecco di cosa hai bisogno prima di iniziare:
Nota
Tutte queste risorse devono essere create all'interno della stessa regione. AWS
-
Un repository di controllo del codice sorgente (utilizzato da questo tutorial GitHub) in cui aggiungere un
script.shfile di esempio. -
È necessario utilizzare un ruolo CodePipeline di servizio esistente che è stato aggiornato con le autorizzazioni per questa azione. Per aggiornare il tuo ruolo di servizio, consultaRuolo del servizio, policy e autorizzazioni per l'azione di distribuzione EC2.
Dopo aver soddisfatto questi prerequisiti, puoi procedere con il tutorial e creare la pipeline di distribuzione continua.
Passaggio 1: creazione di istanze Amazon EC2 Linux
In questo passaggio, crei le istanze Amazon EC2 in cui distribuirai un'applicazione di esempio. Come parte di questo processo, crea un ruolo di istanza in IAM, se non hai già creato un ruolo di istanza nella regione in cui desideri creare risorse.
Per creare un ruolo dell'istanza
-
Aprire la console IAM 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à attendibile, seleziona Servizio AWS. In Scegli un caso d'uso, seleziona EC2. In Select your use case (Seleziona il tuo caso d'uso) selezionare EC2. Scegli Avanti.
-
Cerca e seleziona la policy denominata
AmazonSSMManagedEC2InstanceDefaultPolicy. -
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.
Nota
Aggiungerai le autorizzazioni a questo ruolo per consentire l'accesso al bucket di artefatti S3 per la tua pipeline dopo la creazione della pipeline.
Scegliere Crea ruolo.
Per avviare istanze
Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/
. -
Dalla navigazione laterale, scegli Istanze e seleziona Launch instances nella parte superiore della pagina.
-
In Nome, inserisci
MyInstances. Questo assegna all'istanza un tag Key ofNamee un tag Value of.MyInstances -
In Application and OS Images (Amazon Machine Image), individua l'opzione Amazon Linux AMI con il AWS logo e assicurati che sia selezionata. (Questa AMI è descritta come Amazon Linux 2 AMI (HVM) ed è etichettata come «idonea al livello gratuito».)
-
In Tipo di istanza, scegli il
t2.microtipo idoneo al livello gratuito come configurazione hardware per la tua istanza. -
In Coppia di chiavi (accesso), scegli una coppia di chiavi o creane una.
-
In Impostazioni di rete, assicurati che lo stato sia Abilita.
-
Espandi Advanced details (Dettagli avanzati). Nel profilo dell'istanza IAM, scegli il ruolo IAM che hai creato nella procedura precedente (ad esempio,
EC2InstanceRole).Nota
Non lasciare vuoto il ruolo dell'istanza poiché questo crea un ruolo predefinito e non seleziona il ruolo che hai creato.
-
In Riepilogo, in Numero di istanze, inserisci
2. -
Scegliere Launch Instance (Avvia istanza).
-
È possibile visualizzare lo stato dell'avvio nella pagina Instances (Istanze). Quando avvii un'istanza, il suo stato iniziale è
pending. Una volta avviata l'istanza, il suo stato passa arunninge riceve un nome DNS pubblico. (Se la colonna DNS pubblico non è visualizzata, scegli l'Show/Hideicona, quindi seleziona DNS pubblico.)
Passaggio 2: aggiungere le autorizzazioni del bucket artifact al ruolo dell'istanza EC2
Devi aggiornare il ruolo dell'istanza EC2 che hai creato per la tua istanza per consentirle di accedere al bucket degli artefatti della pipeline.
Nota
Quando crei l'istanza, crei o usi un ruolo di istanza EC2 esistente. Per evitare Access Denied errori, è necessario aggiungere le autorizzazioni del bucket S3 al ruolo dell'istanza per assegnare le autorizzazioni di istanza al bucket artefatto. CodePipeline Crea un ruolo predefinito o aggiorna il ruolo esistente con l'ambito delle s3:GetObject autorizzazioni limitato al bucket degli artifact per la regione della pipeline.
-
Accedi alla tua pipeline nella console. CodePipeline Seleziona Impostazioni. Visualizza il nome e la posizione dell'archivio degli artefatti per una pipeline esistente. Prendi nota del bucket di artefatti Amazon Resource Name (ARN) e copialo.
-
Passare alla console IAM e quindi scegliere Ruoli. Scegli il ruolo dell'istanza che hai creato nel passaggio 1 di questo tutorial.
-
Nella scheda Permissions (Autorizzazioni) scegliere Add inline policy (Aggiungi policy inline).
-
Aggiungi il seguente JSON al documento della policy, sostituendo il valore nel
Resourcecampo con il bucket ARN.{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BucketName" } -
Scegliere Aggiorna.
Passaggio 3: aggiungi un file di script al tuo repository
Incolla questo testo di esempio per creare il script.sh file per la fase successiva allo script della distribuzione.
echo "Hello World!"
Per aggiungere un script.sh file nel tuo repository di origine
-
Apri un editor di testo, quindi copia e incolla il file precedente in un nuovo file.
-
Conferma e inserisci il file
script.shnell'archivio del codice sorgente.-
Aggiungi il file.
git add . -
Conferma la modifica.
git commit -m "Adding script.sh." -
Invia la conferma.
git push
Annota il percorso nel tuo repository.
/MyDemoRepo/test/script.sh -
Fase 4: Creazione della pipeline
Usa la CodePipeline procedura guidata per creare le fasi della pipeline e connettere il tuo repository di origine.
Creazione della pipeline
Apri la console all' CodePipeline indirizzo. https://console.aws.amazon.com/codepipeline/
-
Nella pagina Welcome (Benvenuto), pagina Getting started (Nozioni di base) o pagina Pipelines (Pipeline), scegliere Create pipeline (Crea pipeline).
-
Nella pagina Passaggio 1: scegli l'opzione di creazione, in Opzioni di creazione, scegli l'opzione Crea pipeline personalizzata. Scegli Avanti.
-
Nel passaggio 2: scegli le impostazioni della pipeline, in Nome della pipeline, inserisci.
MyPipeline -
CodePipeline fornisce pipeline 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 tipi di pipeline. Per informazioni sui prezzi di CodePipeline, vedi Prezzi. https://aws.amazon.com/codepipeline/pricing/
-
In Ruolo di servizio, scegli Usa il ruolo di servizio esistente, quindi scegli il ruolo di CodePipeline servizio che è stato aggiornato con le autorizzazioni richieste per questa azione. Per configurare il ruolo CodePipeline di servizio per questa azione, consultaRuolo del servizio, policy e autorizzazioni per l'azione di distribuzione EC2.
-
Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).
-
Nella pagina Fase 3: Aggiungi fase sorgente, aggiungi una fase sorgente:
-
In Source provider, scegli GitHub (tramite GitHub App).
-
In Connessione, scegli una connessione esistente o creane una nuova. Per creare o gestire una connessione per l'azione GitHub sorgente, consultaGitHub connessioni.
-
In Repository name (Nome repository), scegli il nome del repository GitHub .
Scegli Avanti.
-
-
Nella pagina Passaggio 4: Aggiungi fase di creazione, scegli Ignora.
-
Nella pagina Passaggio 5: Aggiungi fase di distribuzione, scegli EC2.
-
Per la directory Target, inserisci la directory sull'istanza in cui desideri eseguire la distribuzione, ad esempio.
/home/ec2-user/testhelloworldNota
Specifica la directory di distribuzione in cui desideri che l'azione utilizzi sull'istanza. L'azione automatizzerà la creazione della directory specificata sull'istanza come parte della distribuzione.
-
Per PostScript, inserisci il percorso e il nome del file per lo script, ad esempio.
test/script.sh -
Scegli Avanti.
-
-
Nella pagina Step 6: Review (Fase 6: esamina), esamina la configurazione della pipeline, quindi seleziona Create pipeline (Crea pipeline) per creare la pipeline.
-
Una volta eseguita correttamente la pipeline, scegli Visualizza dettagli per visualizzare i log sull'azione e visualizzare l'output dell'azione di calcolo gestita.
Fase 5: testa la tua pipeline
La pipeline dovrebbe avere tutto ciò che serve per eseguire una distribuzione continua nativa end-to-end. AWS Ora, testane la funzionalità inserendo una modifica del codice all'archivio del codice sorgente.
Test della pipeline
-
Effettua una modifica del codice nell'archivio del codice sorgente configurato, conferma e inserisci la modifica.
Apri la console all'indirizzo. CodePipeline https://console.aws.amazon.com/codepipeline/
-
Seleziona la pipeline nell'elenco.
-
Osserva l'avanzamento della pipeline attraverso le varie fasi. La pipeline dovrebbe essere completata e la tua azione distribuirà lo script sulle tue istanze.
-
Per ulteriori informazioni sulla risoluzione dei problemi, consulta. L'azione di distribuzione EC2 ha esito negativo e viene visualizzato il messaggio di errore No such file