我有一个AWS Lambda函数。在.json文件上有一个数组。现在的事情是,我想修改该.json,但是在运行之后,该json与运行之前完全相同。 我放在那里的日志让我认为它实际上已被修改,但是,我想知道lambda是否在运行前回到其定义。 我需要在json中保存的信息将始终只是少量设置,但是这些设置将很容易修改,而无需进行部署,并且会避免使用db或s3存储桶。>
关于, 丹尼尔
答案 0 :(得分:2)
您将无法执行此操作。 Lambda存储部署程序包(即您用于部署的.zip
或.jar
文件),并将该程序包用于它启动的下一个Lambda。这款新的Lambda可能是,也可能不是刚刚运行的。
最简单的方法是将其存储在S3存储桶中。请注意,尽管就像在多线程编程中一样,您可能同时运行多个进程(Lambda实例),所以需要注意资源争用。
答案 1 :(得分:1)
AWS Lambda图像是不可变的。您需要部署新的状态文件(带有数组的json)或为其使用某种存储。
答案 2 :(得分:1)
我希望您考虑Lambda函数的以下行为:
假设您向上旋转了一个lambda, 然后您向lambda发送第二条消息。
如果您在发送第二条消息之前先完成lambda
相同的lambda 将运行该消息。
所以这就是为什么您看到它更改了文件的原因,它位于具有相同文件的同一实例上。
我建议将json加载到内存中, 而不是直接更改文件。
那将解决您的问题。