无法将 .bacpac 文件从 Azure VM 上传到 Azure blob 存储容器

Not able to upload the .bacpac file from Azure VM to Azure blob storage container

我正在处理一个用例,我将在其中将数据库模式从开发部署到 UAT 和生产,但在部署到 UAT 和生产之前,我将 UAT 和生产的备份作为 .bacpac文件。以下是我在 Azure DevOps 管道中执行的步骤

  1. 使用“Azure SQL 数据库部署”内置任务生成了 .bacpac 文件。在“D:\a\r1\a\GeneratedOutputFiles\filename.bacpac

    生成的文件
  2. 检查文件是否存在于上述路径 -> 是文件可用。

  3. 使用“Azure 文件复制”内置任务复制到 blob 存储。我采用的源路径是 $(System.ArtifactsDirectory)\GeneratedOutputFiles
    目的地是我的 blob 容器。 PFA,每个步骤的详细信息和 google 驱动文档中的日志。问题是我无法将文件上传到 blob 存储,因为日志显示源文件夹为空,但文件存在于源文件夹中。 有人可以看看并指导我在这里缺少什么吗? Google Drive path of the document

您可以使用 AzCopy 从 Azure Blob 存储中复制文件或向其中复制文件。

AzCopy is a command-line utility that you can use to copy blobs or files to or from a storage account.

您可以访问此 official document by Microsoft 下载并了解有关 AzCopy 的更多信息。

此外,要将文件从 Azure VM 复制到 Blob 存储,请遵循此 third-party tutorial

在 AzCopy 命令中,您需要使用要在其中复制 .bacpac 文件的容器的 SAS 令牌。

Azure Pipelines 中新的 v4 文件复制任务从使用 AzCopy 8 转移到 AzCopy 10,并且 Azure DevOps 服务主体需要更高的安全性才能向 Azure 进行身份验证。

您可以:

  1. 更改为任务的“v3”版本。
  2. 或者您需要赋予 Service Principal 角色: Storage Blob Data ContributorStorage Blob Data Owner

您可以在 link 中找到更多详细信息: https://github.com/microsoft/azure-pipelines-tasks/issues/13124

https://brettmckenzie.net/2020/03/23/azure-pipelines-copy-files-task-authentication-failed/.