Javascript lambda函数的简单全局状态

Javascript lambda函数的简单全局状态,javascript,aws-lambda,Javascript,Aws Lambda,我使用lambda函数每5分钟对设备API进行一次长轮询以收集数据。我还希望能够为测试目的实时触发数据获取。我可以在API调用中设置最后的日期时间。。。类似于GET/data/?fromDate=$date 我希望能够做的是以某种方式跟踪上次请求的时间,因此每次运行lambda函数时,我都会获取自上次请求以来收集的所有数据,无论是在计划运行中还是手动完成的 通常我可以简单地使用一个变量: // set initial date let lastTime = moment().subtract("

我使用lambda函数每5分钟对设备API进行一次长轮询以收集数据。我还希望能够为测试目的实时触发数据获取。我可以在API调用中设置最后的日期时间。。。类似于
GET/data/?fromDate=$date

我希望能够做的是以某种方式跟踪上次请求的时间,因此每次运行lambda函数时,我都会获取自上次请求以来收集的所有数据,无论是在计划运行中还是手动完成的

通常我可以简单地使用一个变量:

// set initial date
let lastTime = moment().subtract("5 minutes").toDate();

// lambda function handler
export default async () => {
   const data = await gatherData();
   lastTime = new Date;
   return storeData(data);
}
但是,在lambda中,每次运行都可能是一个新进程,因此不能保证
lastTime
将保留在内存中


有没有什么方法可以让我跟踪lambda函数中的全局状态,比如原语?

您必须将此类内容存储在lambda之外的某个地方。我一直在使用DynamoDB表来存储Lambda函数全局状态。

您必须将此类内容存储在Lambda之外的某个地方。我一直在使用DynamoDB表来存储Lambda函数全局状态。

太好了;你能提供一个更详细的例子吗?它基本上只是一个DynamoDB查询,函数做的第一件事就是获取当前状态,然后根据需要进行(可能是有条件的)更新。需要进行的更新,以及它们是否有条件,将完全基于您的特定用例;你能提供一个更详细的例子吗?它基本上只是一个DynamoDB查询,函数做的第一件事就是获取当前状态,然后根据需要进行(可能是有条件的)更新。需要进行的更新,以及它们是否有条件,将完全基于您的特定用例。