

# Conjuntos de alteração para pilhas aninhadas
<a name="change-sets-for-nested-stacks"></a>

Com os *conjuntos de alterações para pilhas aninhadas*, você pode visualizar as alterações nos recursos de suas aplicações e infraestrutura em toda a hierarquia de pilha aninhada, dando continuidade às atualizações após confirmar que todas as alterações estejam conforme pretendido.

Consulte as seguintes seções para obter mais detalhes sobre conjuntos de alterações para pilhas aninhadas:

**Topics**
+ [Visão geral de conjuntos de alterações e pilhas aninhadas](#overview-of-change-sets-and-nested-stacks)
+ [Como trabalhar com conjuntos de alterações para pilhas aninhadas (console)](#change-sets-for-nested-stacks-console)
+ [Como trabalhar com conjuntos de alterações para pilhas aninhadas (AWS CLI)](#change-sets-for-nested-stacks-cli)

## Visão geral de conjuntos de alterações e pilhas aninhadas
<a name="overview-of-change-sets-and-nested-stacks"></a>

Os conjuntos de alterações para pilhas aninhadas combinam os seguintes recursos para expandir o escopo da visualização de alterações para toda a hierarquia de pilha:
+ Um *conjunto de alterações* é um recurso do CloudFormation que oferece uma visualização de como as alterações propostas em uma pilha afetarão os recursos existentes ou recém-criados. Ao criar um conjunto de alterações, o CloudFormation fornece uma lista de alterações propostas, fazendo uma comparação entre sua pilha e as alterações nos recursos que você enviou. Para obter mais informações sobre conjuntos de alterações, consulte [Atualizar pilhas do CloudFormation usando conjuntos de alterações](using-cfn-updating-stacks-changesets.md).
+ Uma *pilha aninhada* é uma pilha criada como parte de outra pilha. Por exemplo, talvez você tenha recursos relacionados a redes e segurança em uma pilha aninhada e recursos de aplicação em outra. Fazer o particionamento de modelos de aplicação dessa forma ajuda na capacidade de manutenção e reutilização de código. Para saber mais sobre pilhas aninhadas, consulte [Dividir um modelo em partes reutilizáveis usando pilhas aninhadas](using-cfn-nested-stacks.md).

## Como trabalhar com conjuntos de alterações para pilhas aninhadas (console)
<a name="change-sets-for-nested-stacks-console"></a>
+ **Criar um conjunto de alterações** – Cria um conjunto de alterações mediante o envio de alterações com base em qualquer nível da hierarquia de pilha. Você pode enviar um modelo modificado de pilha ou valores modificados de parâmetro de entrada e o CloudFormation compara sua pilha aninhada às alterações que você enviou para gerar um conjunto de alterações. Os conjuntos de alterações para pilhas aninhadas são habilitados por padrão no console do CloudFormation. Para obter mais informações, consulte [Criar um conjunto de alterações para uma pilha do CloudFormation](using-cfn-updating-stacks-changesets-create.md).  
![A opção Criar um conjunto de alterações para pilhas aninhadas está habilitada por padrão.](http://docs.aws.amazon.com/pt_br/AWSCloudFormation/latest/UserGuide/images/change-sets-for-nested-sets-enabled-default.png)
**nota**  
Um conjunto raiz de alterações é o conjunto de alterações associado à pilha com base na qual toda a hierarquia de conjuntos de alterações é criada. Você deve executar ou excluir conjuntos de alterações para pilhas aninhadas com base no conjunto raiz de alterações. Para obter mais informações, consulte [Executar operações de pilha em pilhas aninhadas](using-cfn-nested-stacks.md#perform-stack-operations-on-nested-stacks).
+ **Visualizar o conjunto de alterações**: visualize as alterações nos recursos dentro de pilhas aninhadas antes de executá-las. Você pode ver as alterações propostas na seção **Alterações** do seu conjunto de alterações navegando pela pilha atual e pelos respectivos conjuntos de alterações aninhados. Para obter mais informações, consulte [Visualizar um conjunto de alterações para uma pilha do CloudFormation](using-cfn-updating-stacks-changesets-view.md).
+ **Executar o conjunto de alterações** – Execute as alterações descritas no conjunto de alterações que pertencem à pilha atual e aos seus descendentes. A operação de execução deve ser feita a partir do conjunto raiz de alterações. Para obter mais informações, consulte [Executar um conjunto de alterações para uma pilha do CloudFormationPolíticas de pilha e como executar um conjunto de alterações](using-cfn-updating-stacks-changesets-execute.md).
+ **Excluir o conjunto de alterações** – Remove os conjuntos de alterações da pilha atual. A exclusão de um conjunto de alterações ajuda a impedir que você ou outro usuário inicie acidentalmente um conjunto de alterações que não deva ser aplicado. A operação de exclusão deve ser executada com base no conjunto raiz de alterações. Para obter mais informações, consulte [Excluir um conjunto de alterações para uma pilha do CloudFormation](using-cfn-updating-stacks-changesets-delete.md).

## Como trabalhar com conjuntos de alterações para pilhas aninhadas (AWS CLI)
<a name="change-sets-for-nested-stacks-cli"></a>

### create-change-set
<a name="working-with-change-sets-for-nested-stacks-cli"></a>
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-change-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-change-set.html) – conjuntos de alterações para pilhas aninhadas não são habilitados por padrão para o AWS CLI. Para criar um conjunto de alterações para toda a hierarquia de pilha, especifique a opção `--include-nested-stacks`. Para obter mais informações, consulte [Criar um conjunto de alterações para uma pilha do CloudFormation](using-cfn-updating-stacks-changesets-create.md).

O exemplo de AWS CLI a seguir cria um conjunto de alterações para a pilha raiz especificada.

```
aws cloudformation create-change-set \
    --stack-name {{my-root-stack}} \
    --change-set-name {{my-root-stack-change-set}} \
    --template-body {{file://template.yaml}} \
    --capabilities CAPABILITY_IAM \
    --include-nested-stacks
```

O seguinte é um exemplo de saída.

```
{
    "Id":"arn:aws:cloudformation:us-west-2:123456789012:changeSet/{{my-root-stack-change-set}}/4eca1a01-e285-xmpl-8026-9a1967bfb4b0",
    "StackId": "arn:aws:cloudformation:us-west-2:123456789012:Stack/{{my-root-stack}}/d0a825a0-e4cd-xmpl-b9fb-061c69e99204"
}
```

### describe-change-set
<a name="working-with-change-set-describe-cli"></a>
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-change-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-change-set.html) – Retorna uma lista de alterações que o CloudFormation fará se você executar o conjunto de alterações. Se o conjunto de alterações especificado contiver conjuntos filhos de alterações que pertençam a pilhas aninhadas, `ChangeSetId` retornará informações sobre esse conjunto de alterações. Para obter mais informações, consulte [Visualizar um conjunto de alterações para uma pilha do CloudFormation](using-cfn-updating-stacks-changesets-view.md).

O exemplo de AWS CLI a seguir descreve o conjunto de alterações para a pilha raiz especificada.

```
aws cloudformation describe-change-set \
    --change-set-name {{my-root-stack-change-set}} \
    --stack-name {{my-root-stack}}
```

O seguinte é um exemplo de saída.

```
{
    "Changes": [
        {
            "Type": "Resource",
            "ResourceChange": {
                "Action": "Modify",
                "LogicalResourceId": "ChildStack",
                "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/{{my-nested-stack}}/d0a825a0-e4cd-xmpl-b9fb-061c69e99205",
                "ResourceType": "AWS::CloudFormation::Stack",
                "Replacement": "False",
                "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/{{my-nested-stack-change-set}}/4eca1a01-e285-xmpl-8026-9a1967bfb4b0",
                "Scope": [
                    "Properties"
                ],
                "Details": [
                    {
                        "Target": {
                            "Attribute": "Properties",
                            "RequiresRecreation": "Never"
                        },
                        "Evaluation": "Dynamic",
                        "ChangeSource": "Automatic"
                    }
                ]
            }
        }
    ],
    "ChangeSetName": "{{my-root-stack-change-set}}",
    "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/{{my-root-stack-change-set}}/4eca1a01-e285-xmpl-8026-9a1967bfb4b0",
    "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/{{my-root-stack}}/d0a825a0-e4cd-xmpl-b9fb-061c69e99204",
    "StackName": "{{my-root-stack}}",
    "IncludeNestedStacks": true,
    "ParentChangeSetId": null,
    "RootChangeSetId": null,
    "Description": null,
    "Parameters": null,
    "CreationTime": "2020-11-18T05:20:56.651Z",
    "ExecutionStatus": "AVAILABLE",
    "Status": "CREATE_COMPLETE",
    "StatusReason": null,
    "NotificationARNs": [
        
    ],
    "RollbackConfiguration": {
        
    },
    "Capabilities": [
        "CAPABILITY_IAM"
    ],
    "Tags": null
}
```

O exemplo de AWS CLI a seguir descreve o conjunto de alterações para a pilha aninhada especificada.

```
aws cloudformation describe-change-set \
    --change-set-name {{my-nested-stack-change-set}} \
    --stack-name {{my-nested-stack}}
```

O seguinte é um exemplo de saída.

```
{
    "Changes": [
        {
            "Type": "Resource",
            "ResourceChange": {
                "Action": "Modify",
                "LogicalResourceId": "function",
                "PhysicalResourceId": "my-function",
                "ResourceType": "AWS::Lambda::Function",
                "Replacement": "False",
                "ChangeSetId": null,
                "Scope": [
                    "Properties"
                ],
                "Details": [
                    {
                        "Target": {
                            "Attribute": "Properties",
                            "Name": "Timeout",
                            "RequiresRecreation": "Never"
                        },
                        "Evaluation": "Static",
                        "ChangeSource": "DirectModification"
                    }
                ]
            }
        }
    ],
    "ChangeSetName": "{{my-nested-stack-change-set}}",
    "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/{{my-nested-stack-change-set}}/4eca1a01-e285-xmpl-8026-9a1967bfb4b0",
    "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/{{my-nested-stack}}/d0a825a0-e4cd-xmpl-b9fb-061c69e99205",
    "ParentChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/{{my-root-stack-change-set}}/4eca1a01-e285-xmpl-8026-9a1967bfb4b0",
    "RootChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/{{my-root-stack-change-set}}/4eca1a01-e285-xmpl-8026-9a1967bfb4b0",
    "IncludeNestedStacks": true,
    "StackName": "{{my-nested-stack}}",
    "Description": null,
    "Parameters": null,
    "CreationTime": "2020-11-18T05:20:56.651Z",
    "ExecutionStatus": "UNAVAILABLE",
    "Status": "CREATE_COMPLETE",
    "StatusReason": "Executable from root change set",
    "NotificationARNs": [
        
    ],
    "RollbackConfiguration": {
        
    },
    "Capabilities": [
        "CAPABILITY_IAM"
    ],
    "Tags": null
}
```

### execute-change-set
<a name="working-with-change-set-execute-cli"></a>
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/execute-change-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/execute-change-set.html) – Cria ou atualiza uma pilha usando as informações de entrada fornecidas quando o conjunto de alterações especificado foi criado. Para criar um conjunto de alterações para toda a hierarquia de pilha, é necessário especificar a opção `–-include-nested-stacks` durante a operação **create-change-set**. Para obter mais informações, consulte [Executar um conjunto de alterações para uma pilha do CloudFormationPolíticas de pilha e como executar um conjunto de alterações](using-cfn-updating-stacks-changesets-execute.md).
**nota**  
**execute-change-set** deve ser executado com base no conjunto raiz de alterações e aplicará o conjunto de alterações em toda a hierarquia de pilhas.

O exemplo de AWS CLI a seguir executa um conjunto de alterações para a pilha raiz especificada.

```
aws cloudformation execute-change-set \
    --stack-name {{my-root-stack}} \
    --change-set-name {{my-root-stack-change-set}}
```

### delete-change-set
<a name="working-with-change-set-delete-cli"></a>
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-change-set.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-change-set.html) – Exclui o conjunto de alterações especificado. A exclusão de conjuntos de alterações garante que ninguém use o conjunto de alterações errado. A exclusão de conjuntos de alterações é assíncrona para conjuntos de alterações criados com a opção `–-include-nested-stacks`. Para obter mais informações, consulte [Excluir um conjunto de alterações para uma pilha do CloudFormation](using-cfn-updating-stacks-changesets-delete.md).
**nota**  
**delete-change-set** deve ser executado com base no conjunto raiz de alterações e excluirá toda a hierarquia de conjuntos de alterações. As pilhas aninhadas com status `REVIEW_IN_PROGRESS` também serão excluídas se tiverem sido criadas durante a operação **create-change-set**.

O exemplo de AWS CLI a seguir exclui o conjunto de alterações para a pilha raiz especificada.

```
aws cloudformation delete-change-set \
    --stack-name {{my-root-stack}} \ 
    --change-set-name {{my-root-stack-change-set}}
```