azure - 部署在 Azure 虚拟机上的 Web 应用:持久性 VS 临时磁盘
问题描述
我通过执行以下步骤在 Azure 虚拟机上部署了 Web 应用程序后端(Python / Flask):
- 创建一个 Linux 虚拟机并通过 ssh 进入它
- 从 github 下载我的应用程序的源代码
- 安装 pip,创建 Python 3.6 虚拟环境并安装所有必要的 Python 包
- 安装 tmux 并创建一个新的 tmux 会话,然后 cd 到包含我的应用程序主脚本的文件夹(启动 Flask 应用程序的那个)并运行“python3 main.py”。Flask 应用程序现已启动并运行,可以接收请求。
但是,根据我对临时 VS 永久磁盘的了解,我猜我的源代码和 Python 包现在存储在临时磁盘上,这意味着它们可能会由于硬件故障、维护事件等而意外丢失。我的猜测是正确的还是正确的我错过了什么?
如果是这样,这是否意味着我必须将永久磁盘附加到我的 VM 并将我的所有文件存储在那里?还是有一些更方便的方法来解决这个问题(例如切换到不同的 Azure 服务)?
解决方案
所有 Azure VM 都包含一个托管磁盘(操作系统所在的磁盘)和一个临时磁盘,顾名思义;是暂时的性质。在 Linux VM 上,以下内容适用(如Microsoft 文档中所述)。
在 Azure Linux VM 上,临时磁盘通常是 /dev/sdb
因此,除非您明确使用该路径,否则您很可能会没事。
推荐阅读
- c# - 使用 SqlDatabase for .NET,information_schema 在新数据库中不可用,为什么?
- search - 如何在现代搜索中添加精炼器
- r - 如何在 r 环境中调用多个向量以在另一个函数中使用它们
- mysql - 为我提供解决方案,将多个查询组合到一个在 where 条件上几乎没有差异的查询
- javascript - 进入时如何执行函数?
- amazon-web-services - AWS S3 上传失败,ACL public-true
- java - 使用 salt 和迭代计数的用户密码的 Java/Node PBKDF2 哈希 - 等效节点
- java - TelnetClient (Apache Commons Net 3.7.2 API) 已连接 solaris10 但无法加载 ~/.bash_profile
- reactjs - 如何解决在 React TypeScript 中无法为初始状态的字符串值分配数字值的问题?
- django - 需要在 MacOS 上降级 Django