title: Lambda + Python + Exit Code
body: <p>I've encountered an issue with a simple AWS Lambda function written in Python.</p>
  
  <p>When I run my Lambda function, my code is running as expected, the result is correct, but still ends with an error code (exit code): <code>"Process exited before completing request"</code>, this is causing the Lambda to run 3 times (async).</p>
  
  <p>Do you have any best practice to manage the exit code for Lambda ?</p>
  
  <pre><code>#!/usr/bin/python
  
  import boto3
  import sys
  import tweepy
  import datetime
  
  session = boto3
  
  # Init s3 client
  s3 = session.resource('s3')
  
  def get_data_and_push(s3_bucket, s3_key, user):
      # Retrieve CSV file
      try:
          dest = s3.Object(s3_bucket, s3_key)
          dest.download_file(tmpfile)
      except Exception, e:
          print 'An error occured while trying to download CSV file'
          print 'This exception has been thrown :'
          print e
          sys.exit(1)
  
      # Authenticate to Twitter
      try:
          auth = tweepy.OAuthHandler(t_consumer_key, t_consumer_secret)
          auth.set_access_token(t_access_token_key, t_access_token_secret)
          api = tweepy.API(auth)
      except Exception, e:
          print 'Cannot authenticate to Twitter.'
          print 'This exception has been thrown :'
          print e
          sys.exit(2)
  
      data = api.get_user(user)
      print 'User : ' + data.screen_name
      print 'Followers : ' + str(data.followers_count)
      print 'Friends : ' + str(data.friends_count)
      print '-----------'
  
      # Get today's date
      today = datetime.datetime.now().strftime("%Y-%m-%d")
  
      # Write result
      try:
          # Write result at the end of the file
          file = open(tmpfile, 'a')
          file.write(today + ',' + str(data.followers_count) + ',' + str(data.friends_count)+ '\n')
          file.close()
      except Exception, e:
          print 'Unable to write in temp file'
          print 'This exception has been thrown :'
          print e
          sys.exit(5)
  
      # Upload final file
      try:
          # Push file to S3
          dest.upload_file(tmpfile)
      except Exception, e:
          print 'An error occured while trying to upload CSV file'
          print 'This exception has been thrown :'
          print e
          sys.exit(6)
  
  def main(event, context):
      for user in userlist:
          get_data_and_push(bucket, 'export_' + user + '.csv', user)
      sys.exit(0)
  </code></pre>
  
  <p>Thanks for your help,</p>