Aws lambda 如何在AWS lambdas中保持状态?

Aws lambda 如何在AWS lambdas中保持状态?,aws-lambda,Aws Lambda,我们有一个库,允许我们访问一些外部API,但它有一个非常长的初始化时间。此外,无法使用会话密钥或任何可存储的内容对其进行初始化,它必须始终经过整个初始化过程 有没有办法让库只初始化一次,然后在所有lambda函数中使用 如果我们能够以某种方式通过反向工程代码注入会话,那么会话数据最好存储在哪里?在DynamoDB中,阶段变量,还有其他吗? aws lambda中有全局变量,在lambda\u handlerhandler之外声明的任何变量都可以在连续调用中使用,前提是aws使用相同的容器。我不确

我们有一个库,允许我们访问一些外部API,但它有一个非常长的初始化时间。此外,无法使用会话密钥或任何可存储的内容对其进行初始化,它必须始终经过整个初始化过程

有没有办法让库只初始化一次,然后在所有lambda函数中使用

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

  • aws lambda中有全局变量,在
    lambda\u handler
    handler之外声明的任何变量都可以在连续调用中使用,前提是aws使用相同的容器。我不确定你的案子会不会这样。因为一旦aws销毁了容器,那么之后进行的下一次调用必须再次进行重新初始化。这将取决于该服务的使用频率或繁忙程度
  • 如果您正在考虑对代码进行反向工程,那么在这种情况下,您可以使用多种选项来存储会话,如DynamoDB、Amazon ElastiCache。那么这一切都取决于您的服务需求和预算
  • 正如elRull所建议的,如果您能够围绕它构建一个服务,并让它在t2.micro中运行,那么它可能会工作。就像在第一次调用时初始化它,然后让它保持活动状态,让其他调用使用它一样

我建议围绕该特定库创建一个服务,这样就可以像API一样从任何地方查询它,而不是在本例中为所有lambda加载它。lambdas中的Globals听起来不错,我们将尝试重置它的频率。否则t2.micro可能会工作。谢谢!