

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.

# Exemples de commandes d'opération de CloudFormation pile pour AWS CLI et PowerShell
<a name="service_code_examples"></a>

Les exemples de ligne de commande suivants montrent comment effectuer des CloudFormation actions individuelles avec le AWS CLI et PowerShell. Ces exemples ne comprennent que les actions les plus couramment utilisées. Pour obtenir la liste complète, consultez [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/) dans la *Référence des commandes en ligne AWS CLI *.

Les exemples de ce guide utilisent la convention du backslash (\$1) pour indiquer qu’une longue ligne de commande se poursuit à la ligne suivante. 

**Topics**
+ [Annuler la mise à jour d’une pile](#cancel-update-stack-sdk)
+ [Poursuite de la restauration d'une mise à jour](#continue-update-rollback-sdk)
+ [Création d’une pile](#create-stack-sdk)
+ [Créer une pile qui inclut des transformations](#deploy-sdk)
+ [Supprimer une pile](#delete-stack-sdk)
+ [Décrire les événements d’une pile](#describe-stack-events-sdk)
+ [Décrire une ressource d’une pile](#describe-stack-resource-sdk)
+ [Décrire les ressources d’une pile](#describe-stack-resources-sdk)
+ [Décrire les piles](#describe-stacks-sdk)
+ [Obtenir un modèle](#get-template-sdk)
+ [Répertorier les ressources d’une pile](#list-stack-resources-sdk)
+ [Répertorier les piles](#list-stacks-sdk)
+ [Mettre à jour une pile](#update-stack-sdk)
+ [Valider votre modèle](#validate-template-sdk)
+ [Téléchargez des artefacts locaux dans un compartiment S3 avec le AWS CLI](using-cfn-cli-package.md)

## Annuler la mise à jour d’une pile
<a name="cancel-update-stack-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/cancel-update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/cancel-update-stack.html) pour annuler la mise à jour d’une pile. Pour de plus amples informations, veuillez consulter [Annuler la mise à jour d’une pile](using-cfn-stack-update-cancel.md).

------
#### [ CLI ]

**AWS CLI**  
**Pour annuler une mise à jour de pile en cours**  
La commande `cancel-update-stack` suivante annule une mise à jour de la pile sur la pile `myteststack` :  

```
aws cloudformation cancel-update-stack --stack-name myteststack
```
+  Pour plus de détails sur l'API, reportez-vous [CancelUpdateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/cancel-update-stack.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : annule une mise à jour sur la pile spécifiée.**  

```
Stop-CFNUpdateStack -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [CancelUpdateStack](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : annule une mise à jour sur la pile spécifiée.**  

```
Stop-CFNUpdateStack -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [CancelUpdateStack](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

## Poursuite de la restauration d'une mise à jour
<a name="continue-update-rollback-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/continue-update-rollback.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/continue-update-rollback.html) pour poursuivre la restauration d’une mise à jour. Pour de plus amples informations, veuillez consulter [Poursuite de la restauration d'une mise à jour](using-cfn-updating-stacks-continueupdaterollback.md).

------
#### [ CLI ]

**AWS CLI**  
**Pour réessayer la restauration d’une mise à jour**  
L’exemple `continue-update-rollback` suivant reprend une opération de restauration suite à un échec antérieur de la mise à jour de la pile.  

```
aws cloudformation continue-update-rollback \
    --stack-name my-stack
```
Cette commande ne produit aucune sortie.  
+  Pour plus de détails sur l'API, reportez-vous [ContinueUpdateRollback](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/continue-update-rollback.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : poursuit l’annulation de la pile nommée, qui doit avoir l’état « UPDATE\$1ROLLBACK\$1FAILED ». Si la restauration continue réussit, la pile entrera dans l’état « UPDATE\$1ROLLBACK\$1COMPLETE ».**  

```
Resume-CFNUpdateRollback -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [ContinueUpdateRollback](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : poursuit l’annulation de la pile nommée, qui doit avoir l’état « UPDATE\$1ROLLBACK\$1FAILED ». Si la restauration continue réussit, la pile entrera dans l’état « UPDATE\$1ROLLBACK\$1COMPLETE ».**  

```
Resume-CFNUpdateRollback -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [ContinueUpdateRollback](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

## Création d’une pile
<a name="create-stack-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) pour créer une pile. Vous devez fournir le nom de la pile, l’emplacement d’un modèle valide et tous les paramètres d’entrée requis. Les noms des clés de paramètre sont sensibles à la casse. Si vous tapez mal le nom d'une clé de paramètre, CloudFormation cela ne crée pas la pile et indique que le modèle ne contient pas ce paramètre.

Les exemples suivants montrent comment créer une nouvelle pile avec le nom, le modèle et les paramètres d’entrée spécifiés. 

------
#### [ CLI ]

**AWS CLI**  
**Pour créer une AWS CloudFormation pile**  
La commande `create-stacks` suivante crée une pile portant le nom `myteststack` à l’aide du modèle `sampletemplate.json` :  

```
aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=KeyPairName,ParameterValue=TestKey ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2
```
Sortie :  

```
{
    "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896"
}
```
Pour plus d'informations, consultez Stacks dans le *guide de l'AWS CloudFormation utilisateur*.  
+  Pour plus de détails sur l'API, reportez-vous [CreateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : crée une nouvelle pile avec le nom spécifié. Le modèle est analysé à partir du contenu fourni avec des paramètres de personnalisation (PK1« » et « PK2 » représentent les noms des paramètres déclarés dans le contenu du modèle, « PV1 » et « PV2 » représentent les valeurs de ces paramètres. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle ne sera pas annulée.**  

```
New-CFNStack -StackName "myStack" `
             -TemplateBody "{TEMPLATE CONTENT HERE}" `
             -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) `
             -DisableRollback $true
```
**Exemple 2 : crée une nouvelle pile avec le nom spécifié. Le modèle est analysé à partir du contenu fourni avec des paramètres de personnalisation (PK1« » et « PK2 » représentent les noms des paramètres déclarés dans le contenu du modèle, « PV1 » et « PV2 » représentent les valeurs de ces paramètres. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée.**  

```
$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter
$p1.ParameterKey = "PK1"
$p1.ParameterValue = "PV1"

$p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter
$p2.ParameterKey = "PK2"
$p2.ParameterValue = "PV2"

New-CFNStack -StackName "myStack" `
             -TemplateBody "{TEMPLATE CONTENT HERE}" `
             -Parameter @( $p1, $p2 ) `
             -OnFailure "ROLLBACK"
```
**Exemple 3 : crée une nouvelle pile avec le nom spécifié. Le modèle est obtenu à partir de l'URL Amazon S3 avec des paramètres de personnalisation (PK1« » représente le nom d'un paramètre déclaré dans le contenu du modèle, PV1 « » représente la valeur du paramètre. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée (comme si vous spécifiez - DisableRollback \$1false).**  

```
New-CFNStack -StackName "myStack" `
             -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
             -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemple 4 : crée une nouvelle pile avec le nom spécifié. Le modèle est obtenu à partir de l'URL Amazon S3 avec des paramètres de personnalisation (PK1« » représente le nom d'un paramètre déclaré dans le contenu du modèle, PV1 « » représente la valeur du paramètre. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée (comme si vous spécifiez - DisableRollback \$1false). La notification spécifiée AENs recevra les événements publiés liés à la pile.**  

```
New-CFNStack -StackName "myStack" `
             -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
             -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } `
             -NotificationARN @( "arn1", "arn2" )
```
+  Pour plus de détails sur l'API, reportez-vous [CreateStack](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : crée une nouvelle pile avec le nom spécifié. Le modèle est analysé à partir du contenu fourni avec des paramètres de personnalisation (PK1« » et « PK2 » représentent les noms des paramètres déclarés dans le contenu du modèle, « PV1 » et « PV2 » représentent les valeurs de ces paramètres. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle ne sera pas annulée.**  

```
New-CFNStack -StackName "myStack" `
             -TemplateBody "{TEMPLATE CONTENT HERE}" `
             -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) `
             -DisableRollback $true
```
**Exemple 2 : crée une nouvelle pile avec le nom spécifié. Le modèle est analysé à partir du contenu fourni avec des paramètres de personnalisation (PK1« » et « PK2 » représentent les noms des paramètres déclarés dans le contenu du modèle, « PV1 » et « PV2 » représentent les valeurs de ces paramètres. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée.**  

```
$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter
$p1.ParameterKey = "PK1"
$p1.ParameterValue = "PV1"

$p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter
$p2.ParameterKey = "PK2"
$p2.ParameterValue = "PV2"

New-CFNStack -StackName "myStack" `
             -TemplateBody "{TEMPLATE CONTENT HERE}" `
             -Parameter @( $p1, $p2 ) `
             -OnFailure "ROLLBACK"
```
**Exemple 3 : crée une nouvelle pile avec le nom spécifié. Le modèle est obtenu à partir de l'URL Amazon S3 avec des paramètres de personnalisation (PK1« » représente le nom d'un paramètre déclaré dans le contenu du modèle, PV1 « » représente la valeur du paramètre. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée (comme si vous spécifiez - DisableRollback \$1false).**  

```
New-CFNStack -StackName "myStack" `
             -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
             -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemple 4 : crée une nouvelle pile avec le nom spécifié. Le modèle est obtenu à partir de l'URL Amazon S3 avec des paramètres de personnalisation (PK1« » représente le nom d'un paramètre déclaré dans le contenu du modèle, PV1 « » représente la valeur du paramètre. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Si la création de la pile échoue, elle sera annulée (comme si vous spécifiez - DisableRollback \$1false). La notification spécifiée AENs recevra les événements publiés liés à la pile.**  

```
New-CFNStack -StackName "myStack" `
             -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
             -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } `
             -NotificationARN @( "arn1", "arn2" )
```
+  Pour plus de détails sur l'API, reportez-vous [CreateStack](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

**Note**  
Vous pouvez utiliser AWS CLI `--template-url` cette option pour spécifier l'emplacement d'un fichier modèle dans Amazon S3 ou AWS Systems Manager.  
Pour Amazon S3, l’URL doit commencer par `https://`. URLs Les sites Web statiques S3 ne sont pas pris en charge.  

```
--template-url https://s3.region-code.amazonaws.com/bucket-name/template-name
```
Pour AWS Systems Manager, utilisez le format suivant :  

```
--template-url "ssm-doc://arn:aws:ssm:region-code:account-id:document/document-name"
```

## Créer une pile qui inclut des transformations
<a name="deploy-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/) pour créer une pile qui inclut des transformations. Lorsque vous créez une pile à partir d’un modèle qui inclut des transformateurs, vous devez utiliser un jeu de modifications. La commande `deploy` combine deux étapes (création d’un jeu de modifications et exécution de celui-ci) en une seule commande.

------
#### [ AWS CLI ]

La commande `deploy` suivante crée une pile avec le nom, le modèle et les paramètres d’entrée spécifiés.

```
aws cloudformation deploy --stack-name myteststack \
  --template /path_to_template/my-template.json \
  --parameter-overrides Key1=Value1 Key2=Value2
```

------

## Supprimer une pile
<a name="delete-stack-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-stack.html) pour supprimer une pile. Pour de plus amples informations, veuillez consulter [Supprimer une pile](cfn-console-delete-stack.md).

------
#### [ CLI ]

**AWS CLI**  
**Pour supprimer une pile**  
L’exemple `delete-stack` suivant supprime la pile spécifiée.  

```
aws cloudformation delete-stack \
    --stack-name my-stack
```
Cette commande ne produit aucune sortie.  
+  Pour plus de détails sur l'API, reportez-vous [DeleteStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/delete-stack.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : supprime la pile spécifiée.**  

```
Remove-CFNStack -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [DeleteStack](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : supprime la pile spécifiée.**  

```
Remove-CFNStack -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [DeleteStack](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

Si la suppression échoue et renvoie un état `DELETE_FAILED`, vous pouvez choisir de supprimer la pile de manière forcée à l’aide de l’option `--deletion-mode`. Voici les valeurs suivantes qui peuvent être utilisées avec `deletion-mode` :
+ `STANDARD` : supprime la pile normalement. Il s’agit du mode de suppression par défaut.
+ `FORCE_DELETE_STACK` : supprime la pile et ignore toutes les ressources qui ne peuvent pas être supprimées.

------
#### [ AWS CLI ]

La commande `delete-stack` suivante supprime de manière forcée la pile `myteststack` à l’aide de la valeur `FORCE_DELETE_STACK` avec le paramètre `deletion-mode` :

```
aws cloudformation delete-stack --stack-name myteststack \
    --deletion-mode FORCE_DELETE_STACK
```

Cette commande ne produit aucune sortie.

------

Après avoir utilisé `FORCE_DELETE_STACK`, vous pouvez utiliser la commande `list-stack-resources` pour répertorier les ressources qui ont été ignorées pendant le processus de suppression de la pile. Les ressources conservées afficheront l’état DELETE\$1SKIPPED. Pour de plus amples informations, veuillez consulter [Répertorier les ressources d’une pile](#list-stack-resources-sdk).

## Décrire les événements d’une pile
<a name="describe-stack-events-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-events.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-events.html) pour décrire les événements de la pile. Pour de plus amples informations, veuillez consulter [Surveiller la progression de la pile](monitor-stack-progress.md).

------
#### [ CLI ]

**AWS CLI**  
**Pour décrire les événements d’une pile**  
L’exemple `describe-stack-events` suivant affiche les 2 événements les plus récents pour la pile spécifiée.  

```
aws cloudformation describe-stack-events \
    --stack-name my-stack \
    --max-items 2

{
    "StackEvents": [
        {
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "EventId": "4e1516d0-e4d6-xmpl-b94f-0a51958a168c",
            "StackName": "my-stack",
            "LogicalResourceId": "my-stack",
            "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "ResourceType": "AWS::CloudFormation::Stack",
            "Timestamp": "2019-10-02T05:34:29.556Z",
            "ResourceStatus": "UPDATE_COMPLETE"
        },
        {
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "EventId": "4dd3c810-e4d6-xmpl-bade-0aaf8b31ab7a",
            "StackName": "my-stack",
            "LogicalResourceId": "my-stack",
            "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "ResourceType": "AWS::CloudFormation::Stack",
            "Timestamp": "2019-10-02T05:34:29.127Z",
            "ResourceStatus": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS"
        }
    ],
    "NextToken": "eyJOZXh0VG9XMPLiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ=="
}
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackEvents](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-events.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : renvoie tous les événements associés à une pile spécifiée.**  

```
Get-CFNStackEvent -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackEvents](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : renvoie tous les événements associés à une pile spécifiée.**  

```
Get-CFNStackEvent -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackEvents](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

## Décrire une ressource d’une pile
<a name="describe-stack-resource-sdk"></a>

------
#### [ CLI ]

**AWS CLI**  
**Pour obtenir des informations sur une ressource de pile**  
L’exemple `describe-stack-resource` suivant affiche des informations pour la ressource nommée `MyFunction` dans la pile spécifiée.  

```
aws cloudformation describe-stack-resource \
    --stack-name MyStack \
    --logical-resource-id MyFunction
```
Sortie :  

```
{
    "StackResourceDetail": {
        "StackName": "MyStack",
        "StackId": "arn:aws:cloudformation:us-east-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
        "LogicalResourceId": "MyFunction",
        "PhysicalResourceId": "my-function-SEZV4XMPL4S5",
        "ResourceType": "AWS::Lambda::Function",
        "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z",
        "ResourceStatus": "UPDATE_COMPLETE",
        "Metadata": "{}",
        "DriftInformation": {
            "StackResourceDriftStatus": "IN_SYNC"
        }
    }
}
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-resource.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : renvoie la description d'une ressource identifiée dans le modèle associé à la pile spécifiée par l'identifiant logique DBInstance « My ».**  

```
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackResource](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : renvoie la description d'une ressource identifiée dans le modèle associé à la pile spécifiée par l'identifiant logique DBInstance « My ».**  

```
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackResource](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

## Décrire les ressources d’une pile
<a name="describe-stack-resources-sdk"></a>

------
#### [ CLI ]

**AWS CLI**  
**Pour obtenir les informations sur une ressource de pile**  
L’exemple `describe-stack-resources` suivant affiche des informations pour les ressources dans la pile spécifiée.  

```
aws cloudformation describe-stack-resources \
    --stack-name my-stack
```
Sortie :  

```
{
    "StackResources": [
        {
            "StackName": "my-stack",
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "LogicalResourceId": "bucket",
            "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf",
            "ResourceType": "AWS::S3::Bucket",
            "Timestamp": "2019-10-02T04:34:11.345Z",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        },
        {
            "StackName": "my-stack",
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "LogicalResourceId": "function",
            "PhysicalResourceId": "my-function-SEZV4XMPL4S5",
            "ResourceType": "AWS::Lambda::Function",
            "Timestamp": "2019-10-02T05:34:27.989Z",
            "ResourceStatus": "UPDATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        },
        {
            "StackName": "my-stack",
            "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
            "LogicalResourceId": "functionRole",
            "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E",
            "ResourceType": "AWS::IAM::Role",
            "Timestamp": "2019-10-02T04:34:06.350Z",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        }
    ]
}
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-resources.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : renvoie les descriptions de AWS ressources pour un maximum de 100 ressources associées à la pile spécifiée. Pour obtenir des informations détaillées sur toutes les ressources associées à une pile, utilisez le Get- CFNStackResourceSummary, qui prend également en charge la pagination manuelle des résultats.**  

```
Get-CFNStackResourceList -StackName "myStack"
```
**Exemple 2 : renvoie la description de l’instance Amazon EC2 identifiée dans le modèle associé à la pile spécifiée par l’ID logique « Ec2Instance ».**  

```
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"
```
**Exemple 3 : renvoie la description d’un maximum de 100 ressources associées à la pile contenant une instance Amazon EC2 identifiée par l’ID d’instance « i-123456 ». Pour obtenir des informations détaillées sur toutes les ressources associées à une pile, utilisez le Get- CFNStackResourceSummary, qui prend également en charge la pagination manuelle des résultats.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456"
```
**Exemple 4 : renvoie la description de l’instance Amazon EC2 identifiée par l’ID logique « Ec2Instance » dans le modèle pour une pile. La pile est identifiée à l’aide de l’ID de ressource physique d’une ressource qu’elle contient, dans ce cas également une instance Amazon EC2 avec l’ID d’instance « i-123456 ». Une ressource physique différente peut également être utilisée pour identifier la pile en fonction du contenu du modèle, par exemple un compartiment Amazon S3.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackResources](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : renvoie les descriptions de AWS ressources pour un maximum de 100 ressources associées à la pile spécifiée. Pour obtenir des informations détaillées sur toutes les ressources associées à une pile, utilisez le Get- CFNStackResourceSummary, qui prend également en charge la pagination manuelle des résultats.**  

```
Get-CFNStackResourceList -StackName "myStack"
```
**Exemple 2 : renvoie la description de l’instance Amazon EC2 identifiée dans le modèle associé à la pile spécifiée par l’ID logique « Ec2Instance ».**  

```
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"
```
**Exemple 3 : renvoie la description d’un maximum de 100 ressources associées à la pile contenant une instance Amazon EC2 identifiée par l’ID d’instance « i-123456 ». Pour obtenir des informations détaillées sur toutes les ressources associées à une pile, utilisez le Get- CFNStackResourceSummary, qui prend également en charge la pagination manuelle des résultats.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456"
```
**Exemple 4 : renvoie la description de l’instance Amazon EC2 identifiée par l’ID logique « Ec2Instance » dans le modèle pour une pile. La pile est identifiée à l’aide de l’ID de ressource physique d’une ressource qu’elle contient, dans ce cas également une instance Amazon EC2 avec l’ID d’instance « i-123456 ». Une ressource physique différente peut également être utilisée pour identifier la pile en fonction du contenu du modèle, par exemple un compartiment Amazon S3.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackResources](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

## Décrire les piles
<a name="describe-stacks-sdk"></a>

------
#### [ CLI ]

**AWS CLI**  
**Pour décrire les AWS CloudFormation piles**  
La commande `describe-stacks` suivante affiche des informations récapitulatives pour la pile `myteststack` :  

```
aws cloudformation describe-stacks --stack-name myteststack
```
Sortie :  

```
{
    "Stacks":  [
        {
            "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",
            "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
            "Tags": [],
            "Outputs": [
                {
                    "Description": "Name of S3 bucket to hold website content",
                    "OutputKey": "BucketName",
                    "OutputValue": "myteststack-s3bucket-jssofi1zie2w"
                }
            ],
            "StackStatusReason": null,
            "CreationTime": "2013-08-23T01:02:15.422Z",
            "Capabilities": [],
            "StackName": "myteststack",
            "StackStatus": "CREATE_COMPLETE",
            "DisableRollback": false
        }
    ]
}
```
Pour plus d'informations, consultez Stacks dans le *guide de l'AWS CloudFormation utilisateur*.  
+  Pour plus de détails sur l'API, reportez-vous [DescribeStacks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stacks.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ Go ]

**Kit SDK pour Go V2**  
 Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le [référentiel d’exemples de code AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/workflows/user_pools_and_lambda_triggers#code-examples). 

```
import (
	"context"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/cloudformation"
)

// StackOutputs defines a map of outputs from a specific stack.
type StackOutputs map[string]string

type CloudFormationActions struct {
	CfnClient *cloudformation.Client
}

// GetOutputs gets the outputs from a CloudFormation stack and puts them into a structured format.
func (actor CloudFormationActions) GetOutputs(ctx context.Context, stackName string) StackOutputs {
	output, err := actor.CfnClient.DescribeStacks(ctx, &cloudformation.DescribeStacksInput{
		StackName: aws.String(stackName),
	})
	if err != nil || len(output.Stacks) == 0 {
		log.Panicf("Couldn't find a CloudFormation stack named %v. Here's why: %v\n", stackName, err)
	}
	stackOutputs := StackOutputs{}
	for _, out := range output.Stacks[0].Outputs {
		stackOutputs[*out.OutputKey] = *out.OutputValue
	}
	return stackOutputs
}
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStacks](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/cloudformation#Client.DescribeStacks)à la section *Référence des AWS SDK pour Go API*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : renvoie une collection d’instances Stack décrivant toutes les piles de l’utilisateur.**  

```
Get-CFNStack
```
**Exemple 2 : renvoie une instance Stack décrivant la pile spécifiée**  

```
Get-CFNStack -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStacks](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : renvoie une collection d’instances Stack décrivant toutes les piles de l’utilisateur.**  

```
Get-CFNStack
```
**Exemple 2 : renvoie une instance Stack décrivant la pile spécifiée**  

```
Get-CFNStack -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStacks](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

Par défaut, la commande `describe-stacks` renvoie les valeurs des paramètres. Pour éviter que des valeurs de paramètres sensibles telles que des mots de passe ne soient renvoyées, incluez une `NoEcho` propriété définie sur `TRUE` dans vos CloudFormation modèles.

**Important**  
L'utilisation de l'attribut `NoEcho` ne masque aucune information stockée dans les lieux suivants :  
La section des `Metadata` modèles. CloudFormation ne transforme, ne modifie ni n'expédie aucune information que vous incluez dans `Metadata` cette section. Pour de plus amples informations, veuillez consulter [Métadonnées](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html).
La section de modèle `Outputs` Pour de plus amples informations, veuillez consulter [Sorties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)
L’attribut `Metadata` d'une définition de ressource. Pour plus d'informations, voir la section consécrée à l'[Attribut `Metadata`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-metadata.html).
Nous vous recommandons vivement de ne pas utiliser ces mécanismes pour inclure des informations sensibles, telles que des mots de passe ou des secrets.

**Important**  
Plutôt que d'intégrer des informations sensibles directement dans vos CloudFormation modèles, nous vous recommandons d'utiliser des paramètres dynamiques dans le modèle de pile pour référencer les informations sensibles stockées et gérées à l'extérieur CloudFormation, par exemple dans le AWS Systems Manager Parameter Store ou AWS Secrets Manager.  
Pour de plus amples informations, veuillez consulter la bonne pratique [N'incorporez pas d'informations d'identification dans vos modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds).

## Obtenir un modèle
<a name="get-template-sdk"></a>

------
#### [ CLI ]

**AWS CLI**  
**Pour afficher le corps du modèle d'une AWS CloudFormation pile**  
La commande `get-template` suivante affiche le modèle de la pile `myteststack` :  

```
aws cloudformation get-template --stack-name myteststack
```
Sortie :  

```
{
    "TemplateBody": {
        "AWSTemplateFormatVersion": "2010-09-09",
        "Outputs": {
            "BucketName": {
                "Description": "Name of S3 bucket to hold website content",
                "Value": {
                    "Ref": "S3Bucket"
                }
            }
        },
        "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
        "Resources": {
            "S3Bucket": {
                "Type": "AWS::S3::Bucket",
                "Properties": {
                    "AccessControl": "PublicRead"
                }
            }
        }
    }
}
```
+  Pour plus de détails sur l'API, reportez-vous [GetTemplate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/get-template.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : renvoie le modèle associé à la pile spécifiée.**  

```
Get-CFNTemplate -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [GetTemplate](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : renvoie le modèle associé à la pile spécifiée.**  

```
Get-CFNTemplate -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [GetTemplate](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

## Répertorier les ressources d’une pile
<a name="list-stack-resources-sdk"></a>

------
#### [ CLI ]

**AWS CLI**  
**Pour répertorier les ressources d’une pile**  
La commande suivante affiche la liste des ressources de la pile spécifiée.  

```
aws cloudformation list-stack-resources \
    --stack-name my-stack
```
Sortie :  

```
{
    "StackResourceSummaries": [
        {
            "LogicalResourceId": "bucket",
            "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf",
            "ResourceType": "AWS::S3::Bucket",
            "LastUpdatedTimestamp": "2019-10-02T04:34:11.345Z",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        },
        {
            "LogicalResourceId": "function",
            "PhysicalResourceId": "my-function-SEZV4XMPL4S5",
            "ResourceType": "AWS::Lambda::Function",
            "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z",
            "ResourceStatus": "UPDATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        },
        {
            "LogicalResourceId": "functionRole",
            "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E",
            "ResourceType": "AWS::IAM::Role",
            "LastUpdatedTimestamp": "2019-10-02T04:34:06.350Z",
            "ResourceStatus": "CREATE_COMPLETE",
            "DriftInformation": {
                "StackResourceDriftStatus": "IN_SYNC"
            }
        }
    ]
}
```
+  Pour plus de détails sur l'API, reportez-vous [ListStackResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/list-stack-resources.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : renvoie les descriptions de toutes les ressources associées à la pile spécifiée.**  

```
Get-CFNStackResourceSummary -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [ListStackResources](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : renvoie les descriptions de toutes les ressources associées à la pile spécifiée.**  

```
Get-CFNStackResourceSummary -StackName "myStack"
```
+  Pour plus de détails sur l'API, reportez-vous [ListStackResources](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

## Répertorier les piles
<a name="list-stacks-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stacks.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stacks.html) pour répertorier les piles. Pour répertorier uniquement les piles avec les codes d’état spécifiés, incluez l’option `--stack-status-filter`. Vous pouvez spécifier un ou plusieurs codes d’état de pile pour l’option `--stack-status-filter`. Pour de plus amples informations, veuillez consulter [Codes d’état de la pile](view-stack-events.md#cfn-console-view-stack-data-resources-status-codes).

------
#### [ CLI ]

**AWS CLI**  
**Pour répertorier les AWS CloudFormation piles**  
La commande `list-stacks` suivante affiche un résumé de toutes les piles ayant le statut `CREATE_COMPLETE` :  

```
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE
```
Sortie :  

```
[
    {
        "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",
        "TemplateDescription": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
        "StackStatusReason": null,
        "CreationTime": "2013-08-26T03:27:10.190Z",
        "StackName": "myteststack",
        "StackStatus": "CREATE_COMPLETE"
    }
]
```
+  Pour plus de détails sur l'API, reportez-vous [ListStacks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/list-stacks.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : renvoie des informations récapitulatives pour toutes les piles.**  

```
Get-CFNStackSummary
```
**Exemple 2 : renvoie des informations récapitulatives pour toutes les piles en cours de création.**  

```
Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"
```
**Exemple 3 : renvoie des informations récapitulatives pour toutes les piles en cours de création ou de mise à jour.**  

```
Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
```
+  Pour plus de détails sur l'API, reportez-vous [ListStacks](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : renvoie des informations récapitulatives pour toutes les piles.**  

```
Get-CFNStackSummary
```
**Exemple 2 : renvoie des informations récapitulatives pour toutes les piles en cours de création.**  

```
Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"
```
**Exemple 3 : renvoie des informations récapitulatives pour toutes les piles en cours de création ou de mise à jour.**  

```
Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
```
+  Pour plus de détails sur l'API, reportez-vous [ListStacks](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

## Mettre à jour une pile
<a name="update-stack-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html) pour mettre à jour directement une pile. Vous spécifiez la pile, les valeurs de paramètre et les fonctionnalités que vous souhaitez mettre à jour et, si vous voulez utiliser un modèle mis à jour, le nom de ce modèle. Pour de plus amples informations, veuillez consulter [Mettre à jour directement les piles](using-cfn-updating-stacks-direct.md).

------
#### [ CLI ]

**AWS CLI**  
**Pour mettre à jour les AWS CloudFormation piles**  
La commande `update-stack` suivante met à jour le modèle et les paramètres d’entrée de la pile `mystack` :  

```
aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2
```
La commande `update-stack` suivante met uniquement à jour la valeur de paramètre `SubnetIDs` de la pile `mystack`. Si vous ne spécifiez aucune valeur de paramètre, la valeur par défaut spécifiée dans le modèle est utilisée :  

```
aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2
```
La commande `update-stack` suivante ajoute deux rubriques de notification de pile à la pile `mystack` :  

```
aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1" "arn:aws:sns:us-east-1:123456789012:mytopic2"
```
Pour plus d'informations, consultez la section [AWS CloudFormation Stack Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) dans le *guide de AWS CloudFormation l'utilisateur*.  
+  Pour plus de détails sur l'API, reportez-vous [UpdateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/update-stack.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : met à jour la pile « MyStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » représente le nom d'un paramètre déclaré dans le modèle et « PV1 » représente sa valeur. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemple 2 : met à jour la pile « MyStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
```
**Exemple 3 : met à jour la pile « MyStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » représente le nom d'un paramètre déclaré dans le modèle et « PV2 » représente sa valeur. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemple 4 : met à jour la pile « MyStack » avec le modèle spécifié, obtenu auprès d'Amazon S3, et les paramètres de personnalisation. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
                -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
```
**Exemple 5 : met à jour la pile « MyStack », qui est supposée dans cet exemple contenir des ressources IAM, avec le modèle spécifié, obtenu auprès d'Amazon S3, et les paramètres de personnalisation. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Les piles contenant des ressources IAM nécessitent que vous spécifiiez le paramètre -Capabilities « CAPABILITY\$1IAM », sinon la mise à jour échouera avec une erreur « ». InsufficientCapabilities**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
                -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) `
                -Capabilities "CAPABILITY_IAM"
```
+  Pour plus de détails sur l'API, reportez-vous [UpdateStack](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : met à jour la pile « MyStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » représente le nom d'un paramètre déclaré dans le modèle et « PV1 » représente sa valeur. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemple 2 : met à jour la pile « MyStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
```
**Exemple 3 : met à jour la pile « MyStack » avec le modèle et les paramètres de personnalisation spécifiés. « PK1 » représente le nom d'un paramètre déclaré dans le modèle et « PV2 » représente sa valeur. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemple 4 : met à jour la pile « MyStack » avec le modèle spécifié, obtenu auprès d'Amazon S3, et les paramètres de personnalisation. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
                -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
```
**Exemple 5 : met à jour la pile « MyStack », qui est supposée dans cet exemple contenir des ressources IAM, avec le modèle spécifié, obtenu auprès d'Amazon S3, et les paramètres de personnalisation. « PK1 » et « PK2 » représentent les noms des paramètres déclarés dans le modèle, « PV1 » et « PV2 » représentent les valeurs demandées. Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ». Les piles contenant des ressources IAM nécessitent que vous spécifiiez le paramètre -Capabilities « CAPABILITY\$1IAM », sinon la mise à jour échouera avec une erreur « ». InsufficientCapabilities**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
                -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) `
                -Capabilities "CAPABILITY_IAM"
```
+  Pour plus de détails sur l'API, reportez-vous [UpdateStack](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

**Note**  
Pour supprimer toutes les notifications, spécifiez `[]` pour l’option `--notification-arns`.

## Valider votre modèle
<a name="validate-template-sdk"></a>

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/validate-template.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/validate-template.html) pour vérifier que votre fichier de modèle ne contient pas d’erreurs de syntaxe.

Lors de la validation, CloudFormation vérifiez d'abord si le modèle est un JSON valide. Si ce n'est pas le cas, CloudFormation vérifie si le modèle est dans un format YAML valide. Si les deux vérifications échouent, CloudFormation renvoie une erreur de validation du modèle.

------
#### [ CLI ]

**AWS CLI**  
**Pour valider un AWS CloudFormation modèle**  
La commande `validate-template` suivante valide le modèle `sampletemplate.json` :  

```
aws cloudformation validate-template --template-body file://sampletemplate.json
```
Sortie :  

```
{
    "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.",
    "Parameters": [],
    "Capabilities": []
}
```
Pour plus d'informations, consultez la section Utilisation des AWS CloudFormation modèles dans le *guide de AWS CloudFormation l'utilisateur*.  
+  Pour plus de détails sur l'API, reportez-vous [ValidateTemplate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/validate-template.html)à la section *Référence des AWS CLI commandes*. 

------
#### [ PowerShell ]

**Outils pour PowerShell V4**  
**Exemple 1 : valide le contenu du modèle spécifié. La sortie détaille les fonctionnalités, la description et les paramètres du modèle.**  

```
Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"
```
**Exemple 2 : valide le modèle spécifié accessible via une URL Amazon S3. La sortie détaille les fonctionnalités, la description et les paramètres du modèle.**  

```
Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
```
+  Pour plus de détails sur l'API, reportez-vous [ValidateTemplate](https://docs.aws.amazon.com/powershell/v4/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V4)*. 

**Outils pour PowerShell V5**  
**Exemple 1 : valide le contenu du modèle spécifié. La sortie détaille les fonctionnalités, la description et les paramètres du modèle.**  

```
Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"
```
**Exemple 2 : valide le modèle spécifié accessible via une URL Amazon S3. La sortie détaille les fonctionnalités, la description et les paramètres du modèle.**  

```
Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
```
+  Pour plus de détails sur l'API, reportez-vous [ValidateTemplate](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

Voici un exemple de réponse qui génère une erreur de validation.

```
{
    "ResponseMetadata": {
        "RequestId": "4ae33ec0-1988-11e3-818b-e15a6df955cd"
    },
    "Errors": [
        {
            "Message": "Template format error: JSON not well-formed. (line 11, column 8)",
            "Code": "ValidationError",
            "Type": "Sender"
        }
    ],
    "Capabilities": [],
    "Parameters": []
}
A client error (ValidationError) occurred: Template format error: JSON not well-formed. (line 11, column 8)
```

**Note**  
La commande `validate-template` est conçue pour vérifier uniquement la syntaxe de votre modèle. Elle ne garantit pas que les valeurs de propriété que vous avez spécifiées pour une ressource sont valides pour cette ressource. Elle ne détermine pas non plus le nombre de ressources qui existeront lorsque la pile sera créée.  
Pour vérifier la validité opérationnelle, vous devez essayer de créer la pile. Il n'y a pas de bac à sable ni de zone de test pour les CloudFormation piles. Les ressources que vous créez lors des tests vous sont donc facturées.

**Exemple de disponibilité**  
Vous n’avez pas trouvé ce dont vous avez besoin ? Faites une demande d’un nouvel exemple à l’aide du lien **Fournir des commentaires** au bas de cette page.

# Téléchargez des artefacts locaux dans un compartiment S3 avec le AWS CLI
<a name="using-cfn-cli-package"></a>

Vous pouvez utiliser le AWS CLI pour télécharger des artefacts locaux référencés par un CloudFormation modèle dans un compartiment Amazon S3. Les artefacts locaux sont des fichiers auxquels vous faites référence dans votre modèle. Au lieu de télécharger manuellement les fichiers vers un compartiment S3, puis d’ajouter leurs emplacements à votre modèle, vous pouvez spécifier les artefacts locaux dans votre modèle et utiliser la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) pour les charger rapidement. 

Un artefact local est un chemin vers un fichier ou un dossier que la commande **package** charge dans Amazon S3. Par exemple, un artefact peut être un chemin local vers le code source de votre AWS Lambda fonction ou le OpenAPI fichier d'une API REST Amazon API Gateway. 

Lorsque vous utilisez la commande **package** :
+ Si vous spécifiez un fichier, la commande le charge directement dans le compartiment S3. 
+ Si vous spécifiez un dossier, la commande crée un fichier `.zip` pour le dossier, puis charge le fichier `.zip`. 
+ Si vous ne spécifiez pas de chemin d’accès, la commande crée un fichier `.zip` pour le répertoire de travail et le charge. 

Vous pouvez spécifier un chemin d'accès absolu ou relatif, où le chemin d'accès relatif correspond à l'emplacement de votre modèle.

Après avoir chargé les artefacts, la commande renvoie une copie de votre modèle, en remplaçant les références vers des artefacts locaux par l'emplacement S3 où la commande a chargé les artefacts. Vous pouvez ensuite utiliser le modèle renvoyé pour créer ou mettre à jour une pile.

**Note**  
Vous pouvez utiliser des artefacts locaux uniquement pour les propriétés de ressource que la commande **package** prend en charge. Pour plus d’informations sur cette commande et pour obtenir la liste des propriétés de ressources prises en charge, consultez la documentation [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) dans la [Référence des commandes AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/index.html).



## Conditions préalables
<a name="using-cfn-cli-package-prerequisites"></a>

Avant de commencer, vous devez disposer d’un compartiment Amazon S3 existant. 

## package et déployer un modèle avec des artefacts locaux
<a name="package-and-deploy-a-template-with-local-artifacts"></a>

Le modèle suivant spécifie l'artefact local pour le code source de la fonction Lambda. Le code source est stocké dans le dossier `/home/user/code/lambdafunction`.

**Modèle d'origine**

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Transform": "AWS::Serverless-2016-10-31",
  "Resources": {
    "MyFunction": {
      "Type": "AWS::Serverless::Function",
      "Properties": {
        "Handler": "index.handler",
        "Runtime": "nodejs18.x",
        "CodeUri": "/home/user/code/lambdafunction"
      }
    }
  }
}
```

La commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) suivante crée et charge un fichier `.zip` du dossier du code source de la fonction à la racine du compartiment spécifié.

```
aws cloudformation package \
  --s3-bucket amzn-s3-demo-bucket \
  --template /path_to_template/template.json \
  --output-template-file packaged-template.json \
  --output json
```

La commande génère un nouveau modèle à l’emplacement spécifié par `--output-template-file`. Elle remplace la référence à l’artefact par l’emplacement Amazon S3, comme indiqué ci-dessous. Le `.zip` fichier est nommé en utilisant la MD5 somme de contrôle du contenu du dossier, plutôt que le nom du dossier lui-même.

**Modèle obtenu**

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Transform": "AWS::Serverless-2016-10-31",
  "Resources": {
    "MyFunction": {
      "Type": "AWS::Serverless::Function",
      "Properties": {
        "Handler": "index.handler",
        "Runtime": "nodejs18.x",
        "CodeUri": "s3://amzn-s3-demo-bucket/md5 checksum"
      }
    }
  }
}
```

Après avoir package les artefacts de votre modèle, déployez le modèle traité à l’aide de la commande [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/).

```
aws cloudformation deploy \
  --template-file packaged-template.json \
  --stack-name stack-name
```

Lorsque vous déployez des modèles de plus de 51 200 octets, utilisez la commande **deploy** avec l’option `--s3-bucket` pour charger votre modèle vers S3, comme dans l’exemple suivant.

```
aws cloudformation deploy \
  --template-file packaged-template.json \
  --stack-name stack-name \
  --s3-bucket amzn-s3-demo-bucket
```

**Note**  
Pour un autre exemple d’utilisation de la commande **package** pour charger des artefacts locaux, consultez [Diviser un modèle en éléments réutilisables à l’aide de piles imbriquées](using-cfn-nested-stacks.md).