

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

# CloudFormation distribuire un riferimento all'azione
<a name="action-reference-CloudFormation"></a>

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

Per creare un messaggio di errore per un' CloudFormation azione in cui un'operazione di stack non è riuscita, CodePipeline chiama l' CloudFormation `DescribeStackEvents`API. Se un ruolo IAM di azione è 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:DescribeStackEvents`autorizzazione 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`

**Topics**
+ [

## Tipo di operazione
](#action-reference-CloudFormation-type)
+ [

## Parametri di configurazione
](#action-reference-CloudFormation-config)
+ [

## Input artifact (Artefatti di input)
](#action-reference-CloudFormation-input)
+ [

## Artefatti di output
](#action-reference-CloudFormation-output)
+ [

## Variabili di output
](#action-reference-CloudFormation-variables)
+ [

## Autorizzazioni per i ruoli di servizio: azione CloudFormation
](#edit-role-cloudformation)
+ [

## Dichiarazione dell'operazione
](#action-reference-CloudFormation-example)
+ [

## Consulta anche
](#action-reference-CloudFormation-links)

## Tipo di operazione
<a name="action-reference-CloudFormation-type"></a>
+ Categoria: `Deploy`
+ Proprietario: `AWS`
+ Provider: `CloudFormation`
+ Versione: `1`

## Parametri di configurazione
<a name="action-reference-CloudFormation-config"></a>

**ActionMode**  
Obbligatorio: sì  
`ActionMode`è il nome dell'azione 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, 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 CloudFormation elimina e ne crea uno nuovo. 
+ `CREATE_UPDATE` crea lo stack, se non esiste. Se lo stack esiste, lo CloudFormation aggiorna. Utilizza questa operazione per aggiornare gli stack esistenti. Al contrario`REPLACE_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, CloudFormation elimina lo stack e ne crea uno nuovo. Se lo stack non è in uno stato di errore, lo aggiorna. CloudFormation 

  Lo stack si trova nello stato non riuscito quando uno dei seguenti tipi di stato viene visualizzato in 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**  
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' 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](#action-reference-CloudFormation-example) mostra una voce con entrambe le proprietà CAPABILITY\$1IAM e CAPABILITY\$1AUTO\$1EXPAND.  
Per ulteriori informazioni in merito`Capabilities`, consulta le proprietà [UpdateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html)nella 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\$1SET\$1REPLACE e CHANGE\$1SET\$1EXECUTE. 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 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.  
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\$1UPDATE
+ REPLACE\$1ON\$1FAILURE
+ DELETE\$1ONLY
+ CHANGE\$1SET\$1REPLACE
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  
`TemplatePath`rappresenta il file modello. 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 come visualizzato 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\$1UPDATE
+ REPLACE\$1ON\$1FAILURE
+ CHANGE\$1SET\$1REPLACE
La proprietà viene ignorata per tutte le altre modalità operazione.  
Il file CloudFormation modello contenente il corpo del modello ha una lunghezza minima di 1 byte e una lunghezza massima di 1 MB. Per le azioni CloudFormation di distribuzione in CodePipeline, la dimensione massima dell'artefatto di input è sempre 256 MB. Per ulteriori informazioni, consulta [Quote in AWS CodePipeline](limits.md) e [Limiti di CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html).

**OutputFileName**  
Obbligatorio: no  
`OutputFileName`Utilizzatelo per specificare un nome di file di output, ad esempio`CreateStackOutput.json`, da CodePipeline aggiungere all'artefatto di output della pipeline per questa azione. Il file JSON contiene il contenuto della `Outputs` sezione dello stack. CloudFormation   
Se non si specifica un nome, CodePipeline non genera un file o un artefatto di output.

**ParameterOverrides**  
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)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html#w4363ab1c13c13b9).  
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](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html) nella Guida per l'utente.AWS CloudFormation *  
Tutti i nomi dei parametri devono essere presenti nel modello di stack.

**TemplateConfiguration**  
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.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html)   
Il nome del file di configurazione del modello segue questo formato:   
`Artifactname::TemplateConfigurationFileName`  
`Artifactname` è il nome dell'artefatto di input come visualizzato 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)
<a name="action-reference-CloudFormation-input"></a>
+ **Numero di artefatti:** `0 to 10`
+ **Descrizione:** come input, l' CloudFormation azione accetta facoltativamente artefatti per i seguenti scopi:
  + Per fornire il file di modello dello stack da eseguire. Consulta il parametro `TemplatePath`.
  + Per fornire il file di configurazione del modello da utilizzare. Consulta il parametro `TemplateConfiguration`. [Per ulteriori informazioni sul formato del file di configurazione del modello, vedere Artifacts.AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html) 
  + Fornire l'artefatto per una funzione Lambda da distribuire come parte dello stack. CloudFormation 

## Artefatti di output
<a name="action-reference-CloudFormation-output"></a>
+ **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 CloudFormation .

  Per ulteriori informazioni sulla sezione output che puoi creare per l'operazione CloudFormation , consulta [Output](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html).

## Variabili di output
<a name="action-reference-CloudFormation-variables"></a>

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 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](reference-variables.md). 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](tutorials-cloudformation-action.md)

## Autorizzazioni per i ruoli di servizio: azione CloudFormation
<a name="edit-role-cloudformation"></a>

Quando CodePipeline viene eseguita l'azione, la policy del ruolo di CodePipeline servizio richiede le seguenti autorizzazioni, assegnate in modo appropriato all'ARN della risorsa della pipeline per mantenere l'accesso con il minimo privilegio. Ad esempio, aggiungi quanto segue alla tua dichiarazione politica:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCFNStackAccess",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResources",
                "cloudformation:DescribeStackEvents",
                "cloudformation:GetTemplate",
                "cloudformation:DescribeChangeSet",
                "cloudformation:CreateChangeSet",
                "cloudformation:DeleteChangeSet",
                "cloudformation:ExecuteChangeSet"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:111122223333:stack/[[cfnDeployStackNames]]/*"
            ]
        },
        {
            "Sid": "ValidateTemplate",
            "Effect": "Allow",
            "Action": [
                "cloudformation:ValidateTemplate"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIAMPassRole",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/[[cfnExecutionRoles]]"
            ],
            "Condition": {
                "StringEqualsIfExists": {
                    "iam:PassedToService": [
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

Tieni presente che l'`cloudformation:DescribeStackEvents`autorizzazione è facoltativa. Consente all' CloudFormation azione di mostrare un messaggio di errore più dettagliato. Questa autorizzazione può essere revocata dal ruolo IAM se non desideri che i dettagli delle risorse vengano visualizzati nei messaggi di errore della pipeline.

## Dichiarazione dell'operazione
<a name="action-reference-CloudFormation-example"></a>

------
#### [ 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"
        }
    ]
},
```

------

## Consulta anche
<a name="action-reference-CloudFormation-links"></a>

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.
+ [Riferimento alle proprietà di configurazione](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html): questo capitolo di riferimento della *Guida per l'AWS CloudFormation utente* fornisce ulteriori descrizioni ed esempi per questi parametri. CodePipeline 
+ [AWS CloudFormation Riferimento API](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/): il [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)parametro nel *riferimento AWS CloudFormation API* descrive i parametri dello stack per i CloudFormation modelli.