AWS Lambda在调用后不会终止函数实例

时间:2016-02-16 09:28:28

标签: c# amazon-s3 aws-lambda

我有AWS lambda函数从S3下载,创建zip存档并上传回S3。 有时我在日志中看到我的函数调用了两次。我将尝试详细描述。我的lambda函数等待一些参数:

 "OutputBucket": 'bucketName',
 "OutputKey": 'Zip/result.zip', * just for example
 "SourceBucket": 'bucketName',
 "SourcePrefix": 'projects/1990/6068/' *this is path to folder in S3

当用户点击按钮时,我调用lambda函数:

_lambdaClient.Invoke(invokeRequest);

我在调试器中看到,所有数据都正确填充,此代码调用一次。

但是在日志中我看到lambda调用两次并且参数不同。当我点击按钮,然后等到它完成然后再次点击另一个项目时,就会发生这种情况。

这是日志的屏幕截图: enter image description here

如您所见,有两个START / END记录。他们间隔4分钟。 结果我有zip文件,其中包含来自两个不同项目的文件。

哪里有问题?

1 个答案:

答案 0 :(得分:0)

  

“执行Lambda函数后,AWS Lambda维护着   容器有一段时间以期待另一个Lambda函数   调用。实际上,服务冻结后的容器   如果AWS,Lambda函数完成并解冻容器以供重用   Lambda选择在Lambda函数时重用容器   再次调用。“

它肯定会尝试在一段时间内重复使用您之前的功能。对于我们这些使用Lambda实例化Kestrel服务器的人来说,它有助于防止每次调用时设置代码重复。

http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html