

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# CloudFormation référence d'action de déploiement
<a name="action-reference-CloudFormation"></a>

Exécute une opération sur une CloudFormation pile. Une pile est un ensemble de AWS ressources que vous pouvez gérer comme une seule unité. Les ressources d'une pile sont définies par son modèle CloudFormation . Un jeu de modifications crée une comparaison qui peut être affichée sans modifier la pile d'origine. Pour plus d'informations sur les types d' CloudFormation actions pouvant être effectuées sur les piles et les ensembles de modifications, consultez le `ActionMode` paramètre.

Pour créer un message d'erreur pour une CloudFormation action où une opération de pile a échoué, CodePipeline appelez l' CloudFormation `DescribeStackEvents`API. Si un rôle IAM d'action est autorisé à accéder à cette API, les détails concernant la première ressource défaillante seront inclus dans le message CodePipeline d'erreur. Sinon, si la politique de rôle ne dispose pas de l'autorisation appropriée, elle CodePipeline ignorera l'accès à l'API et affichera un message d'erreur générique à la place. Pour ce faire, l'`cloudformation:DescribeStackEvents`autorisation doit être ajoutée au rôle de service ou à d'autres rôles IAM pour le pipeline.

Si vous ne souhaitez pas que les détails des ressources apparaissent dans les messages d'erreur du pipeline, vous pouvez révoquer cette autorisation pour le rôle IAM d'action en la supprimant. `cloudformation:DescribeStackEvents`

**Topics**
+ [Type d'action](#action-reference-CloudFormation-type)
+ [Paramètres de configuration](#action-reference-CloudFormation-config)
+ [Artefacts d'entrée](#action-reference-CloudFormation-input)
+ [Artefacts de sortie](#action-reference-CloudFormation-output)
+ [Variables de sortie](#action-reference-CloudFormation-variables)
+ [Autorisations relatives aux rôles de service : CloudFormation action](#edit-role-cloudformation)
+ [Déclaration d'action](#action-reference-CloudFormation-example)
+ [Consultez aussi](#action-reference-CloudFormation-links)

## Type d'action
<a name="action-reference-CloudFormation-type"></a>
+ Catégorie : `Deploy`
+ Propriétaire : `AWS`
+ Fournisseur : `CloudFormation`
+ Version : `1`

## Paramètres de configuration
<a name="action-reference-CloudFormation-config"></a>

**ActionMode**  
Obligatoire : oui  
`ActionMode`est le nom de l'action exécutée CloudFormation sur une pile ou un ensemble de modifications. Les modes d'action suivants sont disponibles :  
+ `CHANGE_SET_EXECUTE` exécute un jeu de modifications pour la pile de ressources basé sur un ensemble de mises à jour de ressources spécifiées. Avec cette action, CloudFormation commence à modifier la pile.
+ `CHANGE_SET_REPLACE` crée le jeu de modification, s’il n’existe pas, en fonction du nom de la pile et du modèle que vous soumettez. Si l'ensemble de modifications existe, CloudFormation il est supprimé, puis en crée un nouveau. 
+ `CREATE_UPDATE` crée la pile si elle n'existe pas. Si la pile existe, la CloudFormation met à jour. Utilisez cette action pour mettre à jour les piles existantes. Au contraire`REPLACE_ON_FAILURE`, si la pile existe et est en état d'échec, elle CodePipeline ne sera ni supprimée ni remplacée.
+ `DELETE_ONLY` supprime une pile. Si vous spécifiez une pile qui n’existe pas, l’action se termine avec succès sans supprimer de pile.
+ `REPLACE_ON_FAILURE` crée une pile, si elle n'existe pas. Si la pile existe et est en état d'échec, CloudFormation supprime la pile, puis crée une nouvelle pile. Si la pile n'est pas en état d'échec, mettez-la CloudFormation à jour. 

  La pile présente un état d'échec lorsque l'un des types d'état suivants est affiché dans CloudFormation : 
  + `ROLLBACK_FAILED`
  + `CREATE_FAILED`
  + `DELETE_FAILED`
  + `UPDATE_ROLLBACK_FAILED`

  Utilisez cette action pour remplacer automatiquement les piles ayant échoué sans les récupérer ou les dépanner.
**Important**  
Nous vous recommandons d'utiliser `REPLACE_ON_FAILURE` à des fins de test uniquement, car cela peut supprimer votre pile.

**StackName**  
Obligatoire : oui  
`StackName` correspond au nom d'une pile existante ou d'une pile que vous souhaitez créer.

**Fonctionnalités**  
Obligatoire : Conditionnelle  
L'utilisation de `Capabilities` confirme que le modèle peut avoir les capacités de créer et de mettre à jour certaines ressources par lui-même, et que ces capacités sont déterminées en fonction des types de ressources figurant dans le modèle.  
Cette propriété est requise si vous avez des ressources IAM dans votre modèle de pile ou si vous créez une pile directement à partir d'un modèle contenant des macros. Pour que l' CloudFormation action fonctionne correctement de cette manière, vous devez explicitement reconnaître que vous souhaitez qu'elle le fasse avec l'une des fonctionnalités suivantes :  
+ `CAPABILITY_IAM` 
+ `CAPABILITY_NAMED_IAM` 
+ `CAPABILITY_AUTO_EXPAND` 
 Vous pouvez spécifier plusieurs capacités en utilisant une virgule (pas d'espace) entre les capacités. L'exemple fourni dans [Déclaration d'action](#action-reference-CloudFormation-example) montre une entrée avec les propriétés CAPABILITY\$1IAM et CAPABILITY\$1AUTO\$1EXPAND.  
Pour plus d'informations`Capabilities`, consultez les propriétés ci-dessous [UpdateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html)dans la *référence de l'AWS CloudFormation API*.

**ChangeSetName**  
Obligatoire : Conditionnelle  
`ChangeSetName` est le nom d'un jeu de modifications existant ou d'un nouveau jeu de modifications que vous souhaitez créer pour la pile spécifiée.  
 Cette propriété est obligatoire pour les modes d'action suivants : CHANGE\$1SET\$1REPLACE et CHANGE\$1SET\$1EXECUTE. Pour tous les autres modes d'action, cette propriété est ignorée.

**RoleArn**  
Obligatoire : Conditionnelle  
`RoleArn` est l'ARN du rôle de service IAM assumé par CloudFormation lorsqu'il fonctionne sur les ressources de la pile spécifiée. `RoleArn` n'est pas appliqué lors de l'exécution d'un jeu de modifications. Si vous ne l'utilisez pas CodePipeline pour créer l'ensemble de modifications, assurez-vous qu'un rôle est associé à l'ensemble ou à la pile de modifications.  
Ce rôle doit se trouver dans le même compte que le rôle de l'action en cours d'exécution, tel que configuré dans la déclaration d'action`RoleArn`.
Cette propriété est requise pour les modes d'action suivants :  
+ CREATE\$1UPDATE
+ REPLACE\$1ON\$1FAILURE
+ DELETE\$1ONLY
+ CHANGE\$1SET\$1REPLACE
CloudFormation reçoit une URL signée S3 vers le modèle ; par conséquent, aucune autorisation `RoleArn` n'est requise pour accéder au compartiment d'artefacts. Toutefois, l'action `RoleArn` *nécessite* une autorisation pour accéder au compartiment d'artefacts afin de générer l'URL signée.

**TemplatePath**  
Obligatoire : Conditionnelle  
`TemplatePath`représente le fichier CloudFormation modèle. Vous incluez ce fichier dans un artefact d'entrée pour cette action. Le nom de fichier respecte le format suivant :  
`Artifactname::TemplateFileName`  
`Artifactname` est le nom de l'artefact d'entrée tel qu'il apparaît dans CodePipeline. Par exemple, une étape source avec le nom d'artefact `SourceArtifact` et un nom de fichier `template-export.json` crée un nom `TemplatePath`, tel qu'illustré dans l'exemple suivant :  

```
"TemplatePath": "SourceArtifact::template-export.json"
```
Cette propriété est requise pour les modes d'action suivants :   
+ CREATE\$1UPDATE
+ REPLACE\$1ON\$1FAILURE
+ CHANGE\$1SET\$1REPLACE
Pour tous les autres modes d'action, cette propriété est ignorée.  
Le fichier CloudFormation modèle contenant le corps du modèle a une longueur minimale de 1 octet et une longueur maximale de 1 Mo. Pour les actions de CloudFormation déploiement dans CodePipeline, la taille maximale de l'artefact en entrée est toujours de 256 Mo. Pour plus d'informations, consultez [Quotas dans AWS CodePipeline](limits.md) et [Limites CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html).

**OutputFileName**  
Obligatoire : non  
`OutputFileName`À utiliser pour spécifier un nom de fichier de sortie, tel que`CreateStackOutput.json`, qui s' CodePipeline ajoute à l'artefact de sortie du pipeline pour cette action. Le fichier JSON contient le contenu de la `Outputs` section issue de la CloudFormation pile.  
Si vous ne spécifiez pas de nom, CodePipeline cela ne génère pas de fichier de sortie ou d'artefact.

**ParameterOverrides**  
Obligatoire : non  
Les paramètres sont définis dans votre modèle de pile et vous permettent de fournir leurs valeurs au moment de la création ou de la mise à jour de la pile. Vous pouvez utiliser un objet JSON pour définir les valeurs des paramètres dans votre modèle. (Ces valeurs remplacent celles définies dans le fichier de configuration du modèle.) Pour de plus amples informations sur l'utilisation des remplacements de paramètres, veuillez consulter [Propriétés de configuration (objet JSON)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html#w4363ab1c13c13b9).  
Nous vous recommandons d'utiliser le fichier de configuration de modèle pour la plupart de vos valeurs de paramètres. Utilisez des remplacements de paramètres uniquement pour les valeurs qui ne sont pas connues tant que le pipeline n'est pas en cours d'exécution. Pour plus d'informations, consultez la section [Utilisation des fonctions de remplacement de paramètres avec des CodePipeline pipelines](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html) dans le *guide de l'AWS CloudFormation utilisateur*.  
Tous les noms de paramètres doivent être présents dans le modèle de la pile.

**TemplateConfiguration**  
Obligatoire : non  
`TemplateConfiguration` est le fichier de configuration de modèle. Vous incluez ce fichier dans un artefact d'entrée pour cette action. Il peut contenir des valeurs de paramètre de modèle et une stratégie de pile. Pour plus d'informations sur le format de fichier de configuration du modèle, consultez [AWS CloudFormation Artefacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html).   
Le nom de fichier de configuration de modèle suit ce format :   
`Artifactname::TemplateConfigurationFileName`  
`Artifactname` est le nom de l'artefact d'entrée tel qu'il apparaît dans CodePipeline. Par exemple, une étape source avec le nom d'artefact `SourceArtifact` et un nom de fichier `test-configuration.json` crée un nom `TemplateConfiguration`, tel qu'illustré dans l'exemple suivant :  

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

## Artefacts d'entrée
<a name="action-reference-CloudFormation-input"></a>
+ **Nombre d'objets :** `0 to 10`
+ **Description :** en entrée, l' CloudFormation action accepte éventuellement des artefacts aux fins suivantes :
  + Pour fournir le fichier de modèle de pile à exécuter. (Voir le paramètre `TemplatePath`.)
  + Pour fournir le fichier de configuration de modèle à utiliser. (Voir le paramètre `TemplateConfiguration`.) Pour plus d'informations sur le format de fichier de configuration du modèle, consultez [AWS CloudFormation Artefacts](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-cfn-artifacts.html). 
  + Fournir l'artefact pour une fonction Lambda à déployer dans le cadre de la CloudFormation pile.

## Artefacts de sortie
<a name="action-reference-CloudFormation-output"></a>
+ **Nombre d'objets :** `0 to 1` 
+ **Description :** si le paramètre `OutputFileName` est spécifié, un artefact de sortie produit par cette action contient un fichier JSON portant le nom spécifié. Le fichier JSON contient le contenu de la section Outputs de la pile CloudFormation .

  Pour de plus amples informations sur la section Outputs que vous pouvez créer pour votre action CloudFormation , veuillez consulter [Sorties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html).

## Variables de sortie
<a name="action-reference-CloudFormation-variables"></a>

Lorsque cette action est configurée, elle produit des variables qui peuvent être référencées par la configuration d'action d'une action en aval dans le pipeline. Vous configurez une action avec un espace de noms pour rendre ces variables disponibles pour la configuration des actions en aval.

Pour les CloudFormation actions, les variables sont produites à partir de toutes les valeurs désignées dans la `Outputs` section d'un modèle de pile. Notez que les seuls modes CloudFormation d'action qui génèrent des sorties sont ceux qui aboutissent à la création ou à la mise à jour d'une pile, tels que la création de pile, les mises à jour de piles et l'exécution d'ensembles de modifications. Les modes d'action correspondants qui génèrent des variables sont les suivants :
+ `CHANGE_SET_EXECUTE`
+ `CHANGE_SET_REPLACE`
+ `CREATE_UPDATE`
+ `REPLACE_ON_FAILURE`

Pour de plus amples informations, veuillez consulter [Référence aux variables](reference-variables.md). Pour un didacticiel expliquant comment créer un pipeline avec une action de CloudFormation déploiement dans un pipeline utilisant des variables CloudFormation de sortie, voir[Tutoriel : Création d'un pipeline qui utilise des variables issues d'actions de AWS CloudFormation déploiement](tutorials-cloudformation-action.md).

## Autorisations relatives aux rôles de service : CloudFormation action
<a name="edit-role-cloudformation"></a>

Lors de l' CodePipeline exécution de l'action, la politique de rôle de CodePipeline service nécessite les autorisations suivantes, correctement limitées à l'ARN de la ressource du pipeline afin de maintenir l'accès avec le moins de privilèges. Par exemple, ajoutez ce qui suit à votre déclaration de politique :

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

------

Notez que l'`cloudformation:DescribeStackEvents`autorisation est facultative. Cela permet à l' CloudFormation action d'afficher un message d'erreur plus détaillé. Cette autorisation peut être révoquée pour le rôle IAM si vous ne souhaitez pas que les détails des ressources apparaissent dans les messages d'erreur du pipeline.

## Déclaration d'action
<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"
        }
    ]
},
```

------

## Consultez aussi
<a name="action-reference-CloudFormation-links"></a>

Les ressources connexes suivantes peuvent s'avérer utiles dans le cadre de l'utilisation de cette action.
+ [Référence des propriétés de configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html) — Ce chapitre de référence du *Guide de AWS CloudFormation l'utilisateur* fournit des descriptions et des exemples supplémentaires pour ces CodePipeline paramètres.
+ [AWS CloudFormation Référence d'API](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/) — Le [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)paramètre de la *référence AWS CloudFormation d'API* décrit les paramètres de pile pour les CloudFormation modèles.