Tutorial: crea una pipeline che utilizzi Amazon S3 come provider di distribuzione - AWS CodePipeline

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, configurerai una pipeline che distribuisce continuamente file utilizzando Amazon S3 come provider di azioni di distribuzione nella tua 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:

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. È possibile utilizzare il AWS CodeCommit repository in cui è stato creato. Tutorial: crea una pipeline semplice (CodeCommitrepository)

  • 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
  1. Estrai i file di esempio scaricati. Non caricare il ZIP file nel tuo repository.

  2. Invia o carica i file nel tuo CodeCommit repository. Questi file sono l'elemento sorgente creato dalla procedura guidata Create Pipeline per l'azione di distribuzione in. CodePipeline I file dovrebbero avere questo aspetto nella directory locale:

    index.html main.css graphic.jpg
  3. Puoi usare Git o la CodeCommit console per caricare i tuoi file:

    1. Per usare la riga di comando Git da un repository clonato sul computer locale:

      1. Esegui il comando seguente per posizionare tutti i file contemporaneamente:

        git add -A
      2. Esegui il comando seguente per eseguire il commit dei file con un messaggio di commit:

        git commit -m "Added static website files"
      3. Esegui il comando seguente per inviare i file dal repository locale al tuo CodeCommit repository:

        git push
    2. Per utilizzare la CodeCommit console per caricare i file:

      1. Apri la CodeCommit console e scegli il tuo repository dall'elenco Repository.

      2. Seleziona Add file (Aggiungi file), quindi scegli Upload file (Carica file).

      3. 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).

      4. 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
  1. Accedi AWS Management Console e apri la CodePipeline console all'indirizzo http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Nella pagina Welcome (Benvenuto), pagina Getting started (Nozioni di base) o pagina Pipelines (Pipeline), scegli Create pipeline (Crea pipeline).

  3. In Step 1: Choose pipeline settings (Fase 1: scelta delle impostazioni della pipeline), in Pipeline name (Nome pipeline), immettere MyS3DeployPipeline.

  4. Nel tipo di pipeline, scegli V2. Per ulteriori informazioni, consulta Tipi di tubazioni. Scegli Next (Successivo).

  5. In Ruolo di servizio, scegli Nuovo ruolo di servizio in cui consentire CodePipeline la creazione di un ruolo di servizio. IAM

  6. Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).

  7. In Step 2: Add source stage (Fase 2: aggiunta della fase di origine), in Source provider (Provider origine), scegliere AWS CodeCommit. In Nome archivio, scegli il nome del CodeCommit repository in cui hai creato. Fase 1: Creare 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).

  8. 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).

  9. In Step 4: Add deploy stage (Fase 4: aggiunta della fase di distribuzione):

    1. In Deploy provider (Provider di distribuzione), scegli Amazon S3.

    2. In Bucket, inserisci il nome del bucket pubblico.

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

      La pagina Fase 4: Distribuzione per un'azione di distribuzione di S3 con un'origine AWS CodeCommit
    4. (Facoltativo) In Canned ACL, puoi applicare una serie di sovvenzioni predefinite, note come predefinite, agli artefatti caricati. ACL

    5. (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, consultate il campo di intestazione per le operazioni. Cache-ControlHTTP

    6. Scegli Next (Successivo).

  10. In Step 5: Review (Fase 5: revisione), esaminare le informazioni e quindi scegliere Create pipeline (Crea pipeline).

  11. Dopo che la pipeline è stata eseguita correttamente, apri la console Amazon S3 e verifica che i file vengano visualizzati nel bucket pubblico come mostrato:

    index.html main.css graphic.jpg
  12. 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 ZIP file, caricate il ZIP file sorgente nel bucket di origine S3 e utilizzate una CodeBuild fase per distribuire un file di applicazione creato nel bucket di destinazione S3. ZIP Il codice compilato viene conservato come un archivio nel bucket di destinazione.

Prerequisiti

Devi avere già quanto segue:

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 in index.ts codice. JavaScript

    version: 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
  1. I file dovrebbero avere questo aspetto nella directory locale:

    buildspec.yml index.ts

    Comprimi i file e assegna al file il nome source.zip.

  2. Nella console Amazon S3, per il tuo bucket di origine, scegli Upload. Scegli Aggiungi file, quindi cerca il ZIP file che hai creato.

  3. Scegli Carica. Questi file sono l'elemento di origine creato dalla procedura guidata Create Pipeline per l'azione 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
  1. Accedi AWS Management Console e apri la CodePipeline console all'indirizzo http://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Nella pagina Welcome (Benvenuto), pagina Getting started (Nozioni di base) o pagina Pipelines (Pipeline), scegli Create pipeline (Crea pipeline).

  3. In Step 1: Choose pipeline settings (Fase 1: scelta delle impostazioni della pipeline), in Pipeline name (Nome pipeline), immettere MyS3DeployPipeline.

  4. In Ruolo di servizio, scegli Nuovo ruolo di servizio in cui consentire CodePipeline la creazione di un ruolo di servizioIAM.

  5. Lasciare i valori predefiniti delle impostazioni in Advanced settings (Impostazioni avanzate), quindi scegliere Next (Successivo).

  6. In Step 2: Add source stage (Fase 2: aggiunta della fase di origine), in Source provider (Provider di origine), scegli Amazon S3. In Bucket, scegli il nome del bucket di origine. Nella chiave dell'oggetto S3, inserisci il nome del tuo ZIP file sorgente. Assicurati di includere l'estensione del file.zip.

    Scegli Next (Successivo).

  7. In Step 3: Add build stage (Fase 3: aggiunta della fase di compilazione):

    1. In Build provider (Provider compilazione), scegli CodeBuild.

    2. Scegliere Create build project (Crea progetto di compilazione). Nella pagina Create project (Crea progetto):

    3. In Project name (Nome progetto) immettere un nome per questo progetto di compilazione.

    4. In Environment (Ambiente), scegliere Managed image (Immagine gestita). In Operating system (Sistema operativo), seleziona Ubuntu.

    5. In Runtime, seleziona Standard. Per Runtime version (Versione runtime), scegli aws/codebuild/standard:1.0.

    6. 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).

    7. Per Ruolo di servizio, scegli il tuo ruolo CodeBuild di servizio o creane uno.

    8. Per Build specifications (Compila specifiche), scegli Use a buildspec file (Usa un file buildspec).

    9. Scegli Continua a CodePipeline. Viene visualizzato un messaggio se il progetto è stato creato correttamente.

    10. Scegli Next (Successivo).

  8. In Step 4: Add deploy stage (Fase 4: aggiunta della fase di distribuzione):

    1. In Deploy provider (Provider di distribuzione), scegli Amazon S3.

    2. In Bucket, inserisci il nome del bucket di destinazione S3.

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

      In questo modo viene creata 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.

      Fase 4: pagina di distribuzione per un'azione di distribuzione di Amazon S3 con un'origine Amazon S3
    4. (Facoltativo) In Canned ACL, puoi applicare una serie di sovvenzioni predefinite, note come predefinite, agli artefatti caricati. ACL

    5. (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, consultate il campo di intestazione per le operazioni. Cache-ControlHTTP

    6. Scegli Next (Successivo).

  9. In Step 5: Review (Fase 5: revisione), esaminare le informazioni e quindi scegliere Create pipeline (Crea pipeline).

  10. Una volta eseguita correttamente la pipeline, visualizza il bucket nella console Amazon S3. Verifica che il ZIP file distribuito sia visualizzato nel bucket di destinazione all'interno della cartella. js-application Il JavaScript file contenuto nel ZIP file dovrebbe essere. index.js Il file index.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:

ZIPDownload di esempio