gpt4 book ai didi

Python lambda 函数在 elasticache 连接失败时超时

转载 作者:可可西里 更新时间:2023-11-01 11:24:54 26 4
gpt4 key购买 nike

所以我有一个像这样的 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

我有:

  • lambda vpc 正确设置为与 Elasticache 集群位于同一 vpc 上,安全组允许所有入站/出站
  • lambda 执行角色可以访问所有资源的所有操作,包括 vpc、elasticache 等。

当我在我自己的机器上本地运行该函数时,它正确地快速退出,因为 Elasticache 显然拒绝了我机器的 ip 地址,但问题是我在 lambda 上运行它时甚至看不到错误消息以查看发生了什么事。

实际问题:所以除了我的 lambda 无法连接到 redis 的原因之外,如何让 lambda 正确记录错误并在出现错误时退出而不是等待 60 秒并超时?

最佳答案

提供的信息较少。

Lambda 可能由于 redis 连接而超时。您可以增加 lambda 超时(必须大于 redis 客户端中设置的超时)或在 redis-py 中设置您自己的连接超时值。

我认为您还可以将 Redis 连接部分移动到 lambda 处理程序中并传递它。放入 try catch 并在 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

关于Python lambda 函数在 elasticache 连接失败时超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48492495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com