首页 > 解决方案 > 在多个 azure 函数实例之间共享一个对象实例

问题描述

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

干杯

标签: c#azureazure-functionsazure-durable-functions

解决方案


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

您标记的 azure-durable-function 也不是您真正需要的解决方案。它不会永远存储真正的单例,它只是存储和恢复你的函数执行的内容和得到的内容。某些单例中的实际数据会丢失。它存储状态的方式是通过表/博客存储。

所以本质上,如果你在函数之间共享状态(或者甚至是你需要保持在同一个函数中的状态),你唯一的方法就是使用某种你可以依赖的持久存储。所以,blob 存储、表、redis、sql 等等。


推荐阅读