我配置了以下 YAML,但猜测我无法在此处使用存储帐户作为源输入?我以为我可以,因为该任务只是使用 azcopy(注意:该命令在命令行中运行良好,只是不在管道中(即设置了权限(例如,SPN 已被授权并设置了 RBAC)。
代码如下:
trigger:
- dev
pool:
vmImage: windows-latest
steps:
#Copy files to Azure Blob Storage
- task: AzureFileCopy@4
inputs:
sourcePath: 'https://someonesbackups.blob.core.windows.net/backups?mysastokengoeshere'
azureSubscription: MY-Production-Subscription
destination: azureBlob
storage: azcopypipelinetest
containerName: restored
additionalArgumentsForBlobCopy: --recursive=true
但是,当运行时我收到以下错误:
"failed to perform copy command due to error: cannot start job due to error: cannot scan the path \\?\D:\a\1\s\https:\someonesbackups.blob.core.windows.net\backups?mysastokengoeshere=-REDACTED-, please verify that it is a valid."
当然,似乎你可以做到这一点,但我猜我在这里遗漏了一些基本的东西。
最佳答案
Azure 文件复制任务仅支持将文件从本地计算机或 UNC 共享上传到存储帐户。
您可以在任务介绍中查看sourcepath字段定义。
要将数据从存储帐户复制到存储帐户,您需要使用 azcopy command将文件复制到本地计算机,然后使用 Azure 文件复制任务将文件上传到另一个存储帐户。
- script: 'azcopy copy ''https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory/*'' ''$(build.sourcesdirectory)\myDirectory'''
displayName: 'Command Line Script'
- task: AzureFileCopy@4
inputs:
sourcePath: '$(build.sourcesdirectory)\myDirectory'
azureSubscription: MY-Production-Subscription
destination: azureBlob
storage: azcopypipelinetest
containerName: restored
additionalArgumentsForBlobCopy: --recursive=true
关于azure - 使用 Azure DevOps 中的 Azure 文件复制任务将数据从存储帐户复制到存储帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66569201/