首页 > 解决方案 > 在 aws lambda 实例中创建 18 位唯一 ID

问题描述

我遇到了这个问题。

方法:我们使用 AWS lambda 执行所有服务。我试图生成一个唯一 ID(ex - J04tWlvoUUHvpt)来将每个条目存储在 Mongo 中,我正在使用https://www.npmjs.com/package/uniqid创建这个模式。它使用时间戳、processID 和服务器的 mac 地址来创建 id。

问题:上述方法在任何服务器或本地机器上都能完美运行。但是在 lambda 中运行它有问题。由于 lambda 创建无状态实例,它会为 lambda 的初始实例创建一个唯一的 id,但后来它只会创建重复的副本,仍然是它关闭的 lambda 实例。

将应用任何解决方案。

标签: amazon-web-servicesaws-lambdaduplicatesunique-id

解决方案


uniqid 库在AWS Lambda 中运行良好(我刚刚尝试使用 Node 运行时)。

它会考虑时间戳并记住最后返回的时间戳,以便在最后返回的时间戳等于当前时间戳时将其增加 1 。

因此,即使在同一个 Lambda 进程和同一毫秒内多次调用也会产生不同的值。

另一种选择是使用awsRequestIdfrom context(第二个处理程序参数)。


推荐阅读