Deleting Stack Not deleting Lambda CloudWatch LogGroup


I am creating a Lambda function and a Log Group for it to control the retention days using Serverless Application Model (SAM), similar to Cloud Formation. Below is the code snippet. However, when I delete the stack, the Lambda function gets deleted, but the Log Group doesn't get deleted, instead it's retention changes to Never Expire.

    Type: AWS::Logs::LogGroup
      RetentionInDays: 3
      LogGroupName: !Sub /aws/lambda/${MyLambdaFunction}

How can I ensure that the Cloud Watch Log Group associated with the Lambda also gets deleted on deleting the stack? Can anyone please help with this?

2 Answers
Accepted Answer

There are some workarounds here but please pay attention to the race condition caveats mentioned in the thread.

answered a year ago
profile picture
reviewed a day ago
profile picture
reviewed 7 months ago
  • Thank you. What worked for me was to remove "CreateLogGroup" permission from the Lambda function in the SAM template. I am already creating the Cloud Watch Log Group for the Lambda anyways. This was mentioned in that link.


Have you tried setting a DeletionPolicy? If you have the Log Group defined in your template, I would expect setting the policy to delete would remove it.

profile picture
answered a year ago
  • As per the link you sent, it says the resource is deleted, if DeletionPolicy attribute not set. In my case, this attribute is not set. So, it should delete it by default, right?

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions