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" : { "MyBucket" : { "Type" : "AWS::S3::Bucket", "DeletionPolicy" : "Retain" } } }
YAML
AWSTemplateFormatVersion: '2010-09-09' Resources: MyBucket: 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 propriedadeDBClusterIdentifier
, 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.
-
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 comoRetain
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 APIUpdateStack
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: