我配置了以下 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."
当然看起来你可以这样做,但我猜我在这里遗漏了一些基本的东西。
答案 0 :(得分:0)
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