amazon-web-servicesamazon-s3aws-cloudformations3-lifecycle-policy

Unable to add lifecycle policy to s3 bucket using serverless


I want to add a lifecycle policy to my existing s3 bucket (using serverless) which deletes all the folders inside my s3 bucket.I have written the code in the serverless.yml.When I am trying to deploy my code i am getting -

Additional stack resources updated failed (UPDATE_ROLLBACK_COMPLETE).

so i checked into cloudformation stacks , i am getting message that my bucket already exists -

my_bucket_name already exists

Resource update cancelled

The following resource(s) failed to create: [my_bucket_name]

I am not sure why am i getting this , my s3_bucket code looks like this -

custom:
    additionalStacks:
      ressources:
        Resources:
          MyS3TBucket:
            Type: AWS::S3::Bucket
            Properties:
              BucketName: my_bucket
              LifecycleConfiguration:
                Rules:
                  - Status: Enabled 
                    ExpirationInDays: 30

This is not my entire s3 code but a small part of it which is required in this post. Before adding lifecycle configuration everything was working fine. Any help would be appreciated , Thank you


Solution

  • As the error suggests:

    my_bucket_name already exists
    

    The bucket that you want to create already exists. If its yours, you have to delete it before you can re-create it. If not, bucket names must be globally unique. This means that maybe some other AWS user has already created a backed with the same name as yours. In this case you must ensure that the back name is absolutely unique, which is often done by adding some random postfix, e.g.:

    MyS3TBucket:
          Type: AWS::S3::Bucket
          Properties:
            BucketName: my_bucket-489d939239dd3
            LifecycleConfiguration:
              Rules:
                - Status: Enabled 
                  ExpirationInDays: 30