RemovalPolicy
- class aws_cdk.RemovalPolicy(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
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:
# my_role: iam.Role cr.AwsCustomResource(self, "Customized", role=my_role, # must be assumable by the `lambda.amazonaws.com` service principal timeout=Duration.minutes(10), # defaults to 2 minutes memory_size=1025, # defaults to 512 if installLatestAwsSdk is true log_group=logs.LogGroup(self, "AwsCustomResourceLogs", retention=logs.RetentionDays.ONE_DAY ), function_name="my-custom-name", # defaults to a CloudFormation generated name removal_policy=RemovalPolicy.RETAIN, # defaults to `RemovalPolicy.DESTROY` policy=cr.AwsCustomResourcePolicy.from_sdk_calls( resources=cr.AwsCustomResourcePolicy.ANY_RESOURCE ) )
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.