Tutorial: creare una pipeline con azioni AWS CloudFormation StackSets 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: creare una pipeline con azioni AWS CloudFormation StackSets di distribuzione

In questo tutorial, utilizzi la AWS CodePipeline console per creare una pipeline con azioni di distribuzione per la creazione di uno stack set e la creazione di istanze di stack. Quando la pipeline viene eseguita, il modello crea uno stack set e inoltre crea e aggiorna le istanze in cui viene distribuito lo stack set.

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

Esistono due modi per gestire le autorizzazioni per uno stack set: ruoli autogestiti e ruoli gestiti. AWS IAM Questo tutorial fornisce esempi di autorizzazioni autogestite.

Per utilizzare nel modo più efficace gli Stacksets in CodePipeline, è necessario avere una chiara comprensione dei concetti alla base AWS CloudFormation StackSets e del loro funzionamento. Consulta StackSets i concetti nella Guida per l'AWS CloudFormation utente.

Prerequisiti

Per le operazioni di stack set, si utilizzano due account diversi: un account di amministrazione e un account di destinazione. I set di stack vengono creati nell'account amministratore. Crei singoli stack che appartengono a uno stack impostato nell'account di destinazione.

Per creare un ruolo di amministratore con il tuo account amministratore
Per creare un ruolo di servizio nell'account di destinazione

Fase 1: Caricare il AWS CloudFormation modello di esempio e il file dei parametri

Crea un bucket sorgente per il modello e i file dei parametri del set di stack. Scarica il file AWS CloudFormation modello di esempio, configura un file di parametri, quindi comprimi i file prima di caricarli nel bucket di origine S3.

Nota

Assicurati di avere ZIP i file sorgente prima di caricarli nel tuo bucket di origine S3, anche se l'unico file sorgente è il modello.

Per creare un bucket sorgente S3
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Seleziona Crea bucket.

  3. In Nome bucket, inserisci un nome del bucket.

    In Regione, scegli la regione in cui desideri creare la tua pipeline. Seleziona Crea bucket.

  4. Dopo aver creato il bucket, viene visualizzato un banner di successo. Scegliere Go to bucket details (Vai ai dettagli del bucket).

  5. Nella scheda Properties (Proprietà) scegliere Versioning (Funzione Versioni multiple). Scegliere Enable versioning (Abilita funzione Versioni multiple), quindi scegliere Save (Salva).

Per creare il file AWS CloudFormation modello
  1. Scarica il seguente file modello di esempio per generare la CloudTrail configurazione per i set di stack:https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml.

  2. Salva il file con nome template.yml.

Per creare il file parameters.txt
  1. Crea un file con i parametri per la tua distribuzione. I parametri sono valori che desideri aggiornare nello stack in fase di esecuzione. Il seguente file di esempio aggiorna i parametri del modello per il set di stack per abilitare la convalida della registrazione e gli eventi globali.

    [ { "ParameterKey": "EnableLogFileValidation", "ParameterValue": "true" }, { "ParameterKey": "IncludeGlobalEvents", "ParameterValue": "true" } ]
  2. Salva il file con nome parameters.txt.

Per creare il file accounts.txt
  1. Create un file con gli account in cui desiderate creare le istanze, come illustrato nel seguente file di esempio.

    [ "111111222222","333333444444" ]
  2. Salva il file con nome accounts.txt.

Per creare e caricare file sorgente
  1. Combina i file in un unico ZIP file. I tuoi file dovrebbero avere questo aspetto nel tuo ZIP file.

    template.yml parameters.txt accounts.txt
  2. Carica il ZIP file nel tuo bucket S3. Questo file è l'elemento sorgente creato dalla procedura guidata Create Pipeline per l'azione di distribuzione in. CodePipeline

Fase 2: creazione della pipeline

In questa sezione, andrai a creare una pipeline con le operazioni seguenti:

  • Una fase di origine con un'azione sorgente S3 in cui l'artefatto di origine è il file modello e tutti i file sorgente di supporto.

  • Una fase di distribuzione con un'azione di distribuzione AWS CloudFormation dello stack set che crea lo stack set.

  • Una fase di distribuzione con un'azione di distribuzione di istanze in AWS CloudFormation stack che crea gli stack e le istanze all'interno degli account di destinazione.

