AWS CloudFormation - 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

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 l' AWS CloudFormation DescribeStackEventsAPI. Se un ruolo IAM di Action è autorizzato ad accedere a quell'API, 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 all'API e mostrerà invece un messaggio di errore generico. A tale scopo, è necessario aggiungere l'cloudformation:DescribeStackEventsautorizzazione al ruolo di servizio o ad altri ruoli IAM per la pipeline.

Se non desideri che i dettagli delle risorse vengano visualizzati nei messaggi di errore della pipeline, puoi revocare questa autorizzazione per il ruolo IAM dell'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à è obbligatoria se disponi di risorse IAM nel modello di stack o crei 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 proprietà CAPABILITY_IAM e CAPABILITY_AUTO_EXPAND.

Per ulteriori informazioni in meritoCapabilities, consulta le proprietà UpdateStacknella sezione AWS CloudFormation API Reference.

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à è obbligatoria per le seguenti modalità di operazione: CHANGE_SET_REPLACE e CHANGE_SET_EXECUTE. La proprietà viene ignorata per tutte le altre modalità operazione.

RoleArn

Obbligatorio: condizionale

RoleArn è l'ARN del ruolo del servizio IAM che viene assunto da AWS CloudFormation quando utilizza risorse nello stack specificato. RoleArn non 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 al modello viene assegnato un URL con firma S3; pertanto, RoleArn non è necessaria l'autorizzazione per accedere al bucket di artefatti. Tuttavia, l'azione RoleArn richiede l'autorizzazione per accedere al bucket di artefatti, per generare l'URL firmato.

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 file JSON 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. Puoi utilizzare un oggetto JSON 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, consulta Proprietà di configurazione (oggetto JSON).

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, vedete 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 il parametro OutputFileName è specificato, esiste un artefatto di output prodotto da questa operazione che contiene un file JSON con il nome specificato. Il file JSON contiene i contenuti della sezione output 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 Variables. 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.