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: crea una pipeline che utilizzi Amazon S3 come provider di distribuzione
In questo tutorial, configuri una pipeline che distribuisce continuamente file utilizzando Amazon S3 come provider di azioni di distribuzione nella fase di distribuzione. La pipeline completata rileva le modifiche quando si modificano i file di origine nel repository di origine. La pipeline utilizza quindi Amazon S3 per distribuire i file nel bucket. Ogni volta che modifichi o aggiungi i file del tuo sito Web nella posizione di origine, la distribuzione crea il sito Web con i file più recenti.
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
Nota
Anche se elimini file dal repository di origine, l'azione di distribuzione di S3 non elimina gli oggetti S3 corrispondenti ai file eliminati.
Questo tutorial offre due opzioni:
-
Crea una pipeline che consente di distribuire un sito Web statico al bucket pubblico S3. Questo esempio crea una pipeline con un'azione di AWS CodeCommit origine e un'azione di distribuzione di Amazon S3. Per informazioni, consulta Opzione 1: distribuire file statici di siti Web su Amazon S3.
-
Crea una pipeline che compili il TypeScript codice di esempio JavaScript e distribuisca l'artefatto di CodeBuild output nel bucket S3 per l'archiviazione. Questo esempio crea una pipeline con un'azione di origine di Amazon S3, CodeBuild un'azione di compilazione e un'azione di distribuzione di Amazon S3. Per informazioni, consulta Opzione 2: distribuzione di file di archivio integrati su Amazon S3 da un bucket di origine S3.
Importante
Molte delle azioni che aggiungi alla tua 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.
Opzione 1: distribuire file statici di siti Web su Amazon S3
In questo esempio, scarichi il file modello di sito web statico di esempio, carichi i file nel tuo AWS CodeCommit repository, crei il tuo bucket e lo configuri per l'hosting. Successivamente, usi la AWS CodePipeline console per creare la pipeline e specificare una configurazione di distribuzione di Amazon S3.
Prerequisiti
Devi avere già quanto segue:
-
Un CodeCommit repository. Puoi usare il AWS CodeCommit repository in cui hai creato. Tutorial: creazione di una pipeline semplice (repository CodeCommit)
-
I file di origine per il sito Web statico. Utilizza questo collegamento per scaricare un sito Web statico di esempio. Il download di sample-website.zip produce i file seguenti:
-
Un file
index.html
-
Un file
main.css
-
Un file
graphic.jpg
-
-
Un bucket S3 configurato per l'hosting di siti Web. Consulta Hosting di un sito Web statico su Amazon S3. Accertati di creare il bucket nella stessa regione della pipeline.
Nota
Per ospitare un sito Web, il bucket deve disporre di accesso in lettura pubblico, che consente a tutti di avere l'accesso in lettura. Fatta eccezione per l'hosting di siti Web, è consigliabile mantenere le impostazioni predefinite di accesso che bloccano l'accesso pubblico ai bucket S3.
Passaggio 1: invia i file sorgente al tuo repository CodeCommit
In questa sezione, effettua il push dei file di origine al repository che la pipeline impiega per la fase di origine.
Per inviare file al tuo repository CodeCommit
-
Estrai i file di esempio scaricati. Non caricare il file ZIP nel repository.
-
Invia o carica i file nel tuo CodeCommit repository. Questi file sono l'artefatto di origine creato dalla procedura guidata Create Pipeline (Crea pipeline) per l'operazione di distribuzione in CodePipeline. I file dovrebbero avere questo aspetto nella directory locale:
index.html main.css graphic.jpg
-
Puoi usare Git o la CodeCommit console per caricare i tuoi file:
-
Per usare la riga di comando Git da un repository clonato sul computer locale:
-
Esegui il comando seguente per posizionare tutti i file contemporaneamente:
git add -A
-
Esegui il comando seguente per eseguire il commit dei file con un messaggio di commit:
git commit -m "Added static website files"
-
Esegui il comando seguente per inviare i file dal repository locale al tuo CodeCommit repository:
git push
-
-
Per utilizzare la CodeCommit console per caricare i file:
-
Apri la CodeCommit console e scegli il tuo repository dall'elenco Repository.
-
Seleziona Add file (Aggiungi file), quindi scegli Upload file (Carica file).
-
Seleziona Choose file (Scegli file) e vai al file. Conferma la modifica inserendo il tuo nome utente e indirizzo e-mail. Scegliere Commit changes (Applica modifiche).
-
Ripeti questa fase per ogni file da caricare.
-
-
Fase 2: creazione della pipeline
In questa sezione, andrai a creare una pipeline con le operazioni seguenti:
-
Una fase di origine con un' CodeCommit azione in cui gli artefatti di origine sono i file del tuo sito web.
-
Una fase di distribuzione con un'azione di distribuzione di Amazon S3.
Per creare una pipeline con la procedura guidata
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), scegli Create pipeline (Crea pipeline).
-
Nella pagina Passaggio 1: Scegli l'opzione di creazione, in Opzioni di creazione, scegli l'opzione Crea pipeline personalizzata. Scegli Next (Successivo).
-
Nel Passaggio 2: Scegliete le impostazioni della pipeline, in Nome della tubazione, immettete.
MyS3DeployPipeline
-
In Tipo di tubazione, scegliete V2. Per ulteriori informazioni, consulta Tipi di tubazioni. Scegli Next (Successivo).
-
In Ruolo di servizio, scegli Nuovo ruolo di servizio per consentire la creazione CodePipeline di un ruolo di servizio in IAM.
-
Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).
-
Nel passaggio 3: Aggiungi la fase di origine, in Provider di origine, scegli AWS CodeCommit. In Repository name (Nome repository), scegliere il nome del repository CodeCommit creato in Passaggio 1: crea un CodeCommit repository. In Branch name (Nome ramo), scegliere il nome del ramo che contiene l'aggiornamento di codice più recente. Se l'utente non ha creato personalmente un ramo diverso, è disponibile solo
main
.Dopo aver selezionato il nome e il ramo del repository, viene visualizzata la regola Amazon CloudWatch Events da creare per questa pipeline.
Scegli Next (Successivo).
-
Nel passaggio 4: aggiungi la fase di creazione, scegli Ignora fase di creazione, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora.
Scegli Next (Successivo).
-
Nel passaggio 5: aggiungi la fase di test, scegli Ignora fase di test, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora.
Scegli Next (Successivo).
-
Nel passaggio 6: aggiungi la fase di implementazione:
-
In Deploy provider (Provider di distribuzione), scegli Amazon S3.
-
In Bucket, inserisci il nome del bucket pubblico.
-
Seleziona Extract file before deploy (Estrai file prima di distribuire).
Nota
La distribuzione non riesce se non selezioni Estrai il file prima di distribuire Questo perché l' AWS CodeCommit azione nella pipeline comprime gli artefatti di origine e il file è un file ZIP.
Quando Extract file before deploy (Estrai file prima di distribuire) è selezionato, viene visualizzato Deployment path (Percorso di distribuzione). Inserisci il nome del percorso che vuoi utilizzare. Questo crea una struttura di cartelle in Amazon S3 in cui vengono estratti i file. Per questo tutorial, lascia questo campo vuoto.
-
(Facoltativo) In Canned ACL (ACL predefinita), puoi applicare un set di concessioni predefinite, note come ACL predefinita, agli artefatti caricati.
-
(Facoltativo) In Cache control (Controllo cache), immetti i parametri della memorizzazione nella cache. Con questa impostazione puoi controllare il comportamento della memorizzazione nella cache per le richieste/risposte. Per i valori validi, vedi il campo di intestazione
Cache-Control
per le operazioni HTTP. -
Scegli Next (Successivo).
-
-
Nel passaggio 7: rivedi, esamina le informazioni, quindi scegli Crea pipeline.
-
Una volta eseguita correttamente la pipeline, apri la console Amazon S3 e verifica che i file vengano visualizzati nel bucket pubblico come mostrato:
index.html main.css graphic.jpg
-
Accedi all'endpoint per testare il sito Web. L'endpoint segue questo formato:
http://
.bucket-name
.s3-website-region
.amazonaws.com/Endpoint di esempio:
http://my-bucket.s3-website-us-west-2.amazonaws.com/
Viene visualizzata la pagina Web di esempio.
Fase 3: modifica di un file di origine e verifica della distribuzione
Modifica i file di origine e applica la modifica al repository. In questo modo viene attivata la pipeline per l'esecuzione. Verifica che il sito Web sia aggiornato.
Opzione 2: distribuzione di file di archivio integrati su Amazon S3 da un bucket di origine S3
In questa opzione, i comandi di compilazione in fase di compilazione compilano il TypeScript codice in JavaScript codice e distribuiscono l'output nel bucket di destinazione S3 in una cartella separata con data e ora. Innanzitutto, create il codice e un file buildspec.yml. TypeScript Dopo aver combinato i file di origine in un file ZIP, caricate il file ZIP di origine nel bucket di origine S3 e utilizzate una CodeBuild fase per distribuire un file ZIP dell'applicazione creato nel bucket di destinazione S3. Il codice compilato viene conservato come un archivio nel bucket di destinazione.
Prerequisiti
Devi avere già quanto segue:
-
Un bucket di origine S3. Puoi usare il bucket creato in Tutorial: creazione di una semplice pipeline (bucket S3).
-
Un bucket di destinazione S3. Consulta Hosting di un sito Web statico su Amazon S3. Assicurati di creare il bucket nella stessa Regione AWS pipeline che desideri creare.
Nota
In questo esempio viene illustrata la distribuzione dei file in un bucket privato. Non abilitare il bucket di destinazione per l'hosting di siti Web o collegare policy che rendono il bucket pubblico.
Fase 1: creazione e caricamento dei file di origine nel bucket di origine S3
In questa sezione, è possibile creare e caricare i file di origine nel bucket che la pipeline impiega per la fase di origine. Questa sezione include istruzioni per creare i seguenti file di origine:
-
Un
buildspec.yml
file, che viene utilizzato per CodeBuild creare progetti. -
Un file
index.ts
.
Per creare un file buildspec.yml
-
Crea un file denominato
buildspec.yml
con i seguenti contenuti. Questi comandi di compilazione installano TypeScript e utilizzano il TypeScript compilatore per riscrivere il codice inindex.ts
codice. JavaScriptversion: 0.2 phases: install: commands: - npm install -g typescript build: commands: - tsc index.ts artifacts: files: - index.js
Per creare un file index.ts
-
Crea un file denominato
index.ts
con i seguenti contenuti.interface Greeting { message: string; } class HelloGreeting implements Greeting { message = "Hello!"; } function greet(greeting: Greeting) { console.log(greeting.message); } let greeting = new HelloGreeting(); greet(greeting);
Per caricare i file nel bucket di origine S3
-
I file dovrebbero avere questo aspetto nella directory locale:
buildspec.yml index.ts
Comprimi i file e assegna al file il nome
source.zip
. -
Nella console Amazon S3, per il tuo bucket di origine, scegli Upload. Scegli Add files (Aggiungi file), quindi individua il file ZIP creato.
-
Scegli Carica. Questi file sono l'artefatto di origine creato dalla procedura guidata Create Pipeline (Crea pipeline) per l'operazione di distribuzione in CodePipeline. Il file dovrebbe avere questo aspetto nel bucket:
source.zip
Fase 2: creazione della pipeline
In questa sezione, andrai a creare una pipeline con le operazioni seguenti:
-
Una fase di origine con un'azione Amazon S3 in cui gli artefatti di origine sono i file per l'applicazione scaricabile.
-
Una fase di distribuzione con un'azione di distribuzione di Amazon S3.
Per creare una pipeline con la procedura guidata
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), scegli Create pipeline (Crea pipeline).
-
Nella pagina Passaggio 1: Scegli l'opzione di creazione, in Opzioni di creazione, scegli l'opzione Crea pipeline personalizzata. Scegli Next (Successivo).
-
Nel Passaggio 2: Scegliete le impostazioni della pipeline, in Nome della tubazione, immettete.
MyS3DeployPipeline
-
In Ruolo di servizio, scegli Nuovo ruolo di servizio per consentire la creazione CodePipeline di un ruolo di servizio in IAM.
-
Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).
-
Nel passaggio 3: Aggiungi la fase di origine, in Provider di origine, scegli Amazon S3. In Bucket, scegli il nome del bucket di origine. In S3 object key (Chiave oggetto S3), inserisci il nome del file ZIP di origine. Assicurati di includere l'estensione del file.zip.
Scegli Next (Successivo).
-
Nel passaggio 4: aggiungi la fase di compilazione:
-
In Build provider (Provider compilazione), scegli CodeBuild.
-
Scegliere Create build project (Crea progetto di compilazione). Nella pagina Create project (Crea progetto):
-
In Project name (Nome progetto) immettere un nome per questo progetto di compilazione.
-
In Environment (Ambiente), scegliere Managed image (Immagine gestita). In Operating system (Sistema operativo), seleziona Ubuntu.
-
In Runtime, seleziona Standard. Per la versione Runtime, scegliere:1.0aws/codebuild/standard.
-
In Image version (Versione immagine), scegli Always use the latest image for this runtime version (Usa sempre l'immagine più recente per questa versione di runtime).
-
Per Ruolo di servizio, scegli il tuo ruolo di CodeBuild servizio o creane uno.
-
Per Build specifications (Compila specifiche), scegli Use a buildspec file (Usa un file buildspec).
-
Scegli Continua a CodePipeline. Viene visualizzato un messaggio se il progetto è stato creato correttamente.
-
Scegli Next (Successivo).
-
-
Nel passaggio 5: aggiungi la fase di distribuzione:
-
In Deploy provider (Provider di distribuzione), scegli Amazon S3.
-
In Bucket, inserisci il nome del bucket di destinazione S3.
-
Assicurati che Extract file before deploy (Estrai file prima di distribuire) sia deselezionato.
Quando Extract file before deploy (Estrai file prima di distribuire) è deselezionato, viene visualizzato S3 object key (Chiave oggetto S3). Inserisci il nome del percorso che vuoi utilizzare:
js-application/{datetime}.zip
.Questo crea una
js-application
cartella in Amazon S3 in cui vengono estratti i file. In questa cartella, la variabile{datetime}
crea un timestamp su ciascun file di output quando la pipeline viene eseguita. -
(Facoltativo) In Canned ACL (ACL predefinita), puoi applicare un set di concessioni predefinite, note come ACL predefinita, agli artefatti caricati.
-
(Facoltativo) In Cache control (Controllo cache), immetti i parametri della memorizzazione nella cache. Con questa impostazione puoi controllare il comportamento della memorizzazione nella cache per le richieste/risposte. Per i valori validi, vedi il campo di intestazione
Cache-Control
per le operazioni HTTP. -
Scegli Next (Successivo).
-
-
Nel passaggio 6: esamina, esamina le informazioni, quindi scegli Crea pipeline.
-
Una volta eseguita correttamente la pipeline, visualizza il bucket nella console Amazon S3. Verifica che il file ZIP distribuito sia visualizzato nel bucket di destinazione nella cartella
js-application
. Il JavaScript file contenuto nel file ZIP dovrebbe essere.index.js
Il fileindex.js
contiene il seguente output:var HelloGreeting = /** @class */ (function () { function HelloGreeting() { this.message = "Hello!"; } return HelloGreeting; }()); function greet(greeting) { console.log(greeting.message); } var greeting = new HelloGreeting(); greet(greeting);
Fase 3: modifica di un file di origine e verifica della distribuzione
Modifica i file di origine e caricali nel bucket di origine. In questo modo viene attivata la pipeline per l'esecuzione. Visualizza il bucket di destinazione e verifica che i file di output distribuiti siano disponibili nella cartella js-application
come illustrato:
