【问题标题】:Hosting SQLite DB on Azure Storage?在 Azure 存储上托管 SQLite DB?
【发布时间】:2017-09-18 16:57:12
【问题描述】:

我需要在 Azure 上托管一个 SQLite 数据库,该数据库将在多个 Web 应用程序之间共享。我唯一的选择似乎是 Azure Blob 或文件存储(因为他们摆脱了提供在 Web 实例之间共享的专用存储的“Azure 网站”)。但是,似乎没有任何方法可以将 Azure 存储共享映射到 Web 应用可以识别的驱动器,因此无法生成 SQLite 可以使用的路径。很明显,如果不对 SQLite VFS 进行大量黑客攻击,SQLite 就无法使用 REST API 访问数据库。

所以我想知道是否有人在 Azure 存储上成功托管了一个 SQLite DB,以便 Web 应用可以访问它?

【问题讨论】:

  • 你是什么意思,“他们摆脱了 Azure 网站?”它只是简单地重命名为 Web Apps(很久以前)。而且您绝对仍然在那里共享持久存储。 (只要您不删除您的网络应用部署,就可以持久)
  • 我的理解是,不属于您上传的实际站点的应用服务上的所有存储都将被视为临时存储,并且随时可能或多或少丢失。不是这样吗?无论如何,我的存储需求可能是千兆字节,所以这仍然不是一个选择。
  • 不,不是这样。除非您删除部署,否则共享磁盘区域是持久的。另外:标准层提供 50GB,高级层提供 250GB。 (另一方面,VM 本地磁盘确实是临时的)。
  • 哦,嗯。那实际上可能是可行的(至少250)。好的,那我完全看错了地方。很抱歉,我发现 Azure 堆栈非常混乱。您能帮我指出 MS 网站上的正确信息吗?真的很感激。

标签: sqlite azure azure-web-app-service azure-storage


【解决方案1】:

Azure Web 应用程序(以前称为网站)仍然存在,并且仍然在您的 Web 应用程序实例之间具有持久的共享存储。

您不能使用 blob 来保存 SQLite,因为它与文件 I/O 不兼容(它具有用于访问的 REST API)。而且您不能简单地附加 Azure 文件存储卷(您可以通过 API 使用一个,但不能将其挂载到 Azure Web 应用实例)。

Web 应用程序没有任何改变:只需将您的 SQLite 数据库放在应用程序根目录下的目录中。

【讨论】:

  • 好的。我找到了似乎暗示文件存储(如果不是 Blob 存储)可能是一种选择的信息(现在我当然找不到),并试图查看是否有人成功尝试过。听起来好像没有制作自定义的 SQlite VFS(我以前做过,但是非常痛苦)会进行 REST API 调用,这是不可能的。可惜他们不允许您通过 SMB/UNC 将 Web 应用程序连接到文件存储。无论如何,感谢您至少帮助澄清持久性存储问题。
  • “只需将您的 SQLite 数据库放在应用程序根目录下的目录中即可。”。正确的。但是另一个 Azure Web 应用程序如何访问位于 app1 根目录下 app_data 文件夹下的同一个 sqlite 数据库?
  • Web 应用程序的所有实例共享相同的文件存储。如果您启动一个完全不同的 Web 应用程序,则该新 Web 应用程序及其实例将获得自己的文件存储。
  • 这正是问题所在。顺便说一句,我的解决方案是在 sqlite 之上创建一个专用的数据库服务,其他 Web 应用程序将访问该服务。非常令人沮丧的是,我们无法将 azure 存储安装到 Web 应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-23
  • 2021-05-05
  • 2018-11-21
  • 1970-01-01
  • 2012-12-10
  • 2020-08-20
  • 1970-01-01
相关资源
最近更新 更多