AWS CloudFormation distribuire un riferimento all'azione - 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à.

AWS CloudFormation distribuire un riferimento all'azione

Esegue un'operazione su uno AWS CloudFormation stack. Uno stack è una raccolta di AWS risorse che è possibile gestire come singola unità. Le risorse di uno stack sono definite dal modello AWS CloudFormation dello stack. Un set di modifiche crea un confronto che può essere visualizzato senza modificare lo stack originale. Per informazioni sui tipi di AWS CloudFormation azioni che possono essere eseguite su pile e set di modifiche, consulta il ActionMode parametro.

Per creare un messaggio di errore per un' AWS CloudFormation azione in cui un'operazione di stack non è riuscita, CodePipeline chiama il. AWS CloudFormation DescribeStackEvents API Se un IAM ruolo d'azione è autorizzato ad accederviAPI, i dettagli sulla prima risorsa fallita verranno inclusi nel CodePipeline messaggio di errore. Altrimenti, se la policy relativa al ruolo non dispone dell'autorizzazione appropriata, CodePipeline ignorerà l'accesso API e mostrerà invece un messaggio di errore generico. A tale scopo, è necessario aggiungere l'cloudformation:DescribeStackEventsautorizzazione al ruolo di servizio o ad altri IAM ruoli della pipeline.

Se non desideri che i dettagli delle risorse vengano visualizzati nei messaggi di errore della pipeline, puoi revocare questa autorizzazione per il IAM ruolo d'azione rimuovendo l'autorizzazione. cloudformation:DescribeStackEvents

Tipo di operazione

  • Categoria: Deploy

  • Proprietario: AWS

  • Provider: CloudFormation

  • Versione: 1

Parametri di configurazione

ActionMode

Campo obbligatorio: sì

ActionModeè il nome dell'azione AWS CloudFormation eseguita su uno stack o un set di modifiche. Sono disponibili le modalità operazione seguenti:

  • CHANGE_SET_EXECUTE esegue un set di modifiche per lo stack di risorse basato su un set di aggiornamenti delle risorse specificati. Con questa azione, AWS CloudFormation inizia a modificare lo stack.

  • CHANGE_SET_REPLACE crea il set di modifiche, se non esiste, in base al nome dello stack e al modello che invii. Se il set di modifiche esiste, lo AWS CloudFormation elimina e ne crea uno nuovo.

  • CREATE_UPDATE crea lo stack, se non esiste. Se lo stack esiste, lo AWS CloudFormation aggiorna. Utilizza questa operazione per aggiornare gli stack esistenti. Al contrarioREPLACE_ON_FAILURE, se lo stack esiste e si trova in uno stato di errore, CodePipeline non eliminerà e sostituirà lo stack.

  • DELETE_ONLY elimina uno stack. Se specifichi uno stack che non esiste, l'operazione viene completata senza l'eliminazione di uno stack.

  • REPLACE_ON_FAILURE crea uno stack, se non esiste. Se lo stack esiste e si trova in uno stato di errore, AWS CloudFormation elimina lo stack e quindi ne crea uno nuovo. Se lo stack non è in uno stato di errore, lo aggiorna. AWS CloudFormation

    Lo stack si trova nello stato non riuscito quando uno dei seguenti tipi di stato viene visualizzato in AWS CloudFormation:

    • ROLLBACK_FAILED

    • CREATE_FAILED

    • DELETE_FAILED

    • UPDATE_ROLLBACK_FAILED

    Utilizza questa operazione per sostituire automaticamente gli stack non riusciti senza effettuarne il ripristino o eseguire la relativa risoluzione di problemi.

    Importante

    Ti consigliamo di utilizzare REPLACE_ON_FAILURE solo a scopo di test perché potrebbe eliminare lo stack.

StackName

Campo obbligatorio: sì

StackName è il nome di uno stack esistente o che desideri creare.

Funzionalità

Obbligatorio: condizionale

L'utilizzo di Capabilities conferma che il modello potrebbe disporre delle capacità per creare e aggiornare automaticamente alcune risorse e che queste funzionalità sono determinate in base ai tipi di risorse nel modello.

