Tutorial: crea una pipeline che utilizza le variabili delle azioni di AWS CloudFormation 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 utilizza le variabili delle azioni di AWS CloudFormation distribuzione

In questo tutorial, utilizzi la AWS CodePipeline console per creare una pipeline con un'azione di distribuzione. Quando viene eseguita la pipeline, il modello crea uno stack e un file outputs. Gli output generati dal modello di stack sono le variabili generate dall' AWS CloudFormation azione in. CodePipeline

Nell'operazione in cui viene creato lo stack dal modello, designi uno spazio dei nomi variabile. Le variabili prodotte dal file outputs possono quindi essere utilizzate da operazioni successive. In questo esempio, crei un set di modifiche basato sulla StackName variabile prodotta dall'azione AWS CloudFormation . Dopo un'approvazione manuale, puoi eseguire il set di modifiche e quindi creare un'operazione che elimina lo stack in base alla variabile StackName.

Prerequisiti: creare un ruolo AWS CloudFormation di servizio e un repository CodeCommit

Devi avere già quanto segue:

  • Un CodeCommit repository. Puoi usare il AWS CodeCommit repository in cui hai creato. Tutorial: crea una pipeline semplice (CodeCommitrepository)

  • Questo esempio crea uno stack Amazon DocumentDB da un modello. È necessario utilizzare AWS Identity and Access Management (IAM) per creare un ruolo di AWS CloudFormation servizio con le seguenti autorizzazioni per Amazon DocumentDB.

    "rds:DescribeDBClusters", "rds:CreateDBCluster", "rds:DeleteDBCluster", "rds:CreateDBInstance"

Fase 1: scarica, modifica e carica il modello di esempio AWS CloudFormation

Scarica il file AWS CloudFormation modello di esempio e caricalo nel tuo CodeCommit repository.

  1. Passa alla pagina del modello di esempio per la tua regione. Ad esempio, la pagina per us-west-2 è all'indirizzo https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html. In Amazon DocumentDB, scarica il modello per un cluster Amazon DocumentDB. Il nome del file è documentdb_full_stack.yaml.

  2. Decomprimi il file documentdb_full_stack.yaml e aprilo in un editor di testo. Apportare le seguenti modifiche:

    1. Per questo esempio, aggiungi il seguente parametro Purpose: alla sezione Parameters del modello.

      Purpose: Type: String Default: testing AllowedValues: - testing - production Description: The purpose of this instance.
    2. Per questo esempio, aggiungi il seguente output StackName alla sezione Outputs: del modello.

      StackName: Value: !Ref AWS::StackName
  3. Carica il file modello nel tuo AWS CodeCommit repository. Devi caricare il file del modello decompresso e modificato nella directory root del repository.

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

    Il tuo file dovrebbe essere simile al seguente a livello di root nel tuo repository:

    documentdb_full_stack.yaml

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 l'elemento sorgente è il file modello.

  • Una fase di distribuzione con un' AWS CloudFormation azione di distribuzione.

A ogni operazione delle fasi di origine e distribuzione create dalla procedura guidata viene assegnato uno spazio dei nomi variabile SourceVariables e DeployVariables, rispettivamente. Poiché alle operazioni è assegnato uno spazio dei nomi, le variabili configurate in questo esempio sono disponibili per le operazioni downstream. Per ulteriori informazioni, consulta Variables.

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

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

  5. In Service role (Ruolo del servizio), procedere in uno dei seguenti modi:

    • Scegli Nuovo ruolo di servizio per consentire la creazione CodePipeline di un ruolo di servizio in IAM.

    • Scegli Existing service role (Ruolo di servizio esistente). In Role name (Nome ruolo), scegli il ruolo del servizio dall'elenco.

  6. In Artifact store (Archivio di artefatti):

    1. Scegli Posizione predefinita per utilizzare l'archivio di artifact predefinito, ad esempio il bucket di artifact Amazon S3 designato come predefinito, per la tua pipeline nella regione selezionata per la tua pipeline.

    2. Scegli Ubicazione personalizzata se disponi già di un archivio di artefatti, ad esempio un bucket di artefatti Amazon S3, nella stessa regione della pipeline.

    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.

    Seleziona Successivo.

  7. In Fase 2: Aggiungi fase di origine:

    1. In Source provider (Provider origine), scegliere AWS CodeCommit.

    2. In Nome repository, scegli il nome del repository in cui hai creato. CodeCommit Fase 1: Creare un CodeCommit repository

    3. In Branch name (Nome ramo), scegliere il nome del ramo che contiene l'aggiornamento di codice più recente.

    Dopo aver selezionato il nome e il ramo del repository, viene visualizzata la regola Amazon CloudWatch Events da creare per questa pipeline.

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

    Seleziona Successivo.

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

    1. In Nome azione, scegli Distribuisci. In Deploy provider (Provider di distribuzione), scegliere CloudFormation.

    2. In Modalità azione, scegli Crea o aggiorna uno stack.

    3. In Nome stack, immetti un nome per lo stack. Questo è il nome dello stack che viene creato dal modello.

    4. In Nome file di output, immetti un nome per il file di output, ad esempio outputs. Questo è il nome del file che viene creato dall'operazione dopo la creazione dello stack.

    5. Espandere Advanced (Avanzate). In Sostituzioni di parametro, immetti le sostituzioni del modello come coppie chiave-valore. Ad esempio, questo modello richiede le sostituzioni seguenti.

      { "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "testing"}

      Se non immetti le sostituzioni, il modello crea uno stack con valori predefiniti.

    6. Seleziona Successivo.

    7. Scegliere Create pipeline (Crea pipeline). Consenti l'esecuzione della pipeline. La pipeline in due fasi è completa e pronta per l'aggiunta di altre fasi.

Passaggio 3: aggiungere un'azione di AWS CloudFormation distribuzione per creare il set di modifiche

Crea un'azione successiva nella tua pipeline che AWS CloudFormation consenta di creare il set di modifiche prima dell'azione di approvazione manuale.

  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 o continuare a visualizzare la pipeline in modalità Modifica.

  3. Scegli di modificare la fase di distribuzione.

  4. Aggiungi un'azione di distribuzione che creerà un set di modifiche per lo stack creato nell'azione precedente. Aggiungi questa azione dopo l'azione esistente nella fase.

    1. In Nome azione, immetti Change_Set. In Action provider, scegli AWS CloudFormation .

    2. In Input artifact, scegli. SourceArtifact

    3. In Action mode (Modalità operazione) selezionare Create or replace a change set (Crea o sostituisci un set di modifiche).

    4. In Nome stack, immetti la sintassi della variabile come indicato di seguito. Si tratta del nome dello stack per cui viene creato il set di modifiche in cui lo spazio dei nomi predefinito DeployVariables viene assegnato all'operazione.

      #{DeployVariables.StackName}
    5. In Nome del set di modifiche, immetti il nome del set di modifiche.

      my-changeset
    6. In Sostituzioni di parametro, modifica il parametro Purpose da testing a production.

      { "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "production"}
    7. Seleziona Fatto per salvare l'operazione.

Fase 4: aggiunta di un'operazione di approvazione manuale

Crea un'operazione di approvazione manuale nella pipeline.

  1. Scegli questa opzione per modificare la pipeline o continuare a visualizzare la pipeline in modalità Modifica.

  2. Scegliete di modificare la fase Deploy.

  3. Aggiungi un'operazione di approvazione manuale dopo l'operazione di distribuzione che crea il set di modifiche. Questa azione consente di verificare l'impostazione della modifica della risorsa creata AWS CloudFormation prima che la pipeline esegua il set di modifiche.

Passaggio 5: aggiungere un'azione di CloudFormation distribuzione per eseguire il set di modifiche

Crea un'azione successiva nella tua pipeline che AWS CloudFormation consenta di eseguire il set di modifiche dopo l'azione di approvazione manuale.

  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 o continuare a visualizzare la pipeline in modalità Modifica.

  3. Scegli di modificare la fase di distribuzione.

  4. Aggiungi un'azione di distribuzione che eseguirà il set di modifiche approvato nella precedente azione manuale:

    1. In Nome azione, immetti Execute_Change_Set. In Action provider, scegli AWS CloudFormation.

    2. In Input artifact, scegli. SourceArtifact

    3. In Action mode (Modalità operazione), selezionare Execute a change set (Esegui un set di modifiche).

    4. In Nome stack, immetti la sintassi della variabile come indicato di seguito. Questo è il nome dello stack per cui viene creato il set di modifiche.

      #{DeployVariables.StackName}
    5. In Nome del set di modifiche, immetto il nome del set di modifiche creato nell'operazione precedente.

      my-changeset
    6. Seleziona Fatto per salvare l'operazione.

    7. Continua l'esecuzione della pipeline.

Passaggio 6: aggiungere un'azione di CloudFormation distribuzione per eliminare lo stack

Crea un'azione finale nella tua pipeline che permetta di AWS CloudFormation ottenere il nome dello stack dalla variabile nel file di output ed eliminare lo stack.

  1. Apri la console all'indirizzo https://console.aws.amazon.com/codepipeline/ 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.

  3. Scegli di modificare la fase di distribuzione.

  4. Aggiungi un'operazione di distribuzione che elimina lo stack:

    1. In Nome azione, scegli DeleteStack. In Deploy provider (Provider di distribuzione), scegliere CloudFormation.

    2. In Modalità azione, scegli Elimina uno stack.

    3. In Nome stack, immetti la sintassi della variabile come indicato di seguito. Questo è il nome dello stack che viene eliminato dall'operazione.

    4. Seleziona Fatto per salvare l'operazione.

    5. Seleziona Salva per salvare la pipeline.

    La pipeline viene eseguita quando viene salvata.