Neovictorian Paisley Menswear
    Have ideas to improve npm?Join in the discussion! »

    This package has been deprecated

    Author message:

    WARNING: This project has been renamed to @mobileposse/auto-delete-bucket. Install using @mobileposse/auto-delete-bucket instead.

    auto-delete-bucket
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.4 • Public • Published

    NEW PACKAGE NAME AND REPOSITORY

    We have started over with a new NPM package name and versioning system. Version numbers now match the AWS CDK version supported.

    Please use the @mobileposse/auto-delete-bucket module instead.

    Source code has moved to mobileposse/auto-delete-bucket

    What it does

    Creates an S3 bucket in Cloud Formation that will automatically be emptied before the bucket is destroyed by Cloud Formation.

    How to use it

    This is an AWS CDK Construct which makes it dead simple to use in your CDK code.

    Just install with npm:

    npm add auto-delete-bucket
    

    And then require the construct and use it in your stack like any standard CDK resource!

    import { AutoDeleteBucket } from 'auto-delete-bucket'
     
    export class ExampleStack extends Stack {
      constructor(scope: App, id: string, props?: StackProps) {
        super(scope, id, props)
     
        /**
         * NOTE: S3 requires bucket names to be globally unique across accounts so
         * you will need to change the bucketName to something that nobody else is
         * using.
         */
        new AutoDeleteBucket(this, 'example-autobucket-1', {
          bucketName: 'autoexample-bucket1'
        })
      }
    }

    See the example directory for a complete CDK example. Be sure to change the bucketNames so they are unique.

    The bucket can be configured with any of the standard CDK Bucket Properties.

    Requirements

    • This is designed to work with AWS CDK but feel free to borrow the code if you want to create the custom CF resource some other way.
    • Does not yet work with versioned buckets but it can be easily adapted to do so (pull requests welcome.)

    Motivation

    Cloud Formation will often fail to actually delete your S3 Bucket resources when you destroy your stack. This happens whenever the bucket is not empty as the Cloud Formation documentation clearly states:

    You can only delete empty buckets. Deletion fails for buckets that have contents.

    We find that in most of our use cases, we want to automatically delete the bucket and it's contents whenever the stack is deleted. Otherwise you will have a bunch of orphaned buckets to clean up manualy. The problem is even worse when you need to explicitly name the bucket (ex. for a website), because you won't be able to recreate the stack due to the fact that a bucket already exists with that name.

    How it Works

    Create a custom resource that will automatically delete your bucket contents before attempting bucket deletion.

    Running Tests

    yarn test
    

    Building the Example Stack

    The source code includes a reference CDK project inside the example directory which consists of a single auto-delete-bucket.

    You can build the stack with:

    yarn cdk:deploy
    

    Go ahead and test this bucket out by adding some files to it. You can then test that everything will delete properly by destroying the stack (and bucket) with:

    yarn cdk:destroy
    

    Publish to NPM (Official maintainers only)

    Add npm user to your local machine (one time setup)

    npm adduser
    

    Push the release (you will be asked the new version)

    npm login
    

    Then provide username and password. Once authenticaated use the following command:

    yarn publish
    

    Push the tagged source back up to Github

    git push --tags
    

    More Information

    See the AWS documentation for more information on S3 and deleting bucket contents.

    Install

    npm i auto-delete-bucket

    DownloadsWeekly Downloads

    1

    Version

    1.3.4

    License

    MIT

    Unpacked Size

    12 kB

    Total Files

    8

    Last publish

    Collaborators

    • avatar
    • avatar