如何在 Azure Function 中保持状态(廉价的方式)?

How to persist state in Azure Function (the cheap way)?

如何在 Azure 函数执行之间保留少量数据?就像在全局变量中一样?该函数在定时器触发器上运行。

我需要存储一次 Azure 函数执行的结果,并将其用作同一函数下一次执行的输入。在函数执行之间存储数据的最便宜(不一定最简单)的方法是什么?

(目前我正在使用每个人都能获得的免费数量的 Azure Functions,现在我想以类似的免费或廉价方式保存状态。)

有几个选项 - 我建议您将状态存储在 blob 中。

您可以使用 blob 输入绑定来读取每次执行的全局状态,并使用 blob 输出绑定来更新该状态。

您还可以删除计时器触发器并使用队列,将状态存储在队列消息中,并在消息上设置可见性超时以设置计划(即下一次执行时间)。

最后,您可以使用文件系统上的文件,因为它在函数应用程序之间共享。

如果您可以接受数据丢失的可能性并且只关心实例级别,您可以:

  • 维护静态数据结构
  • 写入实例本地存储

这是旧话题,但值得分享在 Azure 函数中处理状态的新方法。

现在我们拥有来自 Microsoft 本身的持久函数方法,我们可以在其中非常轻松有效地维护函数状态。请参考 MS 的以下文档。

https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview

现在可以使用持久实体来处理状态持久性。

https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-entities?tabs=csharp