

Há mais exemplos de AWS SDK disponíveis no repositório [AWS Doc SDK Examples](https://github.com/awsdocs/aws-doc-sdk-examples) GitHub .

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Exemplos de código para CloudFormation usar AWS SDKs
<a name="cloudformation_code_examples"></a>

Os exemplos de código a seguir mostram como usar AWS CloudFormation com um kit de desenvolvimento de AWS software (SDK).

*Ações* são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.

*Cenários* são exemplos de código que mostram como realizar tarefas específicas chamando várias funções dentro de um serviço ou combinadas com outros Serviços da AWS.

**Mais atributos**
+  **[CloudFormation Guia do usuário](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)** — Mais informações sobre CloudFormation.
+ **[CloudFormation Referência da API](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)** — Detalhes sobre todas as CloudFormation ações disponíveis.
+ **[AWS Centro do desenvolvedor](https://aws.amazon.com/developer/code-examples/?awsf.sdk-code-examples-product=product%23cloudformation)** — exemplos de código que você pode filtrar por categoria ou pesquisa de texto completo.
+ **[AWS Exemplos de SDK](https://github.com/awsdocs/aws-doc-sdk-examples)** — GitHub repositório com código completo nos idiomas preferidos. Inclui instruções para configurar e executar o código.

**Contents**
+ [Conceitos básicos](cloudformation_code_examples_basics.md)
  + [Olá CloudFormation](cloudformation_example_cloudformation_Hello_section.md)
  + [Ações](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)
+ [Cenários](cloudformation_code_examples_scenarios.md)
  + [Criar uma API REST para monitorar dados da COVID-19](cloudformation_example_cross_ApiGatewayDataTracker_section.md)

# Exemplos básicos de CloudFormation uso AWS SDKs
<a name="cloudformation_code_examples_basics"></a>

Os exemplos de código a seguir mostram como usar o básico do AWS CloudFormation with AWS SDKs. 

**Contents**
+ [Olá CloudFormation](cloudformation_example_cloudformation_Hello_section.md)
+ [Ações](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)

# Olá CloudFormation
<a name="cloudformation_example_cloudformation_Hello_section"></a>

O exemplo de código a seguir mostra como começar a usar o CloudFormation.

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

**SDK para .NET (v4)**  
 Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no [AWS Code Examples Repository](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;
        }
    }
```
+  Para obter detalhes da API, consulte [DescribeStackResources](https://docs.aws.amazon.com/goto/DotNetSDKV4/cloudformation-2010-05-15/DescribeStackResources)a *Referência AWS SDK para .NET da API*. 

------

# Ações para CloudFormation usar AWS SDKs
<a name="cloudformation_code_examples_actions"></a>

Os exemplos de código a seguir demonstram como realizar CloudFormation ações individuais com AWS SDKs. Cada exemplo inclui um link para GitHub, onde você pode encontrar instruções para configurar e executar o código. 

Esses trechos chamam a CloudFormation API e são trechos de código de programas maiores que devem ser executados em contexto. É possível ver as ações em contexto em [Cenários para CloudFormation usar AWS SDKs](cloudformation_code_examples_scenarios.md). 

 Os exemplos a seguir incluem apenas as ações mais utilizadas. Para obter uma lista completa, consulte a [Referência de APIs do 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)

# Usar `CancelUpdateStack` com uma CLI
<a name="cloudformation_example_cloudformation_CancelUpdateStack_section"></a>

Os exemplos de código a seguir mostram como usar o `CancelUpdateStack`.

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

**AWS CLI**  
**Para cancelar uma atualização de pilha que está em andamento**  
O comando `cancel-update-stack` a seguir cancela uma atualização de pilha na pilha `myteststack`:  

```
aws cloudformation cancel-update-stack --stack-name myteststack
```
+  Para obter detalhes da API, consulte [CancelUpdateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/cancel-update-stack.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: cancela uma atualização na pilha especificada.**  

```
Stop-CFNUpdateStack -StackName "myStack"
```
+  Para obter detalhes da API, consulte [CancelUpdateStack](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: cancela uma atualização na pilha especificada.**  

```
Stop-CFNUpdateStack -StackName "myStack"
```
+  Para obter detalhes da API, consulte [CancelUpdateStack](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `ContinueUpdateRollback` com uma CLI
<a name="cloudformation_example_cloudformation_ContinueUpdateRollback_section"></a>

Os exemplos de código a seguir mostram como usar o `ContinueUpdateRollback`.

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

**AWS CLI**  
**Para fazer nova tentativa de reversão de atualização**  
O exemplo `continue-update-rollback` a seguir retoma uma operação de reversão de uma atualização de pilha anterior em que houve falha.  

```
aws cloudformation continue-update-rollback \
    --stack-name my-stack
```
Este comando não produz saída.  
+  Para obter detalhes da API, consulte [ContinueUpdateRollback](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/continue-update-rollback.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: continua a reversão da pilha nomeada, que deve estar no estado "UPDATE\$1ROLLBACK\$1FAILED". Se a reversão contínua for bem-sucedida, a pilha entrará no estado "UPDATE\$1ROLLBACK\$1COMPLETE".**  

```
Resume-CFNUpdateRollback -StackName "myStack"
```
+  Para obter detalhes da API, consulte [ContinueUpdateRollback](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: continua a reversão da pilha nomeada, que deve estar no estado "UPDATE\$1ROLLBACK\$1FAILED". Se a reversão contínua for bem-sucedida, a pilha entrará no estado "UPDATE\$1ROLLBACK\$1COMPLETE".**  

```
Resume-CFNUpdateRollback -StackName "myStack"
```
+  Para obter detalhes da API, consulte [ContinueUpdateRollback](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `CreateStack` com uma CLI
<a name="cloudformation_example_cloudformation_CreateStack_section"></a>

Os exemplos de código a seguir mostram como usar o `CreateStack`.

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

**AWS CLI**  
**Para criar uma AWS CloudFormation pilha**  
O exemplo de `create-stacks` a seguir cria uma pilha com o nome de `myteststack` usando o arquivo de modelo `sampletemplate.json`:  

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

```
{
    "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896"
}
```
Para obter mais informações, consulte Pilhas no *Guia do AWS CloudFormation usuário*.  
+  Para obter detalhes da API, consulte [CreateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: cria uma nova pilha com o nome especificado. O modelo é analisado a partir do conteúdo fornecido com parâmetros de personalização ('PK1' e 'PK2' representam os nomes dos parâmetros declarados no conteúdo do modelo, 'PV1' e 'PV2' representam os valores desses parâmetros. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se houver falha na criação da pilha, ela não será revertida.**  

```
New-CFNStack -StackName "myStack" `
             -TemplateBody "{TEMPLATE CONTENT HERE}" `
             -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) `
             -DisableRollback $true
```
**Exemplo 2: cria uma nova pilha com o nome especificado. O modelo é analisado a partir do conteúdo fornecido com parâmetros de personalização ('PK1' e 'PK2' representam os nomes dos parâmetros declarados no conteúdo do modelo, 'PV1' e 'PV2' representam os valores desses parâmetros. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se houver falha na criação da pilha, ela será revertida.**  

```
$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"
```
**Exemplo 3: cria uma nova pilha com o nome especificado. O modelo é obtido da URL do Amazon S3 com parâmetros de personalização ('PK1' representa o nome de um parâmetro declarado no conteúdo do modelo, 'PV1' representa o valor do parâmetro. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se a criação da pilha falhar, ela será revertida (o mesmo que especificar - DisableRollback \$1false**).  

```
New-CFNStack -StackName "myStack" `
             -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
             -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemplo 4: cria uma nova pilha com o nome especificado. O modelo é obtido da URL do Amazon S3 com parâmetros de personalização ('PK1' representa o nome de um parâmetro declarado no conteúdo do modelo, 'PV1' representa o valor do parâmetro. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se a criação da pilha falhar, ela será revertida (o mesmo que especificar - DisableRollback \$1false). A notificação especificada AENs receberá eventos publicados relacionados à pilha.**  

```
New-CFNStack -StackName "myStack" `
             -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
             -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } `
             -NotificationARN @( "arn1", "arn2" )
```
+  Para obter detalhes da API, consulte [CreateStack](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: cria uma nova pilha com o nome especificado. O modelo é analisado a partir do conteúdo fornecido com parâmetros de personalização ('PK1' e 'PK2' representam os nomes dos parâmetros declarados no conteúdo do modelo, 'PV1' e 'PV2' representam os valores desses parâmetros. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se houver falha na criação da pilha, ela não será revertida.**  

```
New-CFNStack -StackName "myStack" `
             -TemplateBody "{TEMPLATE CONTENT HERE}" `
             -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) `
             -DisableRollback $true
```
**Exemplo 2: cria uma nova pilha com o nome especificado. O modelo é analisado a partir do conteúdo fornecido com parâmetros de personalização ('PK1' e 'PK2' representam os nomes dos parâmetros declarados no conteúdo do modelo, 'PV1' e 'PV2' representam os valores desses parâmetros. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se houver falha na criação da pilha, ela será revertida.**  

```
$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"
```
**Exemplo 3: cria uma nova pilha com o nome especificado. O modelo é obtido da URL do Amazon S3 com parâmetros de personalização ('PK1' representa o nome de um parâmetro declarado no conteúdo do modelo, 'PV1' representa o valor do parâmetro. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se a criação da pilha falhar, ela será revertida (o mesmo que especificar - DisableRollback \$1false**).  

```
New-CFNStack -StackName "myStack" `
             -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
             -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemplo 4: cria uma nova pilha com o nome especificado. O modelo é obtido da URL do Amazon S3 com parâmetros de personalização ('PK1' representa o nome de um parâmetro declarado no conteúdo do modelo, 'PV1' representa o valor do parâmetro. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. Se a criação da pilha falhar, ela será revertida (o mesmo que especificar - DisableRollback \$1false). A notificação especificada AENs receberá eventos publicados relacionados à pilha.**  

```
New-CFNStack -StackName "myStack" `
             -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
             -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } `
             -NotificationARN @( "arn1", "arn2" )
```
+  Para obter detalhes da API, consulte [CreateStack](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `DeleteStack` com uma CLI
<a name="cloudformation_example_cloudformation_DeleteStack_section"></a>

Os exemplos de código a seguir mostram como usar o `DeleteStack`.

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

**AWS CLI**  
**Para excluir uma pilha**  
O exemplo de `delete-stack` a seguir exclui a pilha especificada.  

```
aws cloudformation delete-stack \
    --stack-name my-stack
```
Este comando não produz saída.  
+  Para obter detalhes da API, consulte [DeleteStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/delete-stack.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: exclui a pilha especificada.**  

```
Remove-CFNStack -StackName "myStack"
```
+  Para obter detalhes da API, consulte [DeleteStack](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: exclui a pilha especificada.**  

```
Remove-CFNStack -StackName "myStack"
```
+  Para obter detalhes da API, consulte [DeleteStack](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `DescribeStackEvents` com uma CLI
<a name="cloudformation_example_cloudformation_DescribeStackEvents_section"></a>

Os exemplos de código a seguir mostram como usar o `DescribeStackEvents`.

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

**AWS CLI**  
**Para descrever os eventos da pilha**  
O exemplo `describe-stack-events` a seguir exibe os dois eventos mais recentes da pilha especificada.  

```
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=="
}
```
+  Para obter detalhes da API, consulte [DescribeStackEvents](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-events.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna todos os eventos relacionados à pilha especificada.**  

```
Get-CFNStackEvent -StackName "myStack"
```
+  Para obter detalhes da API, consulte [DescribeStackEvents](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: retorna todos os eventos relacionados à pilha especificada.**  

```
Get-CFNStackEvent -StackName "myStack"
```
+  Para obter detalhes da API, consulte [DescribeStackEvents](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `DescribeStackResource` com uma CLI
<a name="cloudformation_example_cloudformation_DescribeStackResource_section"></a>

Os exemplos de código a seguir mostram como usar o `DescribeStackResource`.

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

**AWS CLI**  
**Para obter informações detalhadas sobre o recurso de uma pilha**  
O exemplo de `describe-stack-resource` a seguir exibe os detalhes do recurso denominado `MyFunction` da pilha especificada.  

```
aws cloudformation describe-stack-resource \
    --stack-name MyStack \
    --logical-resource-id MyFunction
```
Saída:  

```
{
    "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"
        }
    }
}
```
+  Para obter detalhes da API, consulte [DescribeStackResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-resource.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: Retorna a descrição de um recurso identificado no modelo associado à pilha especificada pelo ID lógico DBInstance “Meu”.**  

```
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
```
+  Para obter detalhes da API, consulte [DescribeStackResource](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: Retorna a descrição de um recurso identificado no modelo associado à pilha especificada pelo ID lógico DBInstance “Meu”.**  

```
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
```
+  Para obter detalhes da API, consulte [DescribeStackResource](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `DescribeStackResources` com uma CLI
<a name="cloudformation_example_cloudformation_DescribeStackResources_section"></a>

Os exemplos de código a seguir mostram como usar o `DescribeStackResources`.

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

**AWS CLI**  
**Para obter informações detalhadas sobre o recurso de uma pilha**  
O exemplo de `describe-stack-resources` a seguir exibe os detalhes dos recursos na pilha especificada.  

```
aws cloudformation describe-stack-resources \
    --stack-name my-stack
```
Saída:  

```
{
    "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"
            }
        }
    ]
}
```
+  Para obter detalhes da API, consulte [DescribeStackResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-resources.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna as descrições dos AWS recursos de até 100 recursos associados à pilha especificada. Para obter detalhes de todos os recursos associados a uma pilha, use o Get- CFNStackResourceSummary, que também oferece suporte à paginação manual dos resultados.**  

```
Get-CFNStackResourceList -StackName "myStack"
```
**Exemplo 2: retorna a descrição da instância do Amazon EC2 identificada no modelo associado à pilha especificada pelo ID lógico "Ec2Instance".**  

```
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"
```
**Exemplo 3: retorna a descrição de até 100 recursos associados à pilha contendo uma instância do Amazon EC2 identificada pelo ID de instância "i-123456". Para obter detalhes de todos os recursos associados a uma pilha, use o Get- CFNStackResourceSummary, que também oferece suporte à paginação manual dos resultados.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456"
```
**Exemplo 4: retorna a descrição da instância do Amazon EC2 identificada pelo ID lógico "Ec2Instance" no modelo de uma pilha. A pilha é identificada usando o ID de recurso físico de um recurso que ela contém; nesse caso, também uma instância do Amazon EC2 com o ID de instância "i-123456". Um outro recurso físico também poderia ser usado para identificar a pilha, dependendo do conteúdo do modelo, por exemplo, um bucket do Amazon S3.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
```
+  Para obter detalhes da API, consulte [DescribeStackResources](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: retorna as descrições dos AWS recursos de até 100 recursos associados à pilha especificada. Para obter detalhes de todos os recursos associados a uma pilha, use o Get- CFNStackResourceSummary, que também oferece suporte à paginação manual dos resultados.**  

```
Get-CFNStackResourceList -StackName "myStack"
```
**Exemplo 2: retorna a descrição da instância do Amazon EC2 identificada no modelo associado à pilha especificada pelo ID lógico "Ec2Instance".**  

```
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"
```
**Exemplo 3: retorna a descrição de até 100 recursos associados à pilha contendo uma instância do Amazon EC2 identificada pelo ID de instância "i-123456". Para obter detalhes de todos os recursos associados a uma pilha, use o Get- CFNStackResourceSummary, que também oferece suporte à paginação manual dos resultados.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456"
```
**Exemplo 4: retorna a descrição da instância do Amazon EC2 identificada pelo ID lógico "Ec2Instance" no modelo de uma pilha. A pilha é identificada usando o ID de recurso físico de um recurso que ela contém; nesse caso, também uma instância do Amazon EC2 com o ID de instância "i-123456". Um outro recurso físico também poderia ser usado para identificar a pilha, dependendo do conteúdo do modelo, por exemplo, um bucket do Amazon S3.**  

```
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
```
+  Para obter detalhes da API, consulte [DescribeStackResources](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Use `DescribeStacks` com um AWS SDK ou CLI
<a name="cloudformation_example_cloudformation_DescribeStacks_section"></a>

Os exemplos de código a seguir mostram como usar o `DescribeStacks`.

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

**AWS CLI**  
**Para descrever AWS CloudFormation pilhas**  
O comando `describe-stacks` a seguir mostra informações resumidas da pilha `myteststack`:  

```
aws cloudformation describe-stacks --stack-name myteststack
```
Saída:  

```
{
    "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
        }
    ]
}
```
Para obter mais informações, consulte Pilhas no *Guia do AWS CloudFormation usuário*.  
+  Para obter detalhes da API, consulte [DescribeStacks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stacks.html)em *Referência de AWS CLI Comandos*. 

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

**SDK para Go V2**  
 Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no [AWS Code Examples Repository](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
}
```
+  Para obter detalhes da API, consulte [DescribeStacks](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/cloudformation#Client.DescribeStacks)a *Referência AWS SDK para Go da API*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna um conjunto de instâncias de pilha descrevendo todas as pilhas do usuário.**  

```
Get-CFNStack
```
**Exemplo 2: retorna uma instância de pilha descrevendo a pilha especificada**  

```
Get-CFNStack -StackName "myStack"
```
+  Para obter detalhes da API, consulte [DescribeStacks](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: retorna um conjunto de instâncias de pilha descrevendo todas as pilhas do usuário.**  

```
Get-CFNStack
```
**Exemplo 2: retorna uma instância de pilha descrevendo a pilha especificada**  

```
Get-CFNStack -StackName "myStack"
```
+  Para obter detalhes da API, consulte [DescribeStacks](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `EstimateTemplateCost` com uma CLI
<a name="cloudformation_example_cloudformation_EstimateTemplateCost_section"></a>

Os exemplos de código a seguir mostram como usar o `EstimateTemplateCost`.

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

**AWS CLI**  
**Para estimar o custo do modelo**  
O exemplo de `estimate-template-cost` a seguir gera uma estimativa de custo para um modelo denominado `template.yaml` na pasta atual.  

```
aws cloudformation estimate-template-cost \
    --template-body file://template.yaml
```
Saída:  

```
{
    "Url": "http://calculator.s3.amazonaws.com/calc5.html?key=cloudformation/7870825a-xmpl-4def-92e7-c4f8dd360cca"
}
```
+  Para obter detalhes da API, consulte [EstimateTemplateCost](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/estimate-template-cost.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna uma URL AWS simples da calculadora mensal com uma sequência de caracteres de consulta que descreve os recursos necessários para executar o modelo. O modelo é obtido da URL do Amazon S3 especificada e do único parâmetro de personalização aplicado. O parâmetro também pode ser especificado usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
                        -Region us-west-1 `
                        -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }
