

# Exemplos de comandos de operação de pilha do CloudFormation para o AWS CLI e o PowerShell
<a name="service_code_examples"></a>

Os exemplos de linha de comando a seguir demonstram como realizar ações individuais do CloudFormation com a AWS CLI e o PowerShell. Estes exemplos incluem apenas as ações mais usadas. Para obter uma lista completa, consulte [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/) na *AWS CLI Command Reference*.

Os exemplos deste guia usam a convenção de uma barra invertida (\$1) para indicar que uma linha de comando longa continua na próxima linha. 

**Topics**
+ [

## Cancelar uma atualização de pilha
](#cancel-update-stack-sdk)
+ [

## Continuar revertendo uma atualização
](#continue-update-rollback-sdk)
+ [

## Criar uma pilha
](#create-stack-sdk)
+ [

## Criar uma pilha que inclua transformações
](#deploy-sdk)
+ [

## Excluir uma pilha
](#delete-stack-sdk)
+ [

## Descrever os eventos da pilha
](#describe-stack-events-sdk)
+ [

## Descrever um recurso de pilha
](#describe-stack-resource-sdk)
+ [

## Descrever recurso de pilha
](#describe-stack-resources-sdk)
+ [

## Descrever pilhas
](#describe-stacks-sdk)
+ [

## Obter um modelo
](#get-template-sdk)
+ [

## Listar recursos de pilha
](#list-stack-resources-sdk)
+ [

## Listar pilhas
](#list-stacks-sdk)
+ [

## Atualizar um stack
](#update-stack-sdk)
+ [

## Validar seu modelo
](#validate-template-sdk)
+ [

# Fazer upload de artefatos locais em um bucket do S3 com a AWS CLI
](using-cfn-cli-package.md)

## Cancelar uma atualização de pilha
<a name="cancel-update-stack-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/cancel-update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/cancel-update-stack.html) para cancelar uma atualização de pilha. Para obter mais informações, consulte [Cancelar uma atualização de pilha](using-cfn-stack-update-cancel.md).

------
#### [ 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
```
+  Consulte detalhes da API em [CancelUpdateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/cancel-update-stack.html) na *AWS CLI Command Reference*. 

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

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

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

**Ferramentas para o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

## Continuar revertendo uma atualização
<a name="continue-update-rollback-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/continue-update-rollback.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/continue-update-rollback.html) para continuar revertendo uma atualização. Para obter mais informações, consulte [Continuar revertendo uma atualização](using-cfn-updating-stacks-continueupdaterollback.md).

------
#### [ 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.  
+  Consulte detalhes da API em [ContinueUpdateRollback](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/continue-update-rollback.html) na *AWS CLI Command Reference*. 

------
#### [ 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"
```
+  Consulte detalhes da API em [ContinueUpdateRollback](https://docs.aws.amazon.com/powershell/v4/reference) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V4)*. 

**Ferramentas para o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

## Criar uma pilha
<a name="create-stack-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) para criar uma pilha. Você deve fornecer o nome da pilha, a localização de um modelo válido e quaisquer parâmetros de entrada. Os nomes das chaves dos parâmetros diferenciam maiúsculas de minúsculas. Se você digitar incorretamente o nome de uma chave de parâmetro, o CloudFormation não criará a pilha e relatará que o modelo não contém esse parâmetro.

Os exemplos a seguir mostram como criar uma nova pilha com o nome, o modelo e os parâmetros de entrada especificados. 

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

**AWS CLI**  
**Para criar uma pilha do AWS CloudFormation**  
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
```
Resultado:  

```
{
    "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 usuário do AWS CloudFormation*.  
+  Consulte detalhes da API em [CreateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html) na *AWS CLI Command Reference*. 

------
#### [ 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 "Key" e "Value" 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 "Key" e "Value" 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 "Key" e 'Value" em vez de "ParameterKey" e "ParameterValue". Se houver falha na criação da pilha, 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 "Key" e 'Value" em vez de "ParameterKey" e "ParameterValue". Se houver falha na criação da pilha, ela será revertida (o mesmo que especificar -DisableRollback \$1false). Os AENs de notificação especificados receberão os eventos relacionados à pilha publicados.**  

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

**Ferramentas para o 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 "Key" e "Value" 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 "Key" e "Value" 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 "Key" e 'Value" em vez de "ParameterKey" e "ParameterValue". Se houver falha na criação da pilha, 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 "Key" e 'Value" em vez de "ParameterKey" e "ParameterValue". Se houver falha na criação da pilha, ela será revertida (o mesmo que especificar -DisableRollback \$1false). Os AENs de notificação especificados receberão os eventos relacionados à pilha publicados.**  

```
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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

**nota**  
É possível usar a opção `--template-url` da AWS CLI para especificar a localização de um arquivo de modelo no Amazon S3 ou AWS Systems Manager.  
Para o Amazon S3, o URL deve começar com `https://`. URLs de sites estáticos do S3 não são compatíveis.  

```
--template-url https://s3.region-code.amazonaws.com/bucket-name/template-name
```
Use o seguinte formato para o AWS Systems Manager:  

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

## Criar uma pilha que inclua transformações
<a name="deploy-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/) para criar uma pilha que inclua transformações. Ao criar uma pilha com base em um modelo que inclui transformações, você deve usar um conjunto de alterações. O comando `deploy` combina duas etapas (criar um conjunto de alterações e executá-lo) em um único comando.

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

O comando `deploy` a seguir cria uma pilha com o nome, o modelo e os parâmetros de entrada especificados.

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

------

## Excluir uma pilha
<a name="delete-stack-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-stack.html) para excluir uma pilha. Para obter mais informações, consulte [Excluir uma pilha](cfn-console-delete-stack.md).

------
#### [ 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.  
+  Consulte detalhes da API em [DeleteStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/delete-stack.html) na *AWS CLI Command Reference*. 

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

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

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

**Ferramentas para o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

Se a exclusão apresentar falhas e retornar um estado de `DELETE_FAILED`, você poderá optar por excluir a pilha de forma forçada usando a opção `--deletion-mode`. Estes são os seguintes valores que podem ser usados ​​com `deletion-mode`:
+ `STANDARD`: exclui a pilha normalmente. Este é o modo de exclusão padrão.
+ `FORCE_DELETE_STACK`: exclui a pilha e ignora todos os recursos que não estão sendo excluídos.

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

O seguinte comando `delete-stack` força a exclusão da pilha `myteststack` usando o valor `FORCE_DELETE_STACK` com o parâmetro `deletion-mode`:

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

Este comando não produz saída.

------

Depois de usar `FORCE_DELETE_STACK`, você pode usar o comando `list-stack-resources` para listar os recursos que foram ignorados durante o processo de exclusão da pilha. Os recursos retidos mostrarão o status DELETE\$1SKIPPED. Para obter mais informações, consulte [Listar recursos de pilha](#list-stack-resources-sdk).

## Descrever os eventos da pilha
<a name="describe-stack-events-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-events.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-stack-events.html) para descrever os eventos da pilha. Para obter mais informações, consulte [Monitorar o progresso da pilha](monitor-stack-progress.md).

------
#### [ 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=="
}
```
+  Consulte detalhes da API em [DescribeStackEvents](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-events.html) na*AWS CLI Command Reference*. 

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

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

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

**Ferramentas para o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

## Descrever um recurso de pilha
<a name="describe-stack-resource-sdk"></a>

------
#### [ 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
```
Resultado:  

```
{
    "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"
        }
    }
}
```
+  Consulte detalhes da API em [DescribeStackResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-resource.html) na *AWS CLI Command Reference*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna a descrição de um recurso identificado no modelo associado à pilha especificada pelo ID lógico "MyDBInstance".**  

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

**Ferramentas para o PowerShell V5**  
**Exemplo 1: retorna a descrição de um recurso identificado no modelo associado à pilha especificada pelo ID lógico "MyDBInstance".**  

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

------

## Descrever recurso de pilha
<a name="describe-stack-resources-sdk"></a>

------
#### [ 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
```
Resultado:  

```
{
    "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"
            }
        }
    ]
}
```
+  Consulte detalhes da API em [DescribeStackResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stack-resources.html) na *AWS CLI Command Reference*. 

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

**Ferramentas para PowerShell V4**  
**Exemplo 1: retorna descrições dos recursos da AWS, para até 100 recursos associados à pilha especificada. Para obter os detalhes de todos os recursos associados a uma pilha, use o Get-CFNStackResourceSummary, que também é compatível com a 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 os detalhes de todos os recursos associados a uma pilha, use o Get-CFNStackResourceSummary, que também é compatível com a 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 S.**  

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

**Ferramentas para o PowerShell V5**  
**Exemplo 1: retorna descrições dos recursos da AWS, para até 100 recursos associados à pilha especificada. Para obter os detalhes de todos os recursos associados a uma pilha, use o Get-CFNStackResourceSummary, que também é compatível com a 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 os detalhes de todos os recursos associados a uma pilha, use o Get-CFNStackResourceSummary, que também é compatível com a 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 S.**  

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

------

## Descrever pilhas
<a name="describe-stacks-sdk"></a>

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

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

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

```
{
    "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 usuário do AWS CloudFormation*.  
+  Consulte detalhes da API em [DescribeStacks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/describe-stacks.html) na *AWS CLI Command Reference*. 

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

**SDK para Go V2**  
 Há mais no 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
}
```
+  Consulte detalhes da API em [DescribeStacks](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/cloudformation#Client.DescribeStacks) na *AWS SDK para Go API Reference*. 

------
#### [ 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V4)*. 

**Ferramentas para o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

Por padrão, o comando `describe-stacks` retorna valores de parâmetros. Para impedir que valores confidenciais de parâmetros, como senhas, sejam retornados, inclua uma propriedade `NoEcho` definida como `TRUE` nos modelos do CloudFormation.

**Importante**  
O uso do atributo `NoEcho` não mascara informações armazenadas no seguinte:  
A seção de modelo de `Metadata`. O CloudFormation não transforma, modifica nem edita nenhuma informação incluída na seção `Metadata`. Para obter mais informações, consulte [Metadados](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html).
A seção de modelo de `Outputs`. Para obter mais informações, consulte [Saídas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html).
O atributo `Metadata` de uma definição de recurso. Para obter mais informações, consulte o atributo [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-metadata.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-metadata.html).
É altamente recomendável não usar esses mecanismos para incluir informações confidenciais, como senhas ou segredos.

**Importante**  
Em vez de incorporar informações confidenciais diretamente em modelos do CloudFormation, recomendamos usar os parâmetros dinâmicos no modelo da pilha para fazer referência a informações confidenciais que são armazenadas e gerenciadas de forma externa ao CloudFormation, como no AWS Systems Manager Parameter Store ou no AWS Secrets Manager.  
Para obter mais informações, consulte a prática recomendada [Não incorporar credenciais nos seus modelos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/security-best-practices.html#creds).

## Obter um modelo
<a name="get-template-sdk"></a>

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

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

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

```
{
    "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"
                }
            }
        }
    }
}
```
+  Consulte detalhes da API em [GetTemplate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/get-template.html) na *AWS CLI Command Reference*. 

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

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

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

**Ferramentas para o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

## Listar recursos de pilha
<a name="list-stack-resources-sdk"></a>

------
#### [ 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
```
Resultado:  

```
{
    "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"
            }
        }
    ]
}
```
+  Consulte detalhes da API em [ListStackResources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/list-stack-resources.html) na *AWS CLI Command Reference*. 

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

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

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

**Ferramentas para o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

## Listar pilhas
<a name="list-stacks-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stacks.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stacks.html) para listar pilhas. Para listar apenas pilhas com os códigos de status especificados, inclua a opção `--stack-status-filter`. Você pode especificar um ou mais códigos de status da pilha para a opção `--stack-status-filter`. Para obter mais informações, consulte [Códigos de status da pilha](view-stack-events.md#cfn-console-view-stack-data-resources-status-codes).

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

**AWS CLI**  
**Para listar as pilhas do AWS CloudFormation**  
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
```
Resultado:  

```
[
    {
        "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"
    }
]
```
+  Consulte detalhes da API em [ListStacks](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/list-stacks.html) na *AWS CLI Command Reference*. 

------
#### [ 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")
```
+  Consulte detalhes da API em [ListStacks](https://docs.aws.amazon.com/powershell/v4/reference) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V4)*. 

**Ferramentas para o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

## Atualizar um stack
<a name="update-stack-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html) para atualizar diretamente uma pilha. Você especifica a pilha, os recursos e os valores de parâmetro que você deseja atualizar e, se quiser usar um modelo atualizado, o nome do modelo. Para obter mais informações, consulte [Atualizar pilhas diretamente](using-cfn-updating-stacks-direct.md).

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

**AWS CLI**  
**Para atualizar as pilhas do AWS CloudFormation**  
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 pilhas do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html) no *Guia do usuário do AWS CloudFormation*.  
+  Consulte detalhes da API em [UpdateStack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/update-stack.html) na *AWS CLI Command Reference*. 

------
#### [ 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 "Key" e "Value" 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. "K1" 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 "Key" e "Value" 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 "Key" e "Value" 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 obtido no Amazon S3 e os parâmetros de personalização especificados. "K1" 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 "Key" e "Value" 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, este exemplo pressupõe conter recursos do IAM, com o modelo obtido do Amazon S3 e os parâmetros de personalização especificados. "K1" 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 "Key" e "Value" em vez de "ParameterKey" e "ParameterValue". As pilhas que contêm recursos do IAM exigem que você especifique o parâmetro -Capabilities "CAPABILITY\$1IAM", senão haverá falha na atualização com o 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"
```
+  Consulte detalhes da API em [UpdateStack](https://docs.aws.amazon.com/powershell/v4/reference) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V4)*. 

**Ferramentas para o 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 "Key" e "Value" 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. "K1" 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 "Key" e "Value" 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 "Key" e "Value" 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 obtido no Amazon S3 e os parâmetros de personalização especificados. "K1" 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 "Key" e "Value" 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, este exemplo pressupõe conter recursos do IAM, com o modelo obtido do Amazon S3 e os parâmetros de personalização especificados. "K1" 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 "Key" e "Value" em vez de "ParameterKey" e "ParameterValue". As pilhas que contêm recursos do IAM exigem que você especifique o parâmetro -Capabilities "CAPABILITY\$1IAM", senão haverá falha na atualização com o 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

**nota**  
Para remover todas as notificações, especifique `[]` para a opção `--notification-arns`.

## Validar seu modelo
<a name="validate-template-sdk"></a>

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/validate-template.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/validate-template.html) para verificar se há erros de sintaxe em seu arquivo de modelo.

Durante a validação, o CloudFormation primeiro verifica se o modelo é JSON válido. Caso não seja, o CloudFormation verifica se o modelo é YAML válido. Se as duas verificações falharem, o CloudFormation retornará um erro de validação de modelo.

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

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

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

```
{
    "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 Trabalhar com modelos do AWS CloudFormation no *Guia do usuário do AWS CloudFormation*.  
+  Consulte detalhes da API em [ValidateTemplate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/validate-template.html) na *AWS CLI Command Reference*. 

------
#### [ 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 S. 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
```
+  Consulte detalhes da API em [ValidateTemplate](https://docs.aws.amazon.com/powershell/v4/reference) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V4)*. 

**Ferramentas para o 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 S. 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) na *Referência de cmdlets do Ferramentas da AWS para PowerShell (V5)*. 

------

Esta é uma resposta de exemplo que produz um erro de validação.

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

**nota**  
O comando `validate-template` tem o objetivo de verificar apenas a sintaxe do modelo. Ele não garante que valores de propriedades especificados para um recurso sejam válidos para este último. Ele também não determina o número de recursos existentes quando a pilha for criada.  
Para verificar a validade operacional, é necessário tentar criar a pilha. Não há uma sandbox ou uma área de teste para pilhas do CloudFormation. Por isso, haverá cobranças pelos recursos que você criar durante os testes.

**Exemplo de disponibilidade**  
Não consegue encontrar o que precisa? Solicite um novo exemplo usando o link **Fornecer feedback** na parte inferior desta página.

# Fazer upload de artefatos locais em um bucket do S3 com a AWS CLI
<a name="using-cfn-cli-package"></a>

Você pode usar a AWS CLI para carregar artefatos locais referenciados por um modelo do CloudFormation para um bucket do Amazon S3. Artefatos locais são arquivos aos quais você faz referência no seu modelo. Em vez de carregar manualmente os arquivos em um bucket do S3 e depois adicionar seus locais ao seu modelo, você pode especificar artefatos locais no seu modelo e usar o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) para carregá-los rapidamente. 

Um artefato local é um caminho para um arquivo ou pasta que o comando **package** faz upload no Amazon S3. Por exemplo, um artefato pode ser um caminho local para o código-fonte da função do AWS Lambda ou um arquivo OpenAPI da API REST do Amazon API Gateway. 

Ao usar o comando **package**:
+ Se você especificar um arquivo, o comando faz upload diretamente no bucket do S3. 
+ Se você especificar uma pasta, o comando cria um arquivo `.zip` para a pasta e, depois, faz upload do arquivo `.zip`. 
+ Se você não especificar um caminho, o comando criará um arquivo `.zip` para o diretório de trabalho e fará upload dele. 

Você pode especificar um caminho absoluto ou relativo, no qual o caminho relativo é relativo para o local do modelo.

Depois de fazer upload dos artefatos, o comando retorna uma cópia de seu modelo, substituindo referências a artefatos locais pelo local do S3 onde o comando fez upload dos artefatos. Você poderá então usar o modelo retornado para criar ou atualizar uma pilha.

**nota**  
Você pode usar artefatos locais apenas para as propriedades de recurso com as quais o comando **package** é compatível. Consulte mais informações sobre esse comando e uma lista de propriedades de recursos compatíveis na documentação do [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html), na [Referência de comandos da AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/index.html).



## Pré-requisitos
<a name="using-cfn-cli-package-prerequisites"></a>

Antes de começar, é necessário ter um bucket do Amazon S3 existente. 

## Empacotar e implantar um modelo com artefatos locais
<a name="package-and-deploy-a-template-with-local-artifacts"></a>

O modelo a seguir especifica o artefato local para um código-fonte da função do Lambda. O código-fonte é armazenado na pasta `/home/user/code/lambdafunction`.

**Modelo original**

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

O comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) a seguir cria e carrega um arquivo `.zip` da pasta do código-fonte da função para a raiz do bucket especificado.

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

O comando gera um novo modelo no caminho especificado por `--output-template-file`. Ele substitui a referência do artefato pelo local do Amazon S3, conforme mostrado abaixo. O arquivo `.zip` é nomeado usando a soma de verificação MD5 do conteúdo da pasta, em vez de usar o próprio nome da pasta.

**Modelo resultante**

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

Depois de empacotar os artefatos do seu modelo, implante o modelo processado usando o comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/).

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

Ao implantar modelos maiores que 51.200 bytes, use o comando **deploy** com a opção `--s3-bucket` para carregar seu modelo no S3, como no exemplo a seguir.

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

**nota**  
Para ver outro exemplo de uso do comando **package** para carregar artefatos locais, consulte [Dividir um modelo em partes reutilizáveis usando pilhas aninhadas](using-cfn-nested-stacks.md).