将 Azure 存储装载为应用服务中的本地共享
Azure 存储是 Microsoft 提供的适用于现代数据存储场景的云存储解决方案。 Azure 存储为云中的各种数据对象提供具有高可用性、可大规模缩放、持久且安全的存储。 本指南介绍了如何在应用服务中将 Azure 存储文件作为网络共享装载到 Windows 代码(非容器)中。 仅支持 Azure 文件存储共享和高级文件共享。 Azure 存储是适用于应用服务且单独计费的非默认存储。 还可以在 ARM 模板中配置 Azure 存储。
自定义装载存储的优势包括:
- 为应用服务应用配置永久性存储,并单独管理存储。
- 使静态内容(如视频和图像)可随时用于应用服务应用。
- 将应用程序日志文件写入 Azure 文件共享,或将较旧的应用程序日志存档到 Azure 文件共享。
- 跨多个应用或与其他 Azure 服务共享内容。
Windows 代码支持以下功能:
- 使用密钥保管库、专用终结点和服务终结点对存储帐户进行安全访问(当使用 VNET 集成时)。
- Azure 文件存储(读取/写入)。
- 每个应用最多 5 个装入点。
- 使用“/mounts/
<path-name>
”装载 Azure 存储文件共享。
下面是将 Azure 存储装载到应用的三个选项:
装载选项 | 使用情况 |
---|---|
基本 | 请在使用 Azure 门户装载存储时选择此选项。 只要存储帐户不使用服务终结点、专用终结点或 Azure 密钥保管库,就可以使用基本选项。 在这种情况下,门户会为你获取和存储访问密钥。 |
访问密钥 | 如果计划使用 Azure CLI 装载存储,则需要获取访问密钥。 请在存储帐户不使用 服务终结点、专用终结点或 Azure 密钥保管库时使用此选项。 |
密钥保管库 | 如果计划使用需要访问密钥的 Azure CLI 装载存储,也可以使用此选项。 在使用 Azure 密钥保管库时选择此选项,以安全地存储和检索访问密钥。 Azure 密钥保管库的优点是可以集中安全地存储应用程序机密,并且能够监视、管理和集成其他 Azure 服务(如 Azure 应用服务)。 |
- 存储防火墙仅支持专用终结点和服务终结点(当使用 VNET 集成时)。
- 为部署到应用服务的 Windows 代码应用配置 Azure 存储装载时,不支持 Azure Blob。
- 不支持(使用 Azure 存储资源管理器)对已装载存储的 FTP/FTPS 访问。
- 不支持将
/mounts
、mounts/foo/bar
、/
和/mounts/foo.bar/
映射到自定义装载的存储(只能使用 /mounts/pathname 将自定义存储装载到 Web 应用。) - 存储装载不包括在备份中。 请务必依据最佳做法来备份 Azure 存储帐户。
- 通过应用上的 VNET 集成,装载的驱动器使用的是 RFC1918 IP 地址,而不是 VNET 中的 IP 地址。
在 Azure 门户中,导航到应用。
从左侧导航栏中,单击“配置”“路径映射”“新建 Azure 存储装载”。
按照下表配置存储装载。 完成后,单击 “确定” 。
设置 说明 名称 装载配置的名称。 不允许包含空格。 配置选项 如果存储帐户未使用专用终结点或 Azure 密钥保管库,请选择“基本”。 否则,选择“高级”。 存储帐户 Azure 存储帐户。 它必须包含一个 Azure 文件存储共享。 共享名 要装载的文件存储共享。 存储访问 为 Azure 密钥保管库选择“密钥保管库引用”。 否则,请选择“手动输入” 访问密钥(仅高级) 存储帐户的访问密钥。 “装载路径” 要装载的应用服务内的目录。 仅支持 /mounts/pathname
。应用程序设置 选择使用 Azure 密钥保管库机密配置的应用设置。 部署槽位设置 选中后,存储装载设置也适用于部署槽位。
注意
添加、编辑或删除存储装载会导致该应用重新启动。
可将 Azure 存储装载配置为虚拟目录,以提供静态内容。 若要配置虚拟目录,请在左侧导航栏中单击“配置”>“路径映射”>“新建虚拟应用程序或目录”。 将“物理路径”设置为在 Azure 存储装载上定义的“装载路径”。
若要避免延迟问题,请将应用和 Azure 存储帐户放置在同一区域中。 当应用和 Azure 存储帐户位于同一 Azure 区域时,如果你在 Azure 存储防火墙配置中授予来自应用服务 IP 地址的访问权限,则不会遵循这些 IP 限制。
在 Azure 存储帐户中,避免重新生成用于在应用中装载存储的访问密钥。 存储帐户包含两个不同的密钥。 Azure 应用服务存储着 Azure 存储帐户密钥。 使用分步方法,以确保重新生成密钥时,存储装载仍可用于应用。 例如,假设你在应用中使用了“密钥 1”来配置存储装载:
- 重新生成“密钥 2”。
- 在存储装载配置中,更新访问密钥以使用重新生成的“密钥 2”。
- 重新生成“密钥 1”。
如果删除 Azure 存储帐户、容器或共享,请在应用中删除相应的存储装载配置,以避免错误发生。
装载的 Azure 存储帐户可以是标准或高级性能层。 根据应用容量和吞吐量要求,为存储帐户选择适当的性能层。 请参阅文件存储的可伸缩性和性能目标。
如果应用扩展到多个实例,则所有这些实例均连接到相同的已装载的 Azure 存储帐户。 若要避免性能瓶颈和吞吐量问题,请为存储帐户选择适当的性能层。
建议不要将存储装载用于本地数据库(例如 SQLite)或依赖于文件句柄和锁定的任何其他应用程序和组件。
如果在将存储帐户装载到应用时启动存储故障转移,则在重启应用或删除并读取存储装载之前,装载不会连接。
使用 VNET 集成时,请确保应用设置
WEBSITE_CONTENTOVERVNET
指定为1
,并已打开以下端口:- Azure 文件存储:80 和 445
装载的 Azure 存储帐户可以是标准或高级性能层。 根据应用容量和吞吐量要求,为存储帐户选择适当的性能层。 请参阅文件的可伸缩性和性能目标
Azure 存储是 Microsoft 提供的适用于现代数据存储场景的云存储解决方案。 Azure 存储为云中的各种数据对象提供具有高可用性、可大规模缩放、持久且安全的存储。 本指南介绍了如何在应用服务中将 Azure 存储文件作为网络共享装载到 Windows 容器中。 仅支持 Azure 文件存储共享和高级文件共享。 Azure 存储是适用于应用服务且单独计费的非默认存储。 还可以在 ARM 模板中配置 Azure 存储。
自定义装载存储的优势包括:
- 为应用服务应用配置永久性存储,并单独管理存储。
- 使静态内容(如视频和图像)可随时用于应用服务应用。
- 将应用程序日志文件写入 Azure 文件共享,或将较旧的应用程序日志存档到 Azure 文件共享。
- 跨多个应用或与其他 Azure 服务共享内容。
- 在 Windows 容器中挂载 Azure 存储,包括隔离(应用服务环境 v3)。
Windows 容器支持以下功能:
下面是将 Azure 存储装载到应用的三个选项:
装载选项 | 使用情况 |
---|---|
基本 | 请在使用 Azure 门户装载存储时选择此选项。 只要存储帐户不使用服务终结点、专用终结点或 Azure 密钥保管库,就可以使用基本选项。 在这种情况下,门户会为你获取和存储访问密钥。 |
访问密钥 | 如果计划使用 Azure CLI 装载存储,则需要获取访问密钥。 请在存储帐户不使用 服务终结点、专用终结点或 Azure 密钥保管库时使用此选项。 |
密钥保管库 | 如果计划使用需要访问密钥的 Azure CLI 装载存储,也可以使用此选项。 在使用 Azure 密钥保管库时选择此选项,以安全地存储和检索访问密钥。 Azure 密钥保管库的优点是可以集中安全地存储应用程序机密,并且能够监视、管理和集成其他 Azure 服务(如 Azure 应用服务)。 |
- 不支持 Azure blob。
- 存储防火墙仅支持专用终结点和服务终结点(当使用 VNET 集成时)。
- 不支持(使用 Azure 存储资源管理器)对已装载存储的 FTP/FTPS 访问。
- 不支持将
[C-Z]:\
、[C-Z]:\home
、/
和/home
映射到自定义装载的存储。 - 当你备份应用时,存储装载并不会备份。 请务必依据最佳做法来备份 Azure 存储帐户。
- 通过应用上的 VNET 集成,装载的驱动器使用的是 RFC1918 IP 地址,而不是 VNET 中的 IP 地址。
在 Azure 门户中,导航到应用。
从左侧导航栏中,单击“配置”“路径映射”“新建 Azure 存储装载”。
按照下表配置存储装载。 完成后,单击 “确定” 。
设置 说明 名称 装载配置的名称。 不允许空格。 配置选项 选择“基本” 存储帐户 Azure 存储帐户。 它必须包含一个 Azure 文件存储共享。 共享名 要装载的文件存储共享。 “装载路径” 要装载的 Windows 容器内的目录。 请勿使用根目录( [C-Z]:\
或/
)或home
目录([C-Z]:\home
或/home
),因为不受支持。部署槽位设置 选中后,存储装载设置也适用于部署槽位。
注意
添加、编辑或删除存储装载会导致该应用重新启动。
若要避免延迟问题,请将应用和 Azure 存储帐户放置在同一区域中。 当应用和 Azure 存储帐户位于同一 Azure 区域时,如果你在 Azure 存储防火墙配置中授予来自应用服务 IP 地址的访问权限,则不会遵循这些 IP 限制。
在 Azure 存储帐户中,避免重新生成用于在应用中装载存储的访问密钥。 存储帐户包含两个不同的密钥。 Azure 应用服务存储着 Azure 存储帐户密钥。 使用分步方法,以确保重新生成密钥时,存储装载仍可用于应用。 例如,假设你在应用中使用了“密钥 1”来配置存储装载:
- 重新生成“密钥 2”。
- 在存储装载配置中,更新访问密钥以使用重新生成的“密钥 2”。
- 重新生成“密钥 1”。
如果删除 Azure 存储帐户、容器或共享,请在应用中删除相应的存储装载配置,以避免错误发生。
装载的 Azure 存储帐户可以是标准或高级性能层。 根据应用容量和吞吐量要求,为存储帐户选择适当的性能层。 请参阅文件存储的可伸缩性和性能目标。
如果应用扩展到多个实例,则所有这些实例均连接到相同的已装载的 Azure 存储帐户。 若要避免性能瓶颈和吞吐量问题,请为存储帐户选择适当的性能层。
建议不要将存储装载用于本地数据库(例如 SQLite)或依赖于文件句柄和锁定的任何其他应用程序和组件。
将 Azure 文件存储与 VNET 集成配合使用时,请确保端口 80 和 445 处于打开状态。
如果在将存储帐户装载到应用时启动存储故障转移,则在重启应用或删除并读取存储装载之前,装载不会连接。
注意
NFS 支持现已可用于 Linux 上的应用服务。
本指南介绍如何在应用服务中将 Azure 存储作为网络共享装载到内置 linux 容器或自定义 Linux 容器中。 Azure 存储是 Microsoft 提供的适用于现代数据存储场景的云存储解决方案。 Azure 存储为云中的各种数据对象提供具有高可用性、可大规模缩放、持久且安全的存储。 Azure 存储是适用于应用服务且单独计费的非默认存储。 还可以在 ARM 模板中配置 Azure 存储。
自定义装载存储的优势包括:
- 为应用服务应用配置永久性存储,并单独管理存储。
- 使静态内容(如视频和图像)可随时用于应用服务应用。
- 将应用程序日志文件写入 Azure 文件共享,或将较旧的应用程序日志存档到 Azure 文件共享。
- 跨多个应用或与其他 Azure 服务共享内容。
- 支持 Azure 文件存储 NFS 和 Azure 文件存储 SMB。
- 支持 Azure Blobs(只读)。
- 每个应用最多支持五个装入点。
自定义装载存储的限制包括:
- 存储防火墙仅支持服务终结点和专用终结点(当使用 VNET 集成时)。
- 不支持(使用 Azure 存储资源管理器)对自定义装载存储的 FTP/FTPS 访问。
- 存储帐户共享访问密钥是唯一支持的身份验证方法;不支持 Entra ID 和 RBAC 角色。
- Azure CLI、Azure PowerShell 和 Azure SDK 支持均处于预览阶段。
- 不支持将
/
或/home
映射到自定义装载的存储。 - 请勿将存储装载映射到
/tmp
或其子目录,因为此操作会导致在应用启动期间超时。 - Docker Compose 方案不支持 Azure 存储。
- 存储装载不包括在备份中。 请务必依据最佳做法来备份 Azure 存储帐户。
- NFS 支持仅适用于 Linux 上的应用服务。 Windows 代码和 Windows 容器不支持 NFS。 需要在 NFS 的同一 VNET 上配置 Web 应用和存储帐户。 用于文件共享的存储帐户应具有“高级”性能层和“Filetorage”作为帐户类型。 使用 NFS 协议时,Azure Key Vault 不适用。
- 通过应用上的 VNET 集成,装载的驱动器使用的是 RFC1918 IP 地址,而不是 VNET 中的 IP 地址。
首先需要将存储装载到应用。 下面是 Azure 存储的三个装载选项:
装载选项 | 使用情况 |
---|---|
基本 | 请在使用 Azure 门户装载存储时选择此选项。 只要存储帐户不使用服务终结点、专用终结点或 Azure 密钥保管库,就可以使用基本选项。 在这种情况下,门户会为你获取和存储访问密钥。 |
访问密钥 | 如果计划使用 Azure CLI 装载存储,则需要获取访问密钥。 请在存储帐户不使用 服务终结点、专用终结点或 Azure 密钥保管库时使用此选项。 |
密钥保管库 | 如果计划使用需要访问密钥的 Azure CLI 装载存储,也可以使用此选项。 在使用 Azure 密钥保管库时选择此选项,以安全地存储和检索访问密钥。 Azure 密钥保管库的优点是可以集中安全地存储应用程序机密,并且能够监视、管理和集成其他 Azure 服务(如 Azure 应用服务)。 |
装载存储的方式取决于存储访问选项以及使用的是门户还是 Azure CLI。
在 Azure 门户中,导航到应用。
从左侧导航栏中,单击“配置”“路径映射”“新建 Azure 存储装载”。
按照下表配置存储装载。 完成后,单击 “确定” 。
设置 说明 名称 装载配置的名称。 不允许包含空格。 配置选项 选择“基本”。 如果存储帐户使用的不是服务终结点、专用终结点或 Azure 密钥保管库。 否则,选择“高级”。 存储帐户 Azure 存储帐户。 存储类型 根据要装载的存储选择类型。 Azure Blob 仅支持只读访问。 “存储容器”或“共享名” 要装载的文件共享或 Blob 容器。 “装载路径” 要装载到 Azure 存储的 Linux 容器中的目录。 不要使用 /
或/home
。部署槽位设置 选中后,存储装载设置也适用于部署槽位。
注意
添加、编辑或删除存储装载会导致该应用重新启动。
要验证是否已成功为应用装载 Azure 存储,请执行以下操作:
在容器中打开 SSH 会话。
在 SSH 终端中执行以下命令:
df –h
检查存储共享是否已装载。 如果没有,则存储共享装载出现问题。
通过以下命令检查存储装载的延迟或一般可达性:
tcpping Storageaccount.file.core.chinacloudapi.cn
若要避免延迟问题,请将应用和 Azure 存储帐户放置在同一区域中。 当应用和 Azure 存储帐户位于同一 Azure 区域时,如果你在 Azure 存储防火墙配置中授予来自应用服务 IP 地址的访问权限,则不会遵循这些 IP 限制。
装载的 Azure 存储帐户可以是标准或高级性能层。 根据应用容量和吞吐量要求,为存储帐户选择适当的性能层。 查看存储类型对应的可伸缩性和性能目标:文件存储和 Blobs。
如果应用扩展到多个实例,则所有这些实例均连接到相同的已装载的 Azure 存储帐户。 若要避免性能瓶颈和吞吐量问题,请为存储帐户选择适当的性能层。
- 在 Azure 存储帐户中,避免重新生成用于在应用中装载存储的访问密钥。 存储帐户包含两个不同的密钥。 Azure 应用服务存储着 Azure 存储帐户密钥。 使用分步方法,以确保重新生成密钥时,存储装载仍可用于应用。 例如,假设你在应用中使用了“密钥 1”来配置存储装载:
- 重新生成“密钥 2”。
- 在存储装载配置中,更新访问密钥以使用重新生成的“密钥 2”。
- 重新生成“密钥 1”。
- 自定义容器中的装载目录应为空。 当装载 Azure 存储时,存储在该路径下的任何内容都会被删除(例如,如果在
/home
下指定一个目录)。 如果要迁移现有应用的文件,在开始之前,请备份你的应用及其内容。 - 如果删除 Azure 存储帐户、容器或共享,请在应用中删除相应的存储装载配置,以避免错误发生。
- 建议不要将存储装载用于本地数据库(例如 SQLite)或依赖于文件句柄和锁定的任何其他应用程序和组件。
- 使用 VNET 集成时,请确保打开以下端口:Azure 文件存储:80 和 445。 Azure Blob:80 和 443。
- 如果在将存储帐户装载到应用时启动存储故障转移,则在重启应用或移除存储装载并重新添加之前,装载不会连接。