```
**Exemplo 2: retorna uma URL AWS simples da calculadora mensal com uma sequência de caracteres de consulta que descreve os recursos necessários para executar o modelo. O modelo é analisado a partir do conteúdo fornecido e os parâmetros de personalização aplicados (este exemplo pressupõe que o conteúdo do modelo teria declarado dois parâmetros, '' e 'KeyName')InstanceType. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" `
                        -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },`
                                      @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })
```
**Exemplo 3: usa New-Object para criar o conjunto de parâmetros do modelo e retorna uma URL de calculadora mensal AWS simples com uma sequência de caracteres de consulta que descreve os recursos necessários para executar o modelo. O modelo é analisado a partir do conteúdo fornecido, com parâmetros de personalização (este exemplo pressupõe que o conteúdo do modelo teria declarado dois parâmetros, '' e KeyName '')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 )
```
+  Para obter detalhes da API, consulte [EstimateTemplateCost](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: retorna uma URL AWS simples da calculadora mensal com uma sequência de caracteres de consulta que descreve os recursos necessários para executar o modelo. O modelo é obtido da URL do Amazon S3 especificada e do único parâmetro de personalização aplicado. O parâmetro também pode ser especificado usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template `
                        -Region us-west-1 `
                        -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }
```
**Exemplo 2: retorna uma URL AWS simples da calculadora mensal com uma sequência de caracteres de consulta que descreve os recursos necessários para executar o modelo. O modelo é analisado a partir do conteúdo fornecido e os parâmetros de personalização aplicados (este exemplo pressupõe que o conteúdo do modelo teria declarado dois parâmetros, '' e 'KeyName')InstanceType. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" `
                        -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },`
                                      @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })
```
**Exemplo 3: usa New-Object para criar o conjunto de parâmetros do modelo e retorna uma URL de calculadora mensal AWS simples com uma sequência de caracteres de consulta que descreve os recursos necessários para executar o modelo. O modelo é analisado a partir do conteúdo fornecido, com parâmetros de personalização (este exemplo pressupõe que o conteúdo do modelo teria declarado dois parâmetros, '' e KeyName '')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 )
```
+  Para obter detalhes da API, consulte [EstimateTemplateCost](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `GetTemplate` com uma CLI
<a name="cloudformation_example_cloudformation_GetTemplate_section"></a>

Os exemplos de código a seguir mostram como usar o `GetTemplate`.

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

**AWS CLI**  
**Para visualizar o corpo do modelo de uma AWS CloudFormation pilha**  
O comando `get-template` a seguir mostra o modelo da pilha `myteststack`:  

```
aws cloudformation get-template --stack-name myteststack
```
Saída:  

```
{
    "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"
                }
            }
        }
    }
}
```
+  Para obter detalhes da API, consulte [GetTemplate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/get-template.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna o modelo associado à pilha especificada.**  

```
Get-CFNTemplate -StackName "myStack"
```
+  Para obter detalhes da API, consulte [GetTemplate](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: retorna o modelo associado à pilha especificada.**  

```
Get-CFNTemplate -StackName "myStack"
```
+  Para obter detalhes da API, consulte [GetTemplate](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `ListStackResources` com uma CLI
<a name="cloudformation_example_cloudformation_ListStackResources_section"></a>

Os exemplos de código a seguir mostram como usar o `ListStackResources`.

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

**AWS CLI**  
**Para listar os recursos de uma pilha**  
O comando a seguir exibe a lista dos recursos da pilha especificada.  

```
aws cloudformation list-stack-resources \
    --stack-name my-stack
