AWS Lambda GoLang错误

6

当创建AWS会话失败时,使用panic()是否可行?相反地,我可以从处理程序函数中返回错误(在这种情况下,我必须在处理程序代码中创建会话,而不是在 init()中创建)。

文档说:

Lambda将自动重新创建函数

这是否意味着panic总是导致冷启动,并且最好从处理程序返回错误?


能否加一个文档链接?什么是冷启动? - tothemario
@tothemario https://docs.aws.amazon.com/lambda/latest/dg/go-programming-model-errors.html - S2201
2个回答

6

是的。触发恐慌将会冷启动您的代码。使用panic应该仅限于特殊情况;在大多数情况下,返回错误是首选。


现在我在思考,如果Lambda无法创建AWS会话,那么重新启动可能是一个很好的理由?重新初始化Lambda。 - S2201

2
答案取决于init部分正在发生的事情。
如果您创建会话客户端以连接其他服务,则最好出现紧急情况并导致冷启动,而不是使用失败的客户端继续容器的生命周期。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接