Per creare una pipeline con un'azione CloudFormationStackSet
  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 MyStackSetsPipeline.

  4. Nel tipo di pipeline, scegli V1 ai fini di questo tutorial. Puoi anche scegliere V2; tuttavia, tieni presente che i tipi di tubazione differiscono per caratteristiche e prezzo. Per ulteriori informazioni, consulta Tipi di tubazioni.

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

  6. Nel negozio Artifact, lascia le impostazioni predefinite.

    Nota

    Non si tratta del bucket di origine per il codice sorgente, ma dell'archivio artefatti per la pipeline. È richiesto un archivio artefatti separato, ad esempio un bucket S3, per ogni pipeline. Quando crei o modifichi una pipeline, devi avere un bucket di artefatti nella regione della pipeline e un bucket di artefatti per regione in cui stai eseguendo un'azione. AWS

    Per ulteriori informazioni, consulta Artefatti di input e output e CodePipeline riferimento alla struttura della tubazione.

    Scegli Next (Successivo).

  7. Nella pagina Fase 2: aggiunta fase di origine in Source provider (Provider origine) scegliere Amazon S3.

  8. In Bucket, inserisci il bucket di origine S3 che hai creato per questo tutorial, ad esempio. BucketName Nella chiave dell'oggetto S3, inserisci il percorso e il nome del file, ad esempioZIP. MyFiles.zip

  9. Scegli Next (Successivo).

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

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

    1. In Deploy provider, scegli AWS CloudFormation Stack Set.

    2. In Stack set name, inserisci un nome per lo stack set. Questo è il nome dello stack set creato dal modello.

      Nota

      Prendi nota del nome del tuo set di stack. Lo utilizzerai quando aggiungerai la seconda azione di StackSets distribuzione alla tua pipeline.

    3. In Percorso del modello, inserisci il nome dell'artefatto e il percorso del file in cui hai caricato il file modello. Ad esempio, immettete quanto segue utilizzando il nome dell'artefatto di origine predefinito. SourceArtifact

      SourceArtifact::template.yml
    4. In Destinazioni di distribuzione, inserisci il nome dell'artefatto e il percorso del file in cui hai caricato il file degli account. Ad esempio, inserisci quanto segue utilizzando il nome dell'artefatto di origine predefinito. SourceArtifact

      SourceArtifact::accounts.txt
    5. In Deployment target Regioni AWS, inserisci una regione per la distribuzione dell'istanza dello stack iniziale, ad esempio. us-east-1

    6. Espandi le opzioni di distribuzione. In Parametri, inserisci il nome dell'artefatto e il percorso del file in cui hai caricato il file dei parametri. Ad esempio, inserite quanto segue utilizzando il nome predefinito dell'artefatto di origine. SourceArtifact

      SourceArtifact::parameters.txt

      Per inserire i parametri come input letterale anziché come percorso di file, immettete quanto segue:

      ParameterKey=EnableLogFileValidation,ParameterValue=true ParameterKey=IncludeGlobalEvents,ParameterValue=true
    7. In Capacità, scegliete CAPABILITY _ IAM e CAPABILITY _ NAMED _IAM.

    8. Nel modello di autorizzazione, scegliete SELF _MANAGED.

    9. In Percentuale di tolleranza ai guasti, immettete20.

    10. In Percentuale simultanea massima, immettere25.

    11. Scegli Next (Successivo).

    12. Scegliere Create pipeline (Crea pipeline). Viene visualizzata la pipeline.

    13. Consenti l'esecuzione della pipeline.

Fase 3: Visualizza la distribuzione iniziale

Visualizza le risorse e lo stato della distribuzione iniziale. Dopo aver verificato che la distribuzione abbia creato correttamente il set di stack, puoi aggiungere la seconda azione alla fase di distribuzione.

Per visualizzare le risorse
  1. Apri la CodePipeline console all'indirizzo https://console.aws.amazon.com/codepipeline/.

  2. In Pipelines (Pipeline), seleziona la pipeline e scegli View (Visualizza). Il diagramma mostra le fasi di distribuzione e di origine della pipeline.

  3. Scegli l' AWS CloudFormation azione relativa all'CloudFormationStackSetazione nella tua pipeline. Il modello, le risorse e gli eventi per il tuo set di stack vengono visualizzati nella AWS CloudFormation console.

  4. Nel pannello di navigazione a sinistra, scegli StackSets. Nell'elenco, scegli il nuovo set di stack.

  5. Scegli la scheda Stack instances. Verifica che un'istanza stack per ogni account fornito sia stata creata nella regione us-east-1. Verifica che lo stato di ogni istanza dello stack sia. CURRENT

Fase 4: Aggiungere un' CloudFormationStackInstancesazione

Crea un'azione successiva nella tua pipeline che AWS CloudFormation StackSets consenta di creare le restanti istanze dello stack.

Per creare un'azione successiva nella tua pipeline
  1. Apri la CodePipeline console all'indirizzo https://console.aws.amazon.com/codepipeline/.

    In Pipelines (Pipeline), seleziona la pipeline e scegli View (Visualizza). Il diagramma mostra le fasi di distribuzione e di origine della pipeline.

  2. Scegli questa opzione per modificare la pipeline. La pipeline viene visualizzata in modalità Modifica.

  3. Nella fase di distribuzione, scegliete Modifica.

  4. Nell'azione AWS CloudFormation Stack Set deploy, scegli Aggiungi gruppo di azioni.

  5. Nella pagina Modifica azione, aggiungi i dettagli dell'azione:

    1. In Nome azione, inserisci un nome per l'azione.

    2. Nel provider Action, scegli AWS CloudFormation Stack Instances.

    3. In Input artefacts, scegli. SourceArtifact

    4. In Stack set name, inserite il nome del set di stack. Questo è il nome dello stack set che hai fornito nella prima azione.

    5. In Deployment targets, inserisci il nome dell'artefatto e il percorso del file in cui hai caricato il file degli account. Ad esempio, inserisci quanto segue utilizzando il nome dell'artefatto di origine predefinito. SourceArtifact

      SourceArtifact::accounts.txt
    6. In Deployment target Regioni AWS, inserisci le regioni per la distribuzione delle istanze dello stack rimanenti, ad esempio e come us-east-2 segue: eu-central-1

      us-east2, eu-central-1
    7. In Percentuale di tolleranza agli errori, inserisci. 20

    8. In Percentuale simultanea massima, immettere25.

    9. Seleziona Salva.

    10. .Rilasciare manualmente una modifica. La pipeline aggiornata viene visualizzata con due azioni nella fase di distribuzione.

Fase 5: Visualizza le risorse dello stack set per la distribuzione

È possibile visualizzare le risorse e lo stato della distribuzione dello stack set.

Per visualizzare le risorse
  1. Apri la CodePipeline console all'indirizzo https://console.aws.amazon.com/codepipeline/.

  2. In Pipelines, scegli la pipeline, quindi scegli Visualizza. Il diagramma mostra le fasi di distribuzione e di origine della pipeline.

  3. Scegli l' AWS CloudFormation azione relativa all'AWS CloudFormation Stack Instancesazione nella tua pipeline. Il modello, le risorse e gli eventi per il tuo set di stack vengono visualizzati nella AWS CloudFormation console.

  4. Nel pannello di navigazione a sinistra, scegli StackSets. Nell'elenco, scegli il tuo set di stack.

  5. Scegli la scheda Stack instances. Verifica che tutte le istanze stack rimanenti per ogni account che hai fornito siano state create o aggiornate nelle regioni previste. Verifica che lo stato di ogni istanza dello stack sia. CURRENT

Passaggio 6: Effettua un aggiornamento al tuo set di stack

Aggiorna il tuo set di stack e distribuisci l'aggiornamento alle istanze. In questo esempio, apporti anche una modifica agli obiettivi di distribuzione che desideri designare per l'aggiornamento. Le istanze che non fanno parte dell'aggiornamento passano a uno stato obsoleto.

  1. Apri la CodePipeline console all'indirizzo. https://console.aws.amazon.com/codepipeline/

  2. In Pipeline, scegli la tua pipeline, quindi scegli Modifica. Nella fase di distribuzione, scegli Modifica.

  3. Scegli di modificare l'azione AWS CloudFormation Stack Set nella tua pipeline. In Descrizione, sovrascrivi la descrizione esistente con una nuova descrizione per lo stack set.

  4. Scegli di modificare l'azione AWS CloudFormation Stack Instances nella tua pipeline. In Deployment target Regioni AWS, elimina il us-east-2 valore che è stato inserito al momento della creazione dell'azione.

  5. Salvare le modifiche. Scegli Release change per eseguire la pipeline.

  6. Apri la tua azione in AWS CloudFormation. Scegli la scheda StackSet Informazioni. Nella StackSet descrizione, verifica che sia mostrata la nuova descrizione.

  7. Scegli la scheda Stack instances. In Status, verifica che lo stato delle istanze dello stack in us-east-2 sia. OUTDATED