S3,DynamoDB,KMS或任何其他版本的“冷”启动

Vik*_*tov 6 amazon-s3 amazon-web-services amazon-dynamodb aws-lambda

我使用NodeJs AWS Lambdas。如果一段时间内(大约8小时或更长时间)不打给S3,DynamoDB或KMS的电话,我拨打的电话通常会非常缓慢-长达5秒。查询本身没有什么复杂的-即获得0.2Kb S3对象,通过索引查询DynamoDB表。

因此,当这些资源不处于活动状态时,以及当我花了一些时间从“休眠”状态返回后第一次调用它们时,它们看起来像是“休眠”了这些资源。这是我的假设,但我在文档中找不到有关此信息。因此,问题是以下两个:

  1. 我对“休眠”的假设正确吗?
  2. 如果第一点是正确的,那么除了通过每隔X分钟调用一次服务来保持这些服务“热”之外,是否有任何方法可以减轻对AWS服务的这些“冷”调用?

编辑

只是为了避免混淆-这与Lambda的冷启动无关。我知道它们的存在,它们在函数的延迟中各有其份。我测量的时间是调用Lambda之后调用S3 / DynamoDB等的确切时间。

E.J*_*nan 2

很可能是 lambda 函数处于休眠状态,而不是其他服务:

当 AWS Lambda 函数在长时间未使用后被调用时,会发生冷启动,从而导致调用延迟增加。

https://medium.com/@lakshmanLD/resolving-cold-start%EF%B8%8F-in-aws-lambda-804512ca9b61

是的,您可以设置一个 cloudwatch 事件来保持 lambda 函数的温暖。