Я столкнулся с проблемой простой лямбда-функции AWS, написанной на Python.
Когда я запускаю свою лямбда-функцию, мой код работает должным образом, результат правильный, но все равно заканчивается ошибкойкод (код выхода): "Process exited before completing request"
, это приводит к тому, что Lambda запускается 3 раза (асинхронно).
Есть ли у вас какие-либо рекомендации по управлению кодом выхода для Lambda?
#!/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)
Спасибо за помощь,