

Este é o novo *Guia de referência de modelos do CloudFormation*. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o [Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# `DeletionPolicy`Atributo
<a name="aws-attribute-deletionpolicy"></a>

Com o atributo `DeletionPolicy` você pode preservar e, em alguns casos, fazer backup de um recurso quando a pilha dele for excluída. Você especifica um atributo `DeletionPolicy` para cada recurso que quiser controlar. Se um recurso não tiver o atributo `DeletionPolicy`, o CloudFormation excluirá o recurso por padrão.

Esse recurso também se aplica a operações de atualização de pilha que levam à remoção de recursos das pilhas. Por exemplo, se você remover o recurso do modelo de pilha e, em seguida, atualizar a pilha com o modelo. Essa capacidade não se aplica aos recursos cujas instâncias físicas são substituídas durante operações de atualização da pilha. Por exemplo, se você editar as propriedades de um recurso de modo que o CloudFormation substitua esse recurso durante uma atualização da pilha.

**nota**  
**Exceção**: a política padrão é `Snapshot` para recursos `AWS::RDS::DBCluster` e para recursos `AWS::RDS::DBInstance` que não especificam a propriedade `DBClusterIdentifier`.

Para manter um recurso quando sua pilha for excluída, especifique `Retain` para esse recurso. Você pode usar a `Retain` para qualquer recurso. Por exemplo, você pode manter uma pilha aninhada, um bucket do Amazon S3 ou uma instância do EC2 para que continue a usar ou modificar estes recursos depois de excluir suas pilhas.

**nota**  
Se você deseja modificar os recursos fora do CloudFormation, use uma política de exclusão `Retain` e, em seguida, exclua a pilha. Caso contrário, seus recursos poderão ficar fora de sincronia com seu o modelo do CloudFormation e causar erros de pilha.

Para os recursos que oferecem suporte a snapshots, como o `AWS::EC2::Volume`, especifique `Snapshot` para que o CloudFormation crie um snapshot antes de excluir o recurso.

O seguinte snippet contém um recurso de bucket do Amazon S3 com uma política de exclusão `Retain`. Quando esta pilha for excluída, o CloudFormation deixará o bucket sem excluí-lo.

## JSON
<a name="aws-attribute-deletionpolicy-example.json"></a>

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Resources" : {
    "MyBucket" : {
      "Type" : "AWS::S3::Bucket",
      "DeletionPolicy" : "Retain"
    }
  }
}
```

## YAML
<a name="aws-attribute-deletionpolicy-example.yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    DeletionPolicy: Retain
```

## Opções de `DeletionPolicy`
<a name="aws-attribute-deletionpolicy-options"></a>

`Delete`  
O CloudFormation exclui o recurso e todo o conteúdo dele, se aplicável, durante a exclusão da pilha. Você pode adicionar esta política de exclusão a qualquer tipo de recurso. Por padrão, se você não especificar um `DeletionPolicy`, o CloudFormation excluirá seus recursos. No entanto, observe que  
+ Para os recursos `AWS::RDS::DBCluster`, a política padrão é `Snapshot`.
+ Para os recursos `AWS::RDS::DBInstance` que não especificam a propriedade `DBClusterIdentifier`, a política padrão é `Snapshot`.
+ Para buckets do Amazon S3, você deverá excluir todos os objetos no bucket para a exclusão para ser bem-sucedida.
O comportamento padrão do CloudFormation é excluir o segredo com o sinalizador ForceDeleteWithoutRecovery.

`Retain`  
O CloudFormation mantém o recurso sem excluir o recurso ou o conteúdo dele quando a pilha é excluída. Você pode adicionar esta política de exclusão a qualquer tipo de recurso. Quando o CloudFormation concluir a exclusão da pilha, ela estará no estado de `Delete_Complete`; no entanto, os recursos que estão retidos continuarão a existir, e estarão sujeitos a taxas aplicáveis até que você os exclua.  
Para atualizar as operações, as seguintes considerações se aplicam:  
+ Se um recurso for excluído, a `DeletionPolicy` reterá o recurso físico, mas garantirá que ele seja excluído do escopo do CloudFormation.
+ Se um recurso for atualizado de modo que um novo recurso físico seja criado para substituir o antigo, o recurso antigo será totalmente excluído, inclusive do escopo do CloudFormation.

`RetainExceptOnCreate`  
`RetainExceptOnCreate` se comporta como `Retain` para operações de pilha, exceto pela operação de pilha que inicialmente criou o recurso. Se a operação de pilha que criou o recurso for revertida, o CloudFormation excluirá o recurso. Para todas as outras operações de pilha, como a exclusão de pilha, o CloudFormation retém o recurso e seu conteúdo. O resultado é que recursos novos, vazios e não utilizados são excluídos, enquanto os recursos em uso e os dados deles são retidos. Consulte a documentação da API [UpdateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html) para usar essa política de exclusão como um parâmetro da API sem atualizar seu modelo.

`Snapshot`  
Para os recursos que oferecem suporte a snapshots, o CloudFormation cria um snapshot para o recurso antes de excluí-lo. Quando o CloudFormation concluir a exclusão da pilha, ela estará no estado de `Delete_Complete`; no entanto, os snapshots criados com esta política continuarão a existir e estarão sujeitos a taxas aplicáveis até que você os exclua.  
Os recursos que oferecem suporte a snapshots incluem:  
+ [AWS::DocDB::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-docdb-dbcluster.html)
+ [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-volume.html)
+ [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-cachecluster.html)
+ [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-replicationgroup.html)
+ [AWS::Neptune::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-neptune-dbcluster.html)
+ [AWS::RDS::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbcluster.html)
+ [AWS::RDS::DBInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html)
+ [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-redshift-cluster.html)