Questa proprietà è necessaria se nel modello di stack sono presenti IAM risorse o se si crea uno stack direttamente da un modello contenente macro. Affinché l' AWS CloudFormation azione funzioni correttamente in questo modo, è necessario riconoscere esplicitamente che si desidera che venga eseguita con una delle seguenti funzionalità:

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

  • CAPABILITY_AUTO_EXPAND

Puoi specificare più funzionalità utilizzando una virgola (nessuno spazio) tra le funzionalità. L'esempio in Dichiarazione dell'operazione mostra una voce con entrambe le EXPAND proprietà CAPABILITY _ IAM e CAPABILITY _ AUTO _.

Per ulteriori informazioni in meritoCapabilities, vedere le proprietà UpdateStacknella sezione AWS CloudFormation APIRiferimento.

ChangeSetName

Obbligatorio: condizionale

ChangeSetName il nome di un set di modifiche esistente o di uno nuovo che desideri creare per lo stack specificato.

Questa proprietà è necessaria per le seguenti modalità di azione: CHANGE _ SET _ REPLACE e CHANGE _ SET _EXECUTE. La proprietà viene ignorata per tutte le altre modalità operazione.

RoleArn

Obbligatorio: condizionale

RoleArnÈ il ruolo ARN di IAM servizio che AWS CloudFormation assume quando opera su risorse nello stack specificato. RoleArnnon viene applicato durante l'esecuzione di un set di modifiche. Se non lo utilizzate CodePipeline per creare il set di modifiche, assicuratevi che al set o allo stack di modifiche sia associato un ruolo.

Nota

Questo ruolo deve trovarsi nello stesso account del ruolo per l'azione in esecuzione, come configurato nella dichiarazione RoleArn dell'azione.

Questa proprietà è obbligatoria per le seguenti modalità operazione:

  • CREATE_UPDATE

  • REPLACE_ON_ FAILURE

  • DELETE_ONLY

  • CHANGE_SET_REPLACE

Nota

AWS CloudFormation viene assegnato un codice S3 firmato URL al modello; pertanto, RoleArn non è necessaria l'autorizzazione per accedere al bucket degli artefatti. Tuttavia, l'azione RoleArn richiede l'autorizzazione per accedere al bucket di artefatti, per generare il file firmato. URL

TemplatePath

Obbligatorio: condizionale

TemplatePathrappresenta il file modello. AWS CloudFormation Includi il file in un artefatto di input per questa operazione. Il nome del file segue questo formato:

Artifactname::TemplateFileName

Artifactnameè il nome dell'artefatto di input così come appare in. CodePipeline Ad esempio, una fase di origine con il nome di artefatto di SourceArtifact e un nome file di template-export.json crea un nome TemplatePath come mostrato in questo esempio:

"TemplatePath": "SourceArtifact::template-export.json"

Questa proprietà è obbligatoria per le seguenti modalità operazione:

  • CREATE_UPDATE

  • REPLACE_ON_ FAILURE

  • CHANGE_SET_REPLACE

La proprietà viene ignorata per tutte le altre modalità operazione.

Nota

Il file AWS CloudFormation modello contenente il corpo del modello ha una lunghezza minima di 1 byte e una lunghezza massima di 1 MB. Per le azioni AWS CloudFormation di distribuzione in CodePipeline, la dimensione massima dell'artefatto di input è sempre 256 MB. Per ulteriori informazioni, consulta Quote in AWS CodePipeline e Limiti di AWS CloudFormation.

OutputFileName

Campo obbligatorio: no

OutputFileNameUtilizzatelo per specificare un nome di file di output, ad esempioCreateStackOutput.json, da CodePipeline aggiungere all'artefatto di output della pipeline per questa azione. Il JSON file contiene il contenuto della Outputs sezione dello stack. AWS CloudFormation

Se non specificate un nome, CodePipeline non genera un file o un artefatto di output.

ParameterOverrides

Campo obbligatorio: no

I parametri sono definiti nel modello di stack e consentono di fornire valori per gli stessi al momento della creazione o dell'aggiornamento dello stack. È possibile utilizzare un JSON oggetto per impostare i valori dei parametri nel modello. Questi valori sostituiscono quelli impostati nel file di configurazione del modello. Per ulteriori informazioni sull'utilizzo delle sostituzioni dei parametri, vedere Proprietà di configurazione (JSONoggetto).

