关于javascript:lambda函数的简单全局状态

Simple global state for lambda functions

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

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

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

1
2
3
4
5
6
7
8
9
// 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函数的全局状态。