cleanup_bucket.py 964 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import boto3
  2. from crhelper import CfnResource
  3. from decorators import with_logging
  4. helper = CfnResource(json_logging=False, log_level="DEBUG", boto_level="CRITICAL")
  5. s3 = boto3.resource("s3")
  6. @with_logging
  7. def empty_bucket(bucket_name):
  8. bucket = s3.Bucket(bucket_name)
  9. bucket.objects.all().delete()
  10. bucket.object_versions.all().delete()
  11. @with_logging
  12. @helper.create
  13. def create(event, context):
  14. return None
  15. @with_logging
  16. @helper.update
  17. def update(event, context):
  18. props = event["ResourceProperties"]
  19. props_old = event["OldResourceProperties"]
  20. web_ui_deployed = props_old.get("DeployWebUI", "true")
  21. if web_ui_deployed == "true" and props["DeployWebUI"] == "false":
  22. empty_bucket(props["Bucket"])
  23. return None
  24. @with_logging
  25. @helper.delete
  26. def delete(event, context):
  27. props = event["ResourceProperties"]
  28. empty_bucket(props["Bucket"])
  29. return None
  30. def handler(event, context):
  31. helper(event, context)