带有 Azure DevOps 管道的 AzureFileCopy 失败 - 'AzCopy.exe 以非零退出退出

Ken*_*y_I 7 azure-devops

我尝试将 ARM 模板复制到存储,但失败了。YML 有什么问题?

错误:

& "AzCopy\AzCopy.exe" logout
INFO: Logout succeeded.
INFO: AzCopy.exe: A newer version 10.4.3 is available to download

Disconnect-AzAccount -Scope Process -ErrorAction Stop
Clear-AzContext -Scope Process -ErrorAction Stop
##[error]Upload to container: 'arm' in storage account: 'devopsstorageken' with blob prefix: 'test' 
failed with error: 'AzCopy.exe exited with non-zero exit code while uploading files to blob storage.' 
For more info please refer to https://aka.ms/azurefilecopyreadme
Finishing: AzureFileCopy
Run Code Online (Sandbox Code Playgroud)

YML:

- task: AzureFileCopy@4
  inputs:
    SourcePath: '$(Build.Repository.LocalPath)/ARMTemplates/CreateSQLServerARM'
    azureSubscription: 'TestRG-Conn'
    Destination: 'AzureBlob'
    storage: 'devopsstorageken'
    blobPrefix: 'test'
    ContainerName: 'arm'
Run Code Online (Sandbox Code Playgroud)

Lan*_*SFT 16

我尝试将 ARM 模板复制到存储,但失败了。YML 有什么问题?

你的 yml 看起来不错。我想任务本身可能有问题。

作为一种解决方法,我们可以使用AzureFileCopy@3,在此版本中,我们不需要在 Azure Web 门户中执行任何额外的工作。

而在 preview 中AzureFileCopy@4,有一些不同。我们需要确保Service Principal我们在此任务中使用的可以访问存储帐户。对我来说,我需要导航到Access control页面和Add a role assignment(存储 Blob 数据贡献者/所有者角色)到我的服务主体/托管身份:

在此处输入图片说明

这样 AzureFileCopy version4 也可以在我这边工作。

  • 将版本从 4 转换为 3 对我有用。队友的欢呼声。 (4认同)
  • 添加角色分配似乎需要一些时间才能产生影响。最初,仅靠这一更改是行不通的,所以我想要版本 3。就在我想将其报告为错误时,我再次尝试了版本 4,这次它成功了。因此,在我们的案例中添加角色后,我们只需等待几分钟,更改就会生效。 (2认同)