CDK destroy is not deleting DynamoDB table created by CDK

0

Hi All,

I deployed a serverless-api https://github.com/fortejas/example-serverless-python-api on a cloud9 environment using CDK. When I run cdk destroy, I noticed that the DynamoDB table are not being deleted. I was wondering if this could be a CDK defect? or advise some tips on how to resolve this?

Thank you

profile picture
Sri
質問済み 2年前3326ビュー
1回答
4
承認された回答

By default, CDK will (generally) apply a RemovalPolicy value of RETAIN to stateful resources which could contain data in order to avoid deleting it when destroying the stack.

You can see this in the synthesised template. For example, with this resource declared in CDK:

const table = new ddb.Table(this, "testTable", {
	partitionKey: { type: AttributeType.STRING, name: 'id' },
});

the synthesised template will contain the following:

    "testTableFD9E8557": {
      "Type": "AWS::DynamoDB::Table",
      "Properties": {
        [snip]
      },
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain",
      [snip]
    },

The CloudFormation UpdateReplacePolicy and DeletionPolicy attributes being Retain will cause CloudFormation to leave the resource intact when deleting the stack.

To have the resource deleted when the stack is deleted (when you run cdk destroy), specify a RemovalPolicy of DESTROY or SNAPSHOT in your code:

const table = new ddb.Table(this, "testTable", {
	partitionKey: { type: AttributeType.STRING, name: 'id' },
	removalPolicy: RemovalPolicy.DESTROY,
});

giving this CFN template:

    "testTableFD9E8557": {
      "Type": "AWS::DynamoDB::Table",
      "Properties": {
        [snip]
      },
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete",
      [snip]
    },
profile pictureAWS
エキスパート
James_S
回答済み 2年前
profile pictureAWS
エキスパート
Toni_S
レビュー済み 2年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