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 con AWS CloudFormation StackSets azioni di distribuzione
In questo tutorial, utilizzi la AWS CodePipeline console per creare una pipeline con azioni di distribuzione per creare uno stack set e creare 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, un bucket di artefatti S3 fornito dal cliente 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
Esistono due modi per gestire le autorizzazioni per uno stack set: ruoli IAM autogestiti e gestiti. AWS Questo tutorial fornisce esempi di autorizzazioni autogestite.
Per utilizzarlo StackSets nel modo più efficace CodePipeline, dovresti avere una chiara comprensione dei concetti alla base CloudFormation StackSets e del loro funzionamento. Vedi StackSets i concetti nella Guida AWS CloudFormation per l'utente.
Argomenti
Prerequisiti
Per le operazioni con 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. Si creano singoli stack che appartengono a uno stack set nell'account di destinazione.
Per creare un ruolo di amministratore con il tuo account amministratore
-
Segui le istruzioni in Impostare le autorizzazioni di base per le operazioni relative agli stack set. Il tuo ruolo deve avere un nome
AWSCloudFormationStackSetAdministrationRole.
Per creare un ruolo di servizio nell'account di destinazione
-
Crea un ruolo di servizio nell'account di destinazione che consideri attendibile l'account amministratore. Segui le istruzioni in Impostare le autorizzazioni di base per le operazioni di stack set. Il tuo ruolo deve avere un nome
AWSCloudFormationStackSetExecutionRole.
Fase 1: Carica il campione AWS CloudFormation modello e file di parametri
Crea un bucket sorgente per i file di template e parametri dello stack set. Scarica il file AWS CloudFormation modello di esempio, configura un file di parametri e quindi comprimi i file prima di caricarli nel bucket sorgente S3.
Nota
Assicurati di comprimere i file sorgente prima di caricarli nel bucket sorgente S3, anche se l'unico file sorgente è il modello.
Per creare un bucket sorgente S3
Accedi Console di gestione AWS e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/
-
Seleziona Crea bucket.
-
In Nome bucket, inserisci un nome del bucket.
In Regione, scegli la regione in cui desideri creare la pipeline. Seleziona 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).
Per creare AWS CloudFormation file modello
-
Scarica il seguente file modello di esempio per generare la CloudTrail configurazione per gli stack set:https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml
. -
Salva il file con nome
template.yml.
Per creare il file parameters.txt
-
Crea un file con i parametri per la tua distribuzione. I parametri sono valori che desideri aggiornare nel tuo 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" } ] -
Salva il file con nome
parameters.txt.
Per creare il file accounts.txt
-
Create un file con gli account in cui desiderate creare le istanze, come mostrato nel seguente file di esempio.
[ "111111222222","333333444444" ] -
Salva il file con nome
accounts.txt.
Per creare e caricare file sorgente
-
Combina i file in un unico file ZIP. I tuoi file dovrebbero avere questo aspetto nel tuo file ZIP.
template.yml parameters.txt accounts.txt -
Carica il file ZIP 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 di origine S3 in cui l'artefatto di origine è il file modello e qualsiasi file sorgente di supporto.
-
Una fase di distribuzione con un'azione di distribuzione CloudFormation dello stack set che crea lo stack set.
-
Una fase di distribuzione con un'azione di distribuzione delle istanze di CloudFormation stack che crea gli stack e le istanze all'interno degli account di destinazione.
Per creare una pipeline con un'azione CloudFormationStackSet
Accedi Console di gestione AWS 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 Avanti.
-
Nel passaggio 2: scegli le impostazioni della pipeline, in Nome della pipeline, inserisci.
MyStackSetsPipeline -
Nel tipo di pipeline, scegli V1 per gli scopi di questo tutorial. Puoi anche scegliere V2; tuttavia, tieni presente che i tipi di pipeline differiscono per caratteristiche e prezzo. Per ulteriori informazioni, consulta Tipi di pipeline.
-
In Ruolo di servizio, scegli Nuovo ruolo di servizio per consentire la creazione CodePipeline di un ruolo di servizio in IAM.
-
In Artifact store, 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 ogni regione in cui stai eseguendo un'azione. AWS
Per ulteriori informazioni, consulta Artefatti di input e output e CodePipeline riferimento alla struttura della pipeline.
Scegliere Successivo.
-
Nella pagina Step 3: Add source stage, in Source provider, scegli Amazon S3.
-
In Bucket, inserisci il bucket sorgente S3 che hai creato per questo tutorial, ad esempio.
BucketNameNella chiave oggetto S3, inserisci il percorso e il nome del file ZIP, ad esempio.MyFiles.zip -
Scegli Avanti.
-
Nel passaggio 4: Aggiungi fase di compilazione, scegli Ignora fase di compilazione, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora.
Scegli Avanti.
-
Nel passaggio 5: Aggiungi fase di test, scegli Ignora fase di test, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora.
Scegli Avanti.
-
Nel passaggio 6: Aggiungere la fase di distribuzione:
-
In Deploy provider, scegli AWS CloudFormation Stack Set.
-
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 stack set. Lo utilizzerai quando aggiungerai la seconda azione StackSets di distribuzione alla pipeline.
-
In Percorso modello, inserisci il nome dell'elemento e il percorso del file in cui hai caricato il file modello. Ad esempio, inserisci quanto segue utilizzando il nome dell'artefatto di origine predefinito.
SourceArtifactSourceArtifact::template.yml -
In Destinazioni di distribuzione, inserisci il nome dell'elemento e il percorso del file in cui hai caricato il file degli account. Ad esempio, inserisci quanto segue utilizzando il nome predefinito dell'artefatto di origine.
SourceArtifactSourceArtifact::accounts.txt -
In Deployment target Regioni AWS, inserisci una regione per la distribuzione dell'istanza dello stack iniziale, ad esempio.
us-east-1 -
Espandi le opzioni di distribuzione. In Parametri, inserisci il nome dell'elemento e il percorso del file in cui hai caricato il file dei parametri. Ad esempio, immettete quanto segue utilizzando il nome predefinito dell'artefatto di origine.
SourceArtifactSourceArtifact::parameters.txtPer immettere i parametri come input letterale anziché come percorso di file, immettete quanto segue:
ParameterKey=EnableLogFileValidation,ParameterValue=true ParameterKey=IncludeGlobalEvents,ParameterValue=true -
In Capabilities, scegliete CAPABILITY_IAM e CAPABILITY_NAMED_IAM.
-
Nel modello di autorizzazione, scegliete SELF_MANAGED.
-
In Percentuale di tolleranza agli errori, immettere.
20 -
Nel campo Percentuale simultanea massima, immettere
25. -
Scegli Avanti.
-
Nella Fase 7: Revisione, scegli Crea pipeline. Viene visualizzata la pipeline.
-
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 lo stack set, puoi aggiungere la seconda azione alla fase di distribuzione.
Per visualizzare le risorse
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.
-
Scegli l' CloudFormation azione sull'CloudFormationStackSetazione nella pipeline. Il modello, le risorse e gli eventi per il tuo stack set sono visualizzati nella CloudFormation console.
-
Nel pannello di navigazione a sinistra, scegli StackSets. Nell'elenco, scegli il nuovo set di stack.
-
Scegli la scheda Stack instances. Verifica che un'istanza di stack per ogni account fornito sia stata creata nella regione us-east-1. Verifica che lo stato di ogni istanza dello stack sia.
CURRENT
Passaggio 4: aggiungere un' CloudFormationStackInstances azione
Crea un'azione successiva nella pipeline che CloudFormation StackSets consenta di creare le istanze dello stack rimanenti.
Per creare un'azione successiva nella pipeline
-
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.
-
Scegli questa opzione per modificare la pipeline. La pipeline viene visualizzata in modalità Modifica.
-
Nella fase di distribuzione, scegli Modifica.
-
Sotto l'azione di distribuzione di AWS CloudFormation Stack Set, scegli Aggiungi gruppo di azioni.
-
Nella pagina Modifica azione, aggiungi i dettagli dell'azione:
-
In Nome azione, inserisci un nome per l'azione.
-
In Action provider, scegli AWS CloudFormation Stack Instances.
-
In Input artifacts, scegli. SourceArtifact
-
In Nome dello stack set, immettete il nome dello stack set. Questo è il nome dello stack set che hai fornito nella prima azione.
-
In Deployment targets, inserisci il nome dell'elemento e il percorso del file in cui hai caricato il file degli account. Ad esempio, inserisci quanto segue utilizzando il nome predefinito dell'artefatto di origine.
SourceArtifactSourceArtifact::accounts.txt -
In Deployment target Regioni AWS, inserisci le regioni per la distribuzione delle istanze di stack rimanenti, ad esempio e come segue:
us-east-2eu-central-1us-east2, eu-central-1 -
In Percentuale di tolleranza agli errori, inserisci.
20 -
Nel campo Percentuale simultanea massima, immettere
25. -
Selezionare Salva.
-
Rilascia 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 tua distribuzione
Puoi visualizzare le risorse e lo stato della distribuzione del tuo stack set.
Per visualizzare le risorse
Apri la CodePipeline console all'indirizzo https://console.aws.amazon.com/codepipeline/
. -
In Pipelines, scegli la tua pipeline, quindi scegli Visualizza. Il diagramma mostra le fasi di distribuzione e di origine della pipeline.
-
Scegli l' CloudFormation azione sull'
AWS CloudFormation Stack Instancesazione nella pipeline. Il modello, le risorse e gli eventi per il tuo stack set sono visualizzati nella CloudFormation console. -
Nel pannello di navigazione a sinistra, scegli StackSets. Nell'elenco, scegli il tuo stack set.
-
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: aggiorna il tuo stack set
Effettua un aggiornamento al tuo stack set 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.
Apri la CodePipeline console all'indirizzo. https://console.aws.amazon.com/codepipeline/
-
In Pipelines, scegli la tua pipeline, quindi scegli Modifica. Nella fase di distribuzione, scegli Modifica.
-
Scegli di modificare l'azione AWS CloudFormation Stack Set nella pipeline. In Descrizione, sovrascrivi la descrizione esistente con una nuova descrizione per lo stack set.
-
Scegli di modificare l'azione AWS CloudFormation Stack Instances nella pipeline. In Deployment target Regioni AWS, elimina il
us-east-2valore inserito al momento della creazione dell'azione. -
Salvare le modifiche. Scegli Release change per eseguire la pipeline.
-
Apri la tua azione in CloudFormation. Scegli la scheda delle StackSet informazioni. Nella StackSet descrizione, verifica che sia visualizzata la nuova descrizione.
-
Scegli la scheda Stack instances. In Status, verifica che lo stato delle istanze dello stack in us-east-2 sia.
OUTDATED