Ti consigliamo di utilizzare il file di configurazione del modello per la maggior parte dei valori dei parametri. Utilizza le sostituzioni dei parametri solo per i valori che non sono noti finché la pipeline non è in esecuzione. Per ulteriori informazioni, vedere Using Parameter Override Functions with CodePipeline Pipelines nella Guida per l'utente.AWS CloudFormation

Nota

Tutti i nomi dei parametri devono essere presenti nel modello di stack.

TemplateConfiguration

Campo obbligatorio: no

TemplateConfiguration è il file di configurazione del modello. Includi il file in un artefatto di input per questa operazione. Può contenere i valori di parametro del modello e una policy stack. Per ulteriori informazioni sul formato del file di configurazione del modello, vedete AWS CloudFormation Artifacts.

Il nome del file di configurazione del modello segue questo formato:

Artifactname::TemplateConfigurationFileName

Artifactnameè il nome dell'artefatto di input così come appare in. CodePipeline Ad esempio, una fase di origine con il nome di artefatto di SourceArtifact e un nome file di test-configuration.json crea un nome TemplateConfiguration come mostrato in questo esempio:

"TemplateConfiguration": "SourceArtifact::test-configuration.json"

Input artifact (Artefatti di input)

Artefatti di output

  • Numero di artefatti: 0 to 1

  • Descrizione: se viene specificato il OutputFileName parametro, esiste un artefatto di output prodotto da questa azione che contiene un JSON file con il nome specificato. Il JSON file contiene il contenuto della sezione Outputs dello stack. AWS CloudFormation

    Per ulteriori informazioni sulla sezione output che puoi creare per l'operazione AWS CloudFormation , consulta Output.

Variabili di output

Quando è configurata, questa azione produce variabili che possono essere referenziate dalla configurazione dell'azione di un'azione downstream nella pipeline. È possibile configurare un'azione con uno spazio dei nomi per rendere tali variabili disponibili per la configurazione delle azioni downstream.

Per AWS CloudFormation le azioni, le variabili vengono prodotte a partire da qualsiasi valore indicato nella Outputs sezione di un modello di pila. Tieni presente che le uniche modalità di CloudFormation azione che generano output sono quelle che comportano la creazione o l'aggiornamento di uno stack, come la creazione dello stack, gli aggiornamenti dello stack e l'esecuzione dei set di modifiche. Le modalità di operazione corrispondenti che generano variabili sono:

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

Per ulteriori informazioni, consulta Riferimento alle variabili. Per un tutorial che mostra come creare una pipeline con un'azione di CloudFormation distribuzione in una pipeline che utilizza variabili di output, consulta. CloudFormation Tutorial: crea una pipeline che utilizza le variabili delle azioni di AWS CloudFormation distribuzione

Dichiarazione dell'operazione

YAML
Name: ExecuteChangeSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormation Version: '1' RunOrder: 2 Configuration: ActionMode: CHANGE_SET_EXECUTE Capabilities: CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND ChangeSetName: pipeline-changeset ParameterOverrides: '{"ProjectId": "my-project","CodeDeployRole": "CodeDeploy_Role_ARN"}' RoleArn: CloudFormation_Role_ARN StackName: my-project--lambda TemplateConfiguration: 'my-project--BuildArtifact::template-configuration.json' TemplatePath: 'my-project--BuildArtifact::template-export.yml' OutputArtifacts: [] InputArtifacts: - Name: my-project-BuildArtifact
JSON
{ "Name": "ExecuteChangeSet", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormation", "Version": "1" }, "RunOrder": 2, "Configuration": { "ActionMode": "CHANGE_SET_EXECUTE", "Capabilities": "CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND", "ChangeSetName": "pipeline-changeset", "ParameterOverrides": "{\"ProjectId\": \"my-project\",\"CodeDeployRole\": \"CodeDeploy_Role_ARN\"}", "RoleArn": "CloudFormation_Role_ARN", "StackName": "my-project--lambda", "TemplateConfiguration": "my-project--BuildArtifact::template-configuration.json", "TemplatePath": "my-project--BuildArtifact::template-export.yml" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "my-project-BuildArtifact" } ] },

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.