【发布时间】:2021-01-05 17:15:56
【问题描述】:
我有一组 Azure 函数在同一台主机上运行,有时可以扩展到多个实例。我想存储非常少量的临时数据(几 kb),并有机会在函数执行之间共享这些数据。我知道临时目录仅适用于在同一实例上运行的函数。我还知道我可以使用主目录、持久函数或其他 Azure(例如 blob)存储在所有函数之间持久共享数据。
我有两个主要问题
- 使用临时目录有哪些安全隐患?谁可以在运行函数之外访问其内容?
- 这仍然是一个合理的解决方案吗?除了看起来像一些过时的 kudu 文档 here 之外,我在 Microsoft 文档中找不到太多东西。
谢谢!
【问题讨论】:
-
为什么不在表存储中缓存您的数据?你不应该需要推出自己的存储机制。你想让我教你怎么做吗?
-
谢谢!我确实知道怎么做,但试图避免添加额外的基础设施,即使是最小的(特别是考虑到我的安全需求)。我确实找到了另一种解决方案 - 将数据作为静态值存储在内存中,该值是惰性初始化的(并以线程安全的方式更新/获取)。主机上的所有功能都共享内存,因此这实际上是一种必须更快、更安全的解决方案。从技术上讲,这不是我问题的答案,所以我没有标记它。
-
当你的函数扩展它时,你的所有实例都不能保证在同一个虚拟机上,因此它不能共享本地缓存。至少消费计划是这样的
-
完全理解。我不需要一个完整的共享,只需要机会共享来减少初始化一些数据的需要一个数量级左右。感谢您的提醒!
-
“无服务器服务”的重点是没有服务器。通过使用“临时磁盘存储”,您承认有一个服务器是无服务器服务的完全对立面。你在一个没有答案的问题上放了 500 分的赏金。不要将无服务器服务视为它们不是的东西。你想要一个带有临时存储的服务器吗?然后在 GoDaddy 上获取托管计划,远离云端。
标签: azure azure-functions serverless azure-functions-runtime azure-files