所以我有一个像这样的python处理程序:
redisClinet = redis.StrictRedis(host = environ['REDIS_ENDPOINT'], port=6379, db=0)
def handler(event, context):
// some logic
lastEvent = redisClinet.get('lastEvent')
// rest of the logic
我有:
当我在我自己的机器上本地运行该函数时,它正确地退出,因为Elasticache明显拒绝我的机器的IP地址,但问题是当我在lambda上运行它时我甚至看不到错误消息发生了什么事。
实际问题:除了我的lambda无法连接到redis的原因外,如何让lambda正确记录错误并退出错误而不是等待60秒并超时?
答案 0 :(得分:0)
提供的信息较少。
由于redis连接,Lambda可能会超时。您可以增加lambda超时(必须大于redis客户端中设置的超时)或者在redis-py中设置自己的连接超时值。
我认为你也可以将Redis连接部分移动到lambda处理程序并传递它。尝试捕获并将日志打印到catch中。 像这样:
def handler(event, context):
try:
redisClinet = redis.StrictRedis(host = environ['REDIS_ENDPOINT'], port=6379, db=0)
except Exception as e:
print e
// some logic
lastEvent = redisClinet.get('lastEvent')
// rest of the logic