Использование задачи копирования файлов Azure в Azure DevOps для копирования данных из учетной записи хранения в учетную запись хранения

У меня настроен следующий 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."

Конечно, кажется, что вы могли бы это сделать, но предполагаю, что мне здесь не хватает чего-то фундаментального.

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-file-copy?view=azure-devops


person Karl Binger    schedule 10.03.2021    source источник
comment
Итак, этот, разумеется, ломает голову - я посмотрел на Powershell для задачи AzureFileCopy@4, и кажется передать ее непосредственно служебной функции, которая использует ее с azcopy команда. AzCopy, в свою очередь, должен поддерживать копии контейнера в контейнер, так что с этой точки зрения вы, похоже, не делаете ничего плохого. Единственное, чего я действительно не вижу, потому что я не могу легко проверить базовый источник, это то, что Get-VSTSInput в этом параметре как-то его дезинфицирует ???   -  person WaitingForGuacamole    schedule 10.03.2021
comment
Где вы нашли / нашли код PS для этой задачи AzureFileCopy @ 4?   -  person Karl Binger    schedule 10.03.2021
comment
github.com/microsoft/azure-pipelines-tasks. Было очень полезно посмотреть, что происходит за кулисами.   -  person WaitingForGuacamole    schedule 11.03.2021
comment
Привет, есть ли обновления по этому вопросу? Может ли вам помочь ответ Кевина? Не стесняйтесь комментировать ~ Просто напомните об об этом.   -  person Jane Ma-MSFT    schedule 26.03.2021


Ответы (1)


Задача копирования файлов Azure поддерживает только отправку файлов с локального компьютера или общего ресурса UNC в учетную запись хранения.

Вы можете проверить определение поля исходного пути во введении задачи.

введите описание изображения здесь

Чтобы скопировать данные из учетной записи хранения в учетную запись хранения, вам необходимо использовать команда azcopy для копирования файла на локальный компьютер и использования задачи копирования файлов 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
person Kevin Lu-MSFT    schedule 18.03.2021