text: def main(event, context):
  
      # get modules
      import logging as log
      import cfnresponse
      import boto3
  
      log.getLogger().setLevel(log.INFO)
  
      # This needs to change if there are to be multiple resources
      # in the same stack
      physical_id = event["ResourceProperties"]["PhysicalId"]
  
      try:
          log.info(f"Input event: {event}")
  
          # Check if this is a Create and we're failing Creates
          if event["RequestType"] == "Create" and event["ResourceProperties"].get(
              "FailCreate", False
          ):
              raise RuntimeError("Create failure requested")
  
          # Delete objects from the bucket if event is delete
          if event["RequestType"] == "Delete":
              bucket = boto3.resource("s3").Bucket(
                  event["ResourceProperties"]["BucketName"]
              )
              bucket.objects.all().delete()
  
          # do some reporting
          attributes = {"Response": f'{event["ResourceProperties"]["BucketName"]}'}
  
          cfnresponse.send(event, context, cfnresponse.SUCCESS, attributes, physical_id)
      except Exception as e:
          log.exception(e)
          # cfnresponse's error message is always "see CloudWatch"
          cfnresponse.send(event, context, cfnresponse.FAILED, {}, physical_id)
  