def lambda_handler()

in lambdas/setup_empty_bucket/index.py [0:0]


def lambda_handler(event, context):
  s3 = boto3.resource('s3')
  response = cfnresponse.FAILED

  # Get CloudFormation parameters
  cfn_stack_id = event.get('StackId')
  cfn_request_type = event.get('RequestType')
  cfn_physicalResourceId = context.log_stream_name if event.get('ResourceProperties.PhysicalResourceId') is None else event.get('ResourceProperties.PhysicalResourceId')

  message = ''
  
  # If CloudFormation is being deleted, empty S3 bucket
  if cfn_stack_id and cfn_request_type == 'Delete':
    try:
      bucket = s3.Bucket(SCRIPT_BUCKET)
      bucket.objects.delete()
      message = 'INFO: Deleted data from S3 bucket: ' + SCRIPT_BUCKET
      response = cfnresponse.SUCCESS
    except botocore.exceptions.ClientError as e:
      # If a client error is thrown, then check that it was a 404 error.
      # If it was a 404 error, then the bucket does not exist.
      error_code = int(e.response['Error']['Code'])
      if error_code == 404:
        message = 'WARNING: Bucket does not exist: ' + SCRIPT_BUCKET
        response = cfnresponse.SUCCESS
      else:
        print('ERROR: ', e)
        message = '{}'.format(e)
    except Exception as e:
      print('ERROR: ', e)
      message = '{}'.format(e)
  else:
    message = 'INFO: Creating or updating function.'
    response = cfnresponse.SUCCESS

  cfnresponse.send(event, context, response, 
    {
      'Message': message
    },
    cfn_physicalResourceId)
  
  return {
    'statusCode': 200,
    'body': message
  }