首页 > 解决方案 > 将数据从应用服务复制到 azure 文件共享

问题描述

我在生产中有一个应用服务,我正在切换到 aks,所以我将使用文件共享作为一个卷。

如何将我的应用服务中的文件夹(exp 路径:/home/site/wwwroot/public)复制到我的新 azure 文件共享

找到了 azcopy 命令,但对应用服务部分一无所知

标签: azurekubernetesazure-web-app-serviceazure-aks

解决方案


假设您在 Azure 上运行 Linux 应用服务

(exp 路径:/home/site/wwwroot/public)

要将Web SSH 连接到您的 Linux App Service,请将以下 URL 粘贴到您的浏览器中并替换为您的应用名称:

https://<app-name>.scm.azurewebsites.net/webssh/host

[对于基于 Windows 容器的应用服务,请转到控制台]

进入 SSH 会话(或控制台)后,请创建一个新目录,您可以在其中挂载 Azure 文件存储(查看Linux 应用服务限制Windows 应用服务限制),使用:

mkdir <mount-path-directory>

使用az webapp config storage-account add命令。例如:

az webapp config storage-account add --resource-group <group-name> --name <app-name> --custom-id <custom-id> --storage-type AzureFiles --share-name <share-name> --account-name <storage-account-name> --access-key "<access-key>" --mount-path <mount-path-directory>
  • --storage-type应该AzureFiles
  • --mount-path是 Linux 容器内要挂载到 Azure 存储的目录。不要使用 /(根目录)。

通过运行以下命令验证您的存储是否已安装:

az webapp config storage-account list --resource-group <resource-group> --name <app-name>

[重要提示:容器中指定的目录--mount-path应该是空的。挂载 Azure 存储时,将删除此目录中存储的任何内容(例如,如果您在 下指定目录/home)。如果您正在迁移现有应用程序的文件,请在开始之前备份该应用程序及其内容。]

参考

现在从 SSH 会话(或控制台)到应用服务,使用以下命令将所需的源目录复制到 Azure 文件存储挂载上的所需目标:

cp -r /source/directory /destination/directory/

注意:您还可以mkdir根据需要使用在挂载路径中创建子目录并将数据复制到这些子目录。

此时,你可以将 Azure FileShare 作为持久卷或内联卷装载到AKS 群集中。


推荐阅读