在多个Azure功能实例之间共享对象的一个​​实例

时间:2018-10-17 08:02:40

标签: c# azure azure-functions azure-durable-functions

我遇到这样的情况,我需要一个对象实例的一个实例在Azure函数的多个实例之间共享。原因是对象在内部保存了我需要的某种状态,它是外部库,因此我需要使用它,而没有解决方法。持久的Azure功能是否可能以某种方式实现?要拥有一个将由队列触发器或http触发器触发的函数,并且该函数将具有该单例实例,并调用常规的Azure函数?那什么时候关闭“主要”功能呢?

欢呼

1 个答案:

答案 0 :(得分:2)

在函数之间共享实例是不可能的。这些函数在不同的机器上运行,它们只是无法引用谁知道哪里的内存位置。

您标记的azure-durable-function并不是您真正需要的解决方案。它不会永远存储真正的单例,而只是存储和恢复函数执行的内容以及所获得的内容。某个单例中的实际数据将丢失。它存储状态的方法是通过表/博客存储。

因此,从本质上讲,如果您在函数之间具有共享状态(甚至需要保持相同功能的状态),则唯一的方法是使用某种可以依赖的持久性存储。因此,blob存储,表,redis,sql等。