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 quiser controlar. Se um recurso não tiver 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 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

{ "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

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.

nota

O comportamento padrão do CloudFormation é excluir o segredo com o sinalizador ForceDeleteWithoutRecovery.

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