

# Compreender atualização de comportamentos de recursos da pilha
<a name="using-cfn-updating-stacks-update-behaviors"></a>

Quando você envia uma atualização, o CloudFormation atualiza os recursos com base nas diferenças entre o que você envia e o modelo atual da pilha. Os recursos que não foram alterados funcionam sem interrupção durante o processo de atualização. Para recursos atualizados, o CloudFormation usa um dos seguintes comportamentos de atualização:

**Atualizações sem interrupções**  <a name="update-no-interrupt"></a>
CloudFormationO atualiza o recurso sem interromper a operação do recurso e sem alterar o ID físico do recurso. Por exemplo, se você atualizar determinadas propriedade de um recurso [AWS::CloudTrail::Trail](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-cloudtrail-trail.html), o CloudFormation atualiza a trilha sem interrupções.

**Atualizações com alguma interrupção**  <a name="update-some-interrupt"></a>
CloudFormationO atualiza o recurso com interrupções. Por exemplo, se você atualizar determinadas propriedades de um recurso [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-instance.html), a instância poderá ter alguma interrupção enquanto o CloudFormation e o Amazon EC2 reconfiguram a instância.

**Substituição**  <a name="update-replacement"></a>
O CloudFormation recria o recurso durante uma atualização, o que também gera um novo ID físico. Normalmente o CloudFormation cria o recurso de substituição primeiro, altera as referências de outros recursos dependentes para apontar para o recurso substituto e, em seguida, exclui o recurso antigo. Por exemplo, se você atualizar a propriedade `AvailabilityZone` de um tipo de recurso [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-instance.html), o CloudFormation cria um novo recurso e substitui o recurso de instância do EC2 atual pela nova.  
Se você estiver adicionando ou removendo uma propriedade que requer substituição, isso também acionará uma atualização. Essa atualização acontecerá mesmo se o valor real da propriedade não mudar.

O método que o CloudFormation usa depende da propriedade que você atualiza para um determinado tipo de recurso. O comportamento da atualização de cada propriedade é descrito na [Referência de tipos de propriedades e recursos da AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-template-resource-type-ref.html).

Dependendo do comportamento da atualização, você pode decidir quando modificar os recursos para reduzir o impacto dessas alterações em seu aplicativo. Especificamente, você pode planejar quando os recursos devem ser *substituídos* durante uma atualização. Por exemplo, se você atualizar a propriedade `Port` de um tipo de recurso [AWS::RDS::DBInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html), o CloudFormation substituirá a instância de banco de dados criando uma nova instância de banco de dados com a configuração de porta atualizada e excluirá a instância de banco de dados antiga. Antes da atualização, você pode planejar executar as seguintes atividades para se preparar para a substituição do banco de dados:
+ Faça um snapshot dos bancos de dados atuais.
+ Prepare uma estratégia de como os aplicativos que usam essa instância de banco de dados irão lidar com uma interrupção enquanto a instância de banco de dados está sendo substituída.
+ Verifique se os aplicativos que usam a instância de banco de dados consideram a configuração da porta atualizada e todas as outras atualizações que você tiver feito.
+ Use o DB snapshot para restaurar os bancos de dados na nova instância de banco de dados.

Este exemplo não abrange todos os casos, tendo a intenção de dar uma ideia do que é necessário planejar quando um recurso for substituído durante uma atualização.

**nota**  
Se o modelo incluir uma ou mais [pilhas aninhadas](using-cfn-nested-stacks.md), o CloudFormation também iniciará uma atualização de cada pilha aninhada. Isso é necessário para determinar se as pilhas aninhadas foram modificadas. O CloudFormation atualiza apenas os recursos nas pilhas aninhadas que têm alterações especificadas nos modelos correspondentes.