RemovalPolicy
- class aws_cdk.RemovalPolicy(value)
Bases:
Enum
Possible values for a resource’s Removal Policy.
The removal policy controls what happens to the resource if it stops being managed by CloudFormation. This can happen in one of three situations:
The resource is removed from the template, so CloudFormation stops managing it;
A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it;
The stack is deleted, so CloudFormation stops managing all resources in it.
The Removal Policy applies to all above cases.
Many stateful resources in the AWS Construct Library will accept a
removalPolicy
as a property, typically defaulting it toRETAIN
.If the AWS Construct Library resource does not accept a
removalPolicy
argument, you can always configure it by using the escape hatch mechanism, as shown in the following example:# bucket: s3.Bucket cfn_bucket = bucket.node.find_child("Resource") cfn_bucket.apply_removal_policy(RemovalPolicy.DESTROY)
- ExampleMetadata:
infused
Example:
import aws_cdk as cdk app = cdk.App() stack = cdk.Stack(app, "Stack", env=cdk.Environment(region="us-west-2")) global_table = dynamodb.TableV2(stack, "GlobalTable", partition_key=dynamodb.Attribute(name="pk", type=dynamodb.AttributeType.STRING), removal_policy=cdk.RemovalPolicy.DESTROY, deletion_protection=True, # only the replica in us-east-1 will be deleted during stack deletion replicas=[dynamodb.ReplicaTableProps( region="us-east-1", deletion_protection=False ), dynamodb.ReplicaTableProps( region="us-east-2", deletion_protection=True ) ] )
Attributes
- DESTROY
This is the default removal policy.
It means that when the resource is removed from the app, it will be physically destroyed.
- RETAIN
This uses the ‘Retain’ DeletionPolicy, which will cause the resource to be retained in the account, but orphaned from the stack.
- RETAIN_ON_UPDATE_OR_DELETE
Resource will be retained when they are requested to be deleted during a stack delete request or need to be replaced due to a stack update request.
Resource are not retained, if the creation is rolled back.
The result is that new, empty, and unused resources are deleted, while in-use resources and their data are retained.
This uses the ‘RetainExceptOnCreate’ DeletionPolicy, and the ‘Retain’ UpdateReplacePolicy, when
applyToUpdateReplacePolicy
is set.
- SNAPSHOT
This retention policy deletes the resource, but saves a snapshot of its data before deleting, so that it can be re-created later.
Only available for some stateful resources, like databases, EC2 volumes, etc.