```
Saída:  

```
{
    "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"
            }
        }
    ]
}
```
+  Para obter detalhes da API, consulte [ListStackResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/list-stack-resources.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna as descrições de todos os recursos associados à pilha especificada.**  

```
Get-CFNStackResourceSummary -StackName "myStack"
```
+  Para obter detalhes da API, consulte [ListStackResources](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: retorna as descrições de todos os recursos associados à pilha especificada.**  

```
Get-CFNStackResourceSummary -StackName "myStack"
```
+  Para obter detalhes da API, consulte [ListStackResources](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `ListStacks` com uma CLI
<a name="cloudformation_example_cloudformation_ListStacks_section"></a>

Os exemplos de código a seguir mostram como usar o `ListStacks`.

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

**AWS CLI**  
**Para listar AWS CloudFormation pilhas**  
O comando `list-stacks` a seguir mostra um resumo de todas as pilhas que têm um status de `CREATE_COMPLETE`:  

```
aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE
```
Saída:  

```
[
    {
        "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"
    }
]
```
+  Para obter detalhes da API, consulte [ListStacks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/list-stacks.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna informações resumidas de todas as pilhas.**  

```
Get-CFNStackSummary
```
**Exemplo 2: retorna informações resumidas de todas as pilhas que estão sendo criadas no momento.**  

```
Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"
```
**Exemplo 3: retorna informações resumidas de todas as pilhas que estão sendo criadas ou atualizadas no momento.**  

```
Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
```
+  Para obter detalhes da API, consulte [ListStacks](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: retorna informações resumidas de todas as pilhas.**  

```
Get-CFNStackSummary
```
**Exemplo 2: retorna informações resumidas de todas as pilhas que estão sendo criadas no momento.**  

```
Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"
```
**Exemplo 3: retorna informações resumidas de todas as pilhas que estão sendo criadas ou atualizadas no momento.**  

```
Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
```
+  Para obter detalhes da API, consulte [ListStacks](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `UpdateStack` com uma CLI
<a name="cloudformation_example_cloudformation_UpdateStack_section"></a>

Os exemplos de código a seguir mostram como usar o `UpdateStack`.

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

**AWS CLI**  
**Para atualizar as AWS CloudFormation pilhas**  
O comando `update-stack` a seguir atualiza o modelo e os parâmetros de entrada para a pilha `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
```
O comando `update-stack` a seguir atualiza apenas o valor do parâmetro `SubnetIDs` da pilha `mystack`. Se você não especificar um valor para o parâmetro, o valor padrão especificado no modelo será usado:  

```
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
```
O comando `update-stack` a seguir adiciona à pilha `mystack` dois tópicos de notificação de pilha:  

```
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"
```
Para obter mais informações, consulte [atualizações de AWS CloudFormation pilha](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) no *Guia do AWS CloudFormation usuário*.  
+  Para obter detalhes da API, consulte [UpdateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/update-stack.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' representa o nome de um parâmetro declarado no modelo e 'PV1' representa seu valor. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemplo 2: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
```
**Exemplo 3: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' representa o nome de um parâmetro declarado no modelo e 'PV2' representa seu valor. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemplo 4: atualiza a pilha 'myStack' com o modelo especificado, obtido do Amazon S3, e parâmetros de personalização. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e '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" } )
```
**Exemplo 5: atualiza a pilha 'myStack', que neste exemplo é considerada como contendo recursos do IAM, com o modelo especificado, obtido do Amazon S3, e parâmetros de personalização. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. As pilhas contendo recursos do IAM exigem que você especifique o parâmetro -Capabilities “CAPABILITY\$1IAM”, caso contrário, a atualização falhará com um erro ''. 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"
```
+  Para obter detalhes da API, consulte [UpdateStack](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' representa o nome de um parâmetro declarado no modelo e 'PV1' representa seu valor. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemplo 2: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Update-CFNStack -StackName "myStack" `
                -TemplateBody "{Template Content Here}" `
                -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
```
**Exemplo 3: atualiza a pilha 'myStack' com o modelo e os parâmetros de personalização especificados. 'PK1' representa o nome de um parâmetro declarado no modelo e 'PV2' representa seu valor. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'.**  

```
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }
```
**Exemplo 4: atualiza a pilha 'myStack' com o modelo especificado, obtido do Amazon S3, e parâmetros de personalização. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e '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" } )
```
**Exemplo 5: atualiza a pilha 'myStack', que neste exemplo é considerada como contendo recursos do IAM, com o modelo especificado, obtido do Amazon S3, e parâmetros de personalização. 'PK1' e 'PK2' representam os nomes dos parâmetros declarados no modelo, 'PV1' e 'PV2' representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando 'Chave' e 'Valor' em vez de 'ParameterKey' e 'ParameterValue'. As pilhas contendo recursos do IAM exigem que você especifique o parâmetro -Capabilities “CAPABILITY\$1IAM”, caso contrário, a atualização falhará com um erro ''. 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"
```
+  Para obter detalhes da API, consulte [UpdateStack](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Usar `ValidateTemplate` com uma CLI
<a name="cloudformation_example_cloudformation_ValidateTemplate_section"></a>

Os exemplos de código a seguir mostram como usar o `ValidateTemplate`.

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

**AWS CLI**  
**Para validar um modelo AWS CloudFormation **  
O comando `validate-template` a seguir valida o modelo `sampletemplate.json`:  

```
aws cloudformation validate-template --template-body file://sampletemplate.json
```
Saída:  

```
{
    "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": []
}
```
Para obter mais informações, consulte Trabalhando com AWS CloudFormation modelos no *Guia AWS CloudFormation do usuário*.  
+  Para obter detalhes da API, consulte [ValidateTemplate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/validate-template.html)em *Referência de AWS CLI Comandos*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: valida o conteúdo do modelo especificado. A saída detalha os recursos, a descrição e os parâmetros do modelo.**  

```
Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"
```
**Exemplo 2: valida o modelo especificado acessado por meio de uma URL do Amazon S3. A saída detalha os recursos, a descrição e os parâmetros do modelo.**  

```
Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
```
+  Para obter detalhes da API, consulte [ValidateTemplate](https://docs.aws.amazon.com/powershell/v4/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V4)*. 

**Ferramentas para PowerShell V5**  
**Exemplo 1: valida o conteúdo do modelo especificado. A saída detalha os recursos, a descrição e os parâmetros do modelo.**  

```
Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"
```
**Exemplo 2: valida o modelo especificado acessado por meio de uma URL do Amazon S3. A saída detalha os recursos, a descrição e os parâmetros do modelo.**  

```
Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
```
+  Para obter detalhes da API, consulte [ValidateTemplate](https://docs.aws.amazon.com/powershell/v5/reference)em *Referência de Ferramentas da AWS para PowerShell cmdlet (V5)*. 

------

# Cenários para CloudFormation usar AWS SDKs
<a name="cloudformation_code_examples_scenarios"></a>

Os exemplos de código a seguir mostram como implementar cenários comuns em CloudFormation with AWS SDKs. Esses cenários mostram como realizar tarefas específicas chamando várias funções internas CloudFormation ou combinadas com outras Serviços da AWS. Cada cenário inclui um link para o código-fonte completo, onde podem ser encontradas instruções sobre como configurar e executar o código. 

Os cenários têm como alvo um nível intermediário de experiência para ajudar você a compreender ações de serviço em contexto.

**Topics**
+ [Criar uma API REST para monitorar dados da COVID-19](cloudformation_example_cross_ApiGatewayDataTracker_section.md)

# Criar uma API REST do API Gateway para monitorar dados da COVID-19
<a name="cloudformation_example_cross_ApiGatewayDataTracker_section"></a>

O exemplo de código a seguir mostra como criar uma API REST que simula um sistema para monitorar casos diários de COVID-19 nos Estados Unidos, usando dados fictícios.

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

**SDK para Python (Boto3)**  
 Mostra como usar o AWS Chalice com o AWS SDK para Python (Boto3) para criar uma API REST sem servidor que usa o Amazon API Gateway e o Amazon DynamoDB AWS Lambda. A API REST simula um sistema que monitora casos diários de COVID-19 nos Estados Unidos, usando dados fictícios. Aprenda como:   
+ Use o AWS Chalice para definir rotas nas funções do Lambda que são chamadas para lidar com solicitações REST que chegam por meio do API Gateway.
+ Usar as funções do Lambda para recuperar e armazenar dados em uma tabela do DynamoDB para atender a solicitações REST.
+ Defina a estrutura da tabela e os recursos da função de segurança em um AWS CloudFormation modelo.
+ Use AWS Chalice e CloudFormation para empacotar e implantar todos os recursos necessários.
+ Use CloudFormation para limpar todos os recursos criados.
 Para obter o código-fonte completo e instruções sobre como configurar e executar, veja o exemplo completo em [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/cross_service/apigateway_covid-19_tracker).   

**Serviços usados neste exemplo**
+ API Gateway
+ CloudFormation
+ DynamoDB
+ Lambda

------