微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将临时目录用于Azure Functions

如何解决将临时目录用于Azure Functions

我在同一主机上运行了一组Azure函数,这些函数有时可以扩展到许多实例。我想存储少量的临时数据(几个kb),并在函数执行之间机会性地共享这些数据。我知道temp目录仅可用于在同一实例上运行的功能。我也知道我可以使用主目录,持久功能或其他Azure(例如blob)存储在所有功能之间持久共享数据。

我有两个主要问题

  1. 使用临时目录有哪些安全隐患?谁可以在运行功能之外访问其内容
  2. 这仍然是一个合理的解决方案吗?在看起来有些过时的kudu文档here之外,我找不到Microsoft文档的方式。

谢谢!

解决方法

我相信这会回答您的问题:

enter image description here

有关更多详细信息,请参阅this

此外,当通过“临时”文件夹中的代码创建文件夹/文件时;您在访问KUDU网站时无法查看它们。但是您可以使用这些文件/文件夹。

如何通过KUDU创建文件/文件夹? 我们需要在配置(应用设置)中添加-WEBSITE_DISABLE_SCM_SEPARATION = true。

注意:-另一个重要说明是主站点和scm站点不共享临时文件。因此,如果您在网站上写了一些文件,则不会在Kudu Console中看到它们(反之亦然)。 如果禁用分隔(通过WEBSITE_DISABLE_SCM_SEPARATION),则可以使它们使用相同的临时空间。 但是请注意,这是一个旧标志,不建议/不支持使用它。 (参考:共享文档链接)

,

问题1的答案 是的,它是安全的。 Function主机进程在沙箱中运行。存储到D:\local的所有访问数据都是自包含的,并且与沙箱中的进程隔离。请参见https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox

问题2的答案 只要功能主机进程处于活动状态,D:\local\Temp中的数据就存在。由于意外事件(例如未处理的异常,超时,达到计划的资源使用限制),Functions主机进程可以随时回收。只要您的工作流考虑到D:\local\Temp中存储的数据都是临时数据这一事实,那么答案就是“是”。

,

安全隐患取决于您寻求的隔离级别。

  1. 在共享的应用程序服务计划或使用计划中,您需要信任沙盒隔离。这不是像AWS Lambda这样的隔离的微型虚拟机。
  2. 如果您有自己的应用程序服务计划,则需要信任应用程序服务计划的VM虚拟机管理程序隔离。
  3. 如果您确实偏执狂或正在运行healtcare应用程序,那么您可能需要在ASE计划中运行您的功能。

合理的解决方案是成本不超过您保护的数据价值的解决方案:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。