lambda函数的简单全局状态

时间:2016-07-22 22:15:18

标签: javascript aws-lambda

我使用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函数中的全局状态,比如原语这样的简单事物?

1 个答案:

答案 0 :(得分:4)

你必须在Lambda之外的某个地方存储那种东西。我一直在使用DynamoDB表存储Lambda函数全局状态。