如何在Azure功能中保持状态(便宜的方式)?

Hei*_*cht 6 azure azure-functions

如何在Azure Function执行之间保留少量数据?就像在全局变量?该功能在定时器触发器上运行.

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

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

小智 8

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

现在我们有了微软自己的持久函数方法,我们可以非常轻松有效地维护函数状态。请参阅 MS 的以下文档。

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


Mat*_*son 7

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

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

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

最后,您可以在文件系统上使用文件,因为它在功能应用程序中共享.

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

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

  • 有关使用文件系统的任何文档?我的印象是,在给定足够的负载和适当的配置的情况下,功能可以随时从一个物理主机迁移到另一个物理主机,或者在多个主机上运行. (2认同)