lambda 函数的简单全局状态
Simple global state for lambda functions
我正在使用 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 table 来存储 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 函数中的全局状态,以处理诸如基元之类的简单事物?
你必须将这类东西存储在 Lambda 之外的某个地方。我一直在使用 DynamoDB table 来存储 Lambda 函数全局状态。