如何在AWS Lambda中保持状态?

时间:2019-10-15 15:33:57

标签: aws-lambda

我们有一个库,可以让我们访问某些外部API,但是初始化时间很长。同样,也没有办法使用某些会话密钥或可以存储的任何东西来初始化它,它总是必须经历整个初始化过程。

有没有一种方法可以使该库仅初始化一次,然后在所有lambda函数中使用?

如果我们能够以某种方式通过对代码进行反向工程来注入会话,那么会话数据最好存储在哪里?在DynamoDB中,还有阶段变量吗?

1 个答案:

答案 0 :(得分:1)

  • aws lambda中有全局变量,在lambda_handler处理程序外部声明的任何变量都可以在连续调用中使用,前提是aws使用相同的容器。不确定您的情况是否可以。由于一旦容器被aws破坏,则此后进行的下一次调用将不得不再次进行重新初始化。这全都取决于该服务将被使用的频率或其繁忙程度。
  • 如果您打算对代码进行逆向工程,那么在这种情况下,您可以使用多个选项来存储会话,例如DynamoDB,Amazon ElastiCache。然后,这完全取决于您的服务需求和预算。
  • 如elRull所建议,如果您能够围绕它构建服务并将其保持在可能起作用的t2.micro中。就像在第一次调用时对其进行初始化,然后使其保持活动状态并让其他调用使用它一样。