首页 > 解决方案 > AWS 中是否有全局变量的真正替代品?

问题描述

我们有一个 lambda 函数,它访问一个外部资源,对于给定的 id,该资源只能一次执行一次。例如,对于 id=1 和 id=2 可以同时执行,但对于 id=1 和 id=1 不能同时执行。

为了使用 Node 应用程序实现这一点,我们将为每个 id 设置一个内存状态,它可以在使用资源时立即锁定,然后在不使用时再次解锁。

不幸的是,由于缺乏全局变量,这一概念在 AWS 中极难实现。我们考虑过:

这是我们第二次遇到这样的障碍,感觉就像是平台的弱点。谁能建议一种方法来实现这一目标?

标签: javascriptamazon-web-servicesaws-lambda

解决方案


使用 lambda 并发 1 / SQS 队列一次处理一个 - 不起作用,因为并发不严格限制为 1,它是每组 1

如果您设置一个 FIFO SQS 队列并发送重复数据删除 ID 设置为您的唯一 ID 的消息,您将使用 SQS 实现锁定。

更多关于它:

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html


推荐阅读