跨多个Azure Function实例共享对象

时间:2016-09-08 09:34:36

标签: azure-functions

我们需要存储一个可以被多个函数实例访问和使用的Object,请告知实现此目的的最佳方法。

2 个答案:

答案 0 :(得分:3)

大多数情况下,所有函数执行都在同一个进程中运行,因此可以使用静态类成员跨函数实例共享状态。但是,这不可靠。该过程可以随时关闭,或者您的功能可以扩展到跨多个VM的多个进程,这意味着某些功能将看到静态数据的一个副本,而其他功能则看到不同的副本。因此,静态变量实际上只能用作尽力而为的瞬态缓存。

如果要在函数实例之间可靠地共享对象,则需要将对象序列化到某些外部数据存储(如Redis),或将对象序列化到本地文件系统,该文件系统始终可用于所有实例。你的功能。

答案 1 :(得分:0)

我一直在使用Azure Functions来通过调用来保存静态数据。我认为只要功能没有扩展并且基础流程没有被azure基础设施处理,静态属性就会通过多次调用持续存在。尽管天蓝色的功能本质上是无国籍的。

所以我有几个azure函数在静态并发字典中缓存数据,在不同的定时器上运行 - 5/10 / 20min,除非你停止/重启函数,否则所有值都通过调用进行。缓存长时间有效,例如几天,直到你停止或重新部署功能