

D'autres exemples de AWS SDK sont disponibles dans le référentiel [AWS Doc SDK Examples](https://github.com/awsdocs/aws-doc-sdk-examples) GitHub .

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 code pour CloudFormation l'utilisation AWS SDKs
<a name="cloudformation_code_examples"></a>

Les exemples de code suivants vous montrent comment utiliser AWS CloudFormation un kit de développement AWS logiciel (SDK).

Les *actions* sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Les *scénarios* sont des exemples de code qui vous montrent comment accomplir des tâches spécifiques en appelant plusieurs fonctions au sein d’un même service ou combinés à d’autres Services AWS.

**Ressources supplémentaires**
+  **[CloudFormation Guide de l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)** — Plus d'informations sur CloudFormation.
+ **[CloudFormation Référence d'API](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)** : détails sur toutes les CloudFormation actions disponibles.
+ **[AWS Centre pour les développeurs](https://aws.amazon.com/developer/code-examples/?awsf.sdk-code-examples-product=product%23cloudformation)** : exemples de code que vous pouvez filtrer par catégorie ou par recherche en texte intégral.
+ **[AWS Exemples de SDK](https://github.com/awsdocs/aws-doc-sdk-examples)** : GitHub dépôt avec code complet dans les langues préférées. Inclut des instructions sur la configuration et l’exécution du code.

**Contents**
+ [Principes de base](cloudformation_code_examples_basics.md)
  + [Bonjour CloudFormation](cloudformation_example_cloudformation_Hello_section.md)
  + [Actions](cloudformation_code_examples_actions.md)
    + [`CancelUpdateStack`](cloudformation_example_cloudformation_CancelUpdateStack_section.md)
    + [`ContinueUpdateRollback`](cloudformation_example_cloudformation_ContinueUpdateRollback_section.md)
    + [`CreateStack`](cloudformation_example_cloudformation_CreateStack_section.md)
    + [`DeleteStack`](cloudformation_example_cloudformation_DeleteStack_section.md)
    + [`DescribeStackEvents`](cloudformation_example_cloudformation_DescribeStackEvents_section.md)
    + [`DescribeStackResource`](cloudformation_example_cloudformation_DescribeStackResource_section.md)
    + [`DescribeStackResources`](cloudformation_example_cloudformation_DescribeStackResources_section.md)
    + [`DescribeStacks`](cloudformation_example_cloudformation_DescribeStacks_section.md)
    + [`EstimateTemplateCost`](cloudformation_example_cloudformation_EstimateTemplateCost_section.md)
    + [`GetTemplate`](cloudformation_example_cloudformation_GetTemplate_section.md)
    + [`ListStackResources`](cloudformation_example_cloudformation_ListStackResources_section.md)
    + [`ListStacks`](cloudformation_example_cloudformation_ListStacks_section.md)
    + [`UpdateStack`](cloudformation_example_cloudformation_UpdateStack_section.md)
    + [`ValidateTemplate`](cloudformation_example_cloudformation_ValidateTemplate_section.md)
+ [Scénarios](cloudformation_code_examples_scenarios.md)
  + [Créer une API REST pour suivre les données de la COVID-19](cloudformation_example_cross_ApiGatewayDataTracker_section.md)

# Exemples de base pour CloudFormation l'utilisation AWS SDKs
<a name="cloudformation_code_examples_basics"></a>

Les exemples de code suivants montrent comment utiliser les principes de base de AWS CloudFormation with AWS SDKs. 

**Contents**
+ [Bonjour CloudFormation](cloudformation_example_cloudformation_Hello_section.md)
+ [Actions](cloudformation_code_examples_actions.md)
  + [`CancelUpdateStack`](cloudformation_example_cloudformation_CancelUpdateStack_section.md)
  + [`ContinueUpdateRollback`](cloudformation_example_cloudformation_ContinueUpdateRollback_section.md)
  + [`CreateStack`](cloudformation_example_cloudformation_CreateStack_section.md)
  + [`DeleteStack`](cloudformation_example_cloudformation_DeleteStack_section.md)
  + [`DescribeStackEvents`](cloudformation_example_cloudformation_DescribeStackEvents_section.md)
  + [`DescribeStackResource`](cloudformation_example_cloudformation_DescribeStackResource_section.md)
  + [`DescribeStackResources`](cloudformation_example_cloudformation_DescribeStackResources_section.md)
  + [`DescribeStacks`](cloudformation_example_cloudformation_DescribeStacks_section.md)
  + [`EstimateTemplateCost`](cloudformation_example_cloudformation_EstimateTemplateCost_section.md)
  + [`GetTemplate`](cloudformation_example_cloudformation_GetTemplate_section.md)
  + [`ListStackResources`](cloudformation_example_cloudformation_ListStackResources_section.md)
  + [`ListStacks`](cloudformation_example_cloudformation_ListStacks_section.md)
  + [`UpdateStack`](cloudformation_example_cloudformation_UpdateStack_section.md)
  + [`ValidateTemplate`](cloudformation_example_cloudformation_ValidateTemplate_section.md)

# Bonjour CloudFormation
<a name="cloudformation_example_cloudformation_Hello_section"></a>

L’exemple de code suivant montre comment démarrer avec CloudFormation.

------
#### [ .NET ]

**SDK pour .NET (v4)**  
 Il y en a plus à ce sujet 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/dotnetv4/CloudFormation#code-examples). 

```
using Amazon.CloudFormation;
using Amazon.CloudFormation.Model;
using Amazon.Runtime;

namespace CloudFormationActions;

public static class HelloCloudFormation
{
    public static IAmazonCloudFormation _amazonCloudFormation = null!;

    static async Task Main(string[] args)
    {
        // Create the CloudFormation client
        _amazonCloudFormation = new AmazonCloudFormationClient();
        Console.WriteLine($"\nIn Region: {_amazonCloudFormation.Config.RegionEndpoint}");

        // List the resources for each stack
        await ListResources();
    }

    /// <summary>
    /// Method to list stack resources and other information.
    /// </summary>
    /// <returns>True if successful.</returns>
    public static async Task<bool> ListResources()
    {
        try
        {
            Console.WriteLine("Getting CloudFormation stack information...");

            // Get all stacks using the stack paginator.
            var paginatorForDescribeStacks =
                _amazonCloudFormation.Paginators.DescribeStacks(
                    new DescribeStacksRequest());
            if (paginatorForDescribeStacks.Stacks != null)
            {
                await foreach (Stack stack in paginatorForDescribeStacks.Stacks)
                {
                    // Basic information for each stack
                    Console.WriteLine(
                        "\n------------------------------------------------");
                    Console.WriteLine($"\nStack: {stack.StackName}");
                    Console.WriteLine($"  Status: {stack.StackStatus.Value}");
                    Console.WriteLine($"  Created: {stack.CreationTime}");

                    // The tags of each stack (etc.)
                    if (stack.Tags != null && stack.Tags.Count > 0)
                    {
                        Console.WriteLine("  Tags:");
                        foreach (Tag tag in stack.Tags)
                            Console.WriteLine($"    {tag.Key}, {tag.Value}");
                    }

                    // The resources of each stack
                    DescribeStackResourcesResponse responseDescribeResources =
                        await _amazonCloudFormation.DescribeStackResourcesAsync(
                            new DescribeStackResourcesRequest
                            {
                                StackName = stack.StackName
                            });
                    if (responseDescribeResources.StackResources != null && responseDescribeResources.StackResources.Count > 0)
                    {
                        Console.WriteLine("  Resources:");
                        foreach (StackResource resource in responseDescribeResources
                                     .StackResources)
                            Console.WriteLine(
                                $"    {resource.LogicalResourceId}: {resource.ResourceStatus}");
                    }
                }
            }

            Console.WriteLine("\n------------------------------------------------");
            return true;
        }
        catch (AmazonCloudFormationException ex)
        {
            Console.WriteLine("Unable to get stack information:\n" + ex.Message);
            return false;
        }
        catch (AmazonServiceException ex)
        {
            if (ex.Message.Contains("Unable to get IAM security credentials"))
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("If you are usnig SSO, be sure to install" +
                                  " the AWSSDK.SSO and AWSSDK.SSOOIDC packages.");
            }
            else
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }

            return false;
        }
        catch (ArgumentNullException ex)
        {
            if (ex.Message.Contains("Options property cannot be empty: ClientName"))
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("If you are using SSO, have you logged in?");
            }
            else
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }

            return false;
        }
    }
```
+  Pour plus de détails sur l'API, reportez-vous [DescribeStackResources](https://docs.aws.amazon.com/goto/DotNetSDKV4/cloudformation-2010-05-15/DescribeStackResources)à la section *Référence des AWS SDK pour .NET API*. 

------

# Actions d' CloudFormation utilisation AWS SDKs
<a name="cloudformation_code_examples_actions"></a>

Les exemples de code suivants montrent comment effectuer des CloudFormation actions individuelles avec AWS SDKs. Chaque exemple inclut un lien vers GitHub, où vous pouvez trouver des instructions pour configurer et exécuter le code. 

Ces extraits appellent l' CloudFormation API et sont des extraits de code de programmes plus volumineux qui doivent être exécutés en contexte. Vous pouvez voir les actions dans leur contexte dans [Scénarios d' CloudFormation utilisation AWS SDKs](cloudformation_code_examples_scenarios.md). 

 Les exemples suivants incluent uniquement les actions les plus couramment utilisées. Pour obtenir la liste complète, consultez la [Référence des API AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html). 

**Topics**
+ [`CancelUpdateStack`](cloudformation_example_cloudformation_CancelUpdateStack_section.md)
+ [`ContinueUpdateRollback`](cloudformation_example_cloudformation_ContinueUpdateRollback_section.md)
+ [`CreateStack`](cloudformation_example_cloudformation_CreateStack_section.md)
+ [`DeleteStack`](cloudformation_example_cloudformation_DeleteStack_section.md)
+ [`DescribeStackEvents`](cloudformation_example_cloudformation_DescribeStackEvents_section.md)
+ [`DescribeStackResource`](cloudformation_example_cloudformation_DescribeStackResource_section.md)
+ [`DescribeStackResources`](cloudformation_example_cloudformation_DescribeStackResources_section.md)
+ [`DescribeStacks`](cloudformation_example_cloudformation_DescribeStacks_section.md)
+ [`EstimateTemplateCost`](cloudformation_example_cloudformation_EstimateTemplateCost_section.md)
+ [`GetTemplate`](cloudformation_example_cloudformation_GetTemplate_section.md)
+ [`ListStackResources`](cloudformation_example_cloudformation_ListStackResources_section.md)
+ [`ListStacks`](cloudformation_example_cloudformation_ListStacks_section.md)
+ [`UpdateStack`](cloudformation_example_cloudformation_UpdateStack_section.md)
+ [`ValidateTemplate`](cloudformation_example_cloudformation_ValidateTemplate_section.md)

# Utilisation de `CancelUpdateStack` avec une CLI
<a name="cloudformation_example_cloudformation_CancelUpdateStack_section"></a>

Les exemples de code suivants illustrent comment utiliser `CancelUpdateStack`.

------
#### [ 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)*. 

------

# Utilisation de `ContinueUpdateRollback` avec une CLI
<a name="cloudformation_example_cloudformation_ContinueUpdateRollback_section"></a>

Les exemples de code suivants illustrent comment utiliser `ContinueUpdateRollback`.

------
#### [ 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)*. 

------

# Utilisation de `CreateStack` avec une CLI
<a name="cloudformation_example_cloudformation_CreateStack_section"></a>

Les exemples de code suivants illustrent comment utiliser `CreateStack`.

------
#### [ 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)*. 

------

# Utilisation de `DeleteStack` avec une CLI
<a name="cloudformation_example_cloudformation_DeleteStack_section"></a>

Les exemples de code suivants illustrent comment utiliser `DeleteStack`.

------
#### [ 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)*. 

------

# Utilisation de `DescribeStackEvents` avec une CLI
<a name="cloudformation_example_cloudformation_DescribeStackEvents_section"></a>

Les exemples de code suivants illustrent comment utiliser `DescribeStackEvents`.

------
#### [ 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)*. 

------

# Utilisation de `DescribeStackResource` avec une CLI
<a name="cloudformation_example_cloudformation_DescribeStackResource_section"></a>

Les exemples de code suivants illustrent comment utiliser `DescribeStackResource`.

------
#### [ 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)*. 

------

# Utilisation de `DescribeStackResources` avec une CLI
<a name="cloudformation_example_cloudformation_DescribeStackResources_section"></a>

Les exemples de code suivants illustrent comment utiliser `DescribeStackResources`.

------
#### [ 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)*. 

------

# Utilisation `DescribeStacks` avec un AWS SDK ou une CLI
<a name="cloudformation_example_cloudformation_DescribeStacks_section"></a>

Les exemples de code suivants illustrent comment utiliser `DescribeStacks`.

------
#### [ 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 à ce sujet 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)*. 

------

# Utilisation de `EstimateTemplateCost` avec une CLI
<a name="cloudformation_example_cloudformation_EstimateTemplateCost_section"></a>

Les exemples de code suivants illustrent comment utiliser `EstimateTemplateCost`.

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

**AWS CLI**  
**Pour estimer le coût d’un modèle**  
L’exemple `estimate-template-cost` suivant génère une estimation des coûts pour un modèle nommé `template.yaml` dans le dossier actuel.  

```
aws cloudformation estimate-template-cost \
    --template-body file://template.yaml
```
Sortie :  

```
{
    "Url": "http://calculator.s3.amazonaws.com/calc5.html?key=cloudformation/7870825a-xmpl-4def-92e7-c4f8dd360cca"
}
```
+  Pour plus de détails sur l'API, reportez-vous [EstimateTemplateCost](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/estimate-template-cost.html)à la section *Référence des AWS CLI commandes*. 

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

**Outils pour PowerShell V4**  
**Exemple 1 : renvoie l'URL d'un calculateur mensuel AWS simple avec une chaîne de requête qui décrit les ressources nécessaires pour exécuter le modèle. Le modèle est obtenu à partir de l’URL Amazon S3 spécifiée et du seul paramètre de personnalisation appliqué. Le paramètre peut également être spécifié en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
                        -Region us-west-1 `
                        -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }
```
**Exemple 2 : renvoie l'URL d'un calculateur mensuel AWS simple avec une chaîne de requête qui décrit les ressources nécessaires pour exécuter le modèle. Le modèle est analysé à partir du contenu fourni et des paramètres de personnalisation appliqués (cet exemple suppose que le contenu du modèle aurait déclaré deux paramètres, « KeyName » et « InstanceType »). Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" `
                        -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },`
                                      @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })
```
**Exemple 3 : Utilise New-Object pour créer l'ensemble des paramètres du modèle et renvoie une URL de calculateur mensuel AWS simple avec une chaîne de requête qui décrit les ressources requises pour exécuter le modèle. Le modèle est analysé à partir du contenu fourni, avec des paramètres de personnalisation (cet exemple suppose que le contenu du modèle aurait déclaré deux paramètres, « KeyName » et « InstanceType »).**  

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

$p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter
$p2.ParameterKey = "InstanceType"
$p2.ParameterValue = "m1.large"

Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" -Parameter @( $p1, $p2 )
```
+  Pour plus de détails sur l'API, reportez-vous [EstimateTemplateCost](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 l'URL d'un calculateur mensuel AWS simple avec une chaîne de requête qui décrit les ressources nécessaires pour exécuter le modèle. Le modèle est obtenu à partir de l’URL Amazon S3 spécifiée et du seul paramètre de personnalisation appliqué. Le paramètre peut également être spécifié en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
                        -Region us-west-1 `
                        -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }
```
**Exemple 2 : renvoie l'URL d'un calculateur mensuel AWS simple avec une chaîne de requête qui décrit les ressources nécessaires pour exécuter le modèle. Le modèle est analysé à partir du contenu fourni et des paramètres de personnalisation appliqués (cet exemple suppose que le contenu du modèle aurait déclaré deux paramètres, « KeyName » et « InstanceType »). Les paramètres de personnalisation peuvent également être spécifiés en utilisant « Key » et « Value » au lieu de ParameterKey « » et « ParameterValue ».**  

```
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" `
                        -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },`
                                      @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })
```
**Exemple 3 : Utilise New-Object pour créer l'ensemble des paramètres du modèle et renvoie une URL de calculateur mensuel AWS simple avec une chaîne de requête qui décrit les ressources requises pour exécuter le modèle. Le modèle est analysé à partir du contenu fourni, avec des paramètres de personnalisation (cet exemple suppose que le contenu du modèle aurait déclaré deux paramètres, « KeyName » et « InstanceType »).**  

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

$p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter
$p2.ParameterKey = "InstanceType"
$p2.ParameterValue = "m1.large"

Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" -Parameter @( $p1, $p2 )
```
+  Pour plus de détails sur l'API, reportez-vous [EstimateTemplateCost](https://docs.aws.amazon.com/powershell/v5/reference)à la section *Référence des Outils AWS pour PowerShell applets de commande (V5)*. 

------

# Utilisation de `GetTemplate` avec une CLI
<a name="cloudformation_example_cloudformation_GetTemplate_section"></a>

Les exemples de code suivants illustrent comment utiliser `GetTemplate`.

------
#### [ 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)*. 

------

# Utilisation de `ListStackResources` avec une CLI
<a name="cloudformation_example_cloudformation_ListStackResources_section"></a>

Les exemples de code suivants illustrent comment utiliser `ListStackResources`.

------
#### [ 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)*. 

------

# Utilisation de `ListStacks` avec une CLI
<a name="cloudformation_example_cloudformation_ListStacks_section"></a>

Les exemples de code suivants illustrent comment utiliser `ListStacks`.

------
#### [ 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)*. 

------

# Utilisation de `UpdateStack` avec une CLI
<a name="cloudformation_example_cloudformation_UpdateStack_section"></a>

Les exemples de code suivants illustrent comment utiliser `UpdateStack`.

------
#### [ 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)*. 

------

# Utilisation de `ValidateTemplate` avec une CLI
<a name="cloudformation_example_cloudformation_ValidateTemplate_section"></a>

Les exemples de code suivants illustrent comment utiliser `ValidateTemplate`.

------
#### [ 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)*. 

------

# Scénarios d' CloudFormation utilisation AWS SDKs
<a name="cloudformation_code_examples_scenarios"></a>

Les exemples de code suivants vous montrent comment implémenter des scénarios courants dans CloudFormation with AWS SDKs. Ces scénarios vous montrent comment accomplir des tâches spécifiques en appelant plusieurs fonctions CloudFormation ou en les combinant avec d'autres Services AWS. Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code. 

Les scénarios ciblent un niveau d’expérience intermédiaire pour vous aider à comprendre les actions de service dans leur contexte.

**Topics**
+ [Créer une API REST pour suivre les données de la COVID-19](cloudformation_example_cross_ApiGatewayDataTracker_section.md)

# Créer une API REST API Gateway pour suivre les données de la COVID-19
<a name="cloudformation_example_cross_ApiGatewayDataTracker_section"></a>

L’exemple de code suivant montre comment créer une API REST qui simule un système pour suivre les cas quotidiens de COVID-19 aux États-Unis, à l’aide de données fictives.

------
#### [ Python ]

**Kit SDK for Python (Boto3)**  
 Montre comment utiliser AWS Chalice avec le AWS SDK pour Python (Boto3) pour créer une API REST sans serveur qui utilise Amazon API Gateway et Amazon DynamoDB. AWS Lambda L’API REST simule un système qui suit les cas quotidiens de COVID-19 aux États-Unis à l’aide de données fictives. Découvrez comment :   
+ Utilisez AWS Chalice pour définir des routes dans les fonctions Lambda appelées pour gérer les requêtes REST qui passent par API Gateway.
+ Utilisez les fonctions Lambda pour récupérer et stocker des données dans une table DynamoDB afin de répondre aux demandes REST.
+ Définissez la structure des tables et les ressources des rôles de sécurité dans un AWS CloudFormation modèle.
+ Utilisez AWS Chalice CloudFormation pour empaqueter et déployer toutes les ressources nécessaires.
+  CloudFormation À utiliser pour nettoyer toutes les ressources créées.
 Pour obtenir le code source complet et les instructions de configuration et d'exécution, consultez l'exemple complet sur [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/cross_service/apigateway_covid-19_tracker).   

**Les services utilisés dans cet exemple**
+ API Gateway
+ CloudFormation
+ DynamoDB
+ Lambda

------