Atributo DeletionPolicy - AWS CloudFormation

Atributo DeletionPolicy

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 você deseja controlar. Se um recurso não tem o atributo DeletionPolicy, o AWS 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 retenção 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 retenção 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

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

YAML

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

Opções de DeletionPolicy

Excluir

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 uma 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.

Reter

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 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.

Snapshot

Para os recursos que apoiam 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: