Skip to content
Snippets Groups Projects

add deletion policy

1 file
+ 33
9
Compare changes
  • Side-by-side
  • Inline
import {aws_ssm as ssm, custom_resources as cr, Stack} from 'aws-cdk-lib';
import {
aws_ssm as ssm,
CfnDeletionPolicy,
CfnResource,
custom_resources as cr,
CustomResource,
RemovalPolicy,
Stack,
} from 'aws-cdk-lib';
import {Construct} from 'constructs';
import * as fs from 'fs';
import * as path from 'path';
@@ -89,12 +97,28 @@ export function updateProxy(props: UpdateProxyProps): cr.AwsCustomResource {
},
};
return new cr.AwsCustomResource(props.scope, `${props.id}SnsReverseProxy`, {
onCreate: sdkCall,
onDelete: onDeleteSdkCall,
onUpdate: sdkCall,
policy: cr.AwsCustomResourcePolicy.fromSdkCalls({
resources: cr.AwsCustomResourcePolicy.ANY_RESOURCE,
}),
});
const customResource = new cr.AwsCustomResource(
props.scope,
`${props.id}SnsReverseProxy`,
{
onCreate: sdkCall,
onDelete: onDeleteSdkCall,
onUpdate: sdkCall,
removalPolicy: RemovalPolicy.RETAIN,
policy: cr.AwsCustomResourcePolicy.fromSdkCalls({
resources: cr.AwsCustomResourcePolicy.ANY_RESOURCE,
}),
}
);
const cfnResource = (
customResource.node.defaultChild as CustomResource | undefined
)?.node.defaultChild as CfnResource | undefined;
// Update deletion policy
if (cfnResource instanceof CfnResource) {
cfnResource.addOverride('DeletionPolicy', CfnDeletionPolicy.DELETE);
}
return customResource;
}